当前位置: 首页 > news >正文

扬州市住房和建设局网站深圳哪家网站建设公司好

扬州市住房和建设局网站,深圳哪家网站建设公司好,wordpress外贸模板,济宁网站建设推荐共享内存由于是多进程共享的,里面的数据不适合包含指针,因为共享内存在不同进程里的地址并不相同。尽管可以在连接共享内存时指定连接地址,但是,这样做限制太多: 不同硬件、系统这个地址可能不一样,没有通…

        共享内存由于是多进程共享的,里面的数据不适合包含指针,因为共享内存在不同进程里的地址并不相同。尽管可以在连接共享内存时指定连接地址,但是,这样做限制太多:

  • 不同硬件、系统这个地址可能不一样,没有通用性
  • 动态挂载、卸载不能保证地址可用,从而只能在进程加载时尽早连接共享内存
  • 不同的使用共享内存的组件存在冲突可能,导致地址不可用

        因此坚持由系统分配连接地址是合理的。这样,就要求共享内存里的数据不包含指针,通常我们都选择只使用简单结构,但是即使是简单结构,我们也可以尽量包装一下,方便使用。

        这里就是一个字符串的模板sstring<int>,用来替代sstring。设计思想很简单,就是个定长数组,提供类似string的操作。

        这个代码在sstring后面还包含了两个运算符重载,用来支持>>和<<。

        代码是用于unix/linux的。

#include <cstring>
#include <string>//定长字符数组模板,共享内存不能用string,char[]又不安全
template <long BUFSIZE >
class sstring
{
private:char data[BUFSIZE];static void _copydata(char * buf, char const * source){buf[BUFSIZE - 1] = '\0';long i = 0;for (; i < BUFSIZE - 1; ++i){buf[i] = source[i];if ('\0' == source[i])break;}for (; i < BUFSIZE - 1; ++i){buf[i] = '\0';}}
public:sstring() { memset(data, 0, BUFSIZE); }~sstring() { memset(data, 0, BUFSIZE); }sstring(sstring const & tmp) { _copydata(data, tmp.data); }sstring(char const * psz) { _copydata(data, psz); }sstring(std::string const & str) { _copydata(data, str.c_str()); }sstring & operator=(sstring const & tmp) { _copydata(data, tmp.data); return *this; }sstring & operator=(char const * psz) { _copydata(data, psz); return *this; }sstring & operator=(std::string const & tmp) { _copydata(data, tmp.c_str()); return *this; }long size()const { return strlen(data); }char const * c_str()const { return data; }char const & operator [](long off)const { return data[off]; }bool operator == (char const * tmp)const { return 0 == strcmp(data, tmp); }bool operator == (sstring const & tmp)const { return 0 == strcmp(data, tmp.data); }bool operator == (std::string const & tmp)const { return 0 == strcmp(data, tmp.c_str()); }bool operator != (char const * tmp)const { return 0 != strcmp(data, tmp); }bool operator != (sstring const & tmp)const { return 0 != strcmp(data, tmp.data); }bool operator != (std::string const & tmp)const { return 0 != strcmp(data, tmp.c_str()); }bool operator < (char const * tmp)const { return 0 > strcmp(data, tmp); }bool operator < (sstring const & tmp)const { return 0 > strcmp(data, tmp.data); }bool operator < (std::string const & tmp)const { return 0 > strcmp(data, tmp.c_str()); }bool operator <= (char const * tmp)const { return 0 >= strcmp(data, tmp); }bool operator <= (sstring const & tmp)const { return 0 >= strcmp(data, tmp.data); }bool operator <= (std::string const & tmp)const { return 0 >= strcmp(data, tmp.c_str()); }bool operator > (char const * tmp)const { return 0 < strcmp(data, tmp); }bool operator > (sstring const & tmp)const { return 0 < strcmp(data, tmp.data); }bool operator > (std::string const & tmp)const { return 0 < strcmp(data, tmp.c_str()); }bool operator >= (char const * tmp)const { return 0 <= strcmp(data, tmp); }bool operator >= (sstring const & tmp)const { return 0 <= strcmp(data, tmp.data); }bool operator >= (std::string const & tmp)const { return 0 <= strcmp(data, tmp.c_str()); }
};template <long BUFSIZE >
inline std::ostream& operator <<(std::ostream & out, sstring<BUFSIZE> const & data)
{out << data.c_str();return out;
}template <long BUFSIZE >
inline std::istream & operator >>(std::istream & in, sstring<BUFSIZE> & data)
{std::string tmp;in >> tmp;data = tmp;return in;
}

        这个代码在我的共享内存体系里是个基础对象,广泛使用。

(这里是结束)

http://www.yayakq.cn/news/665671/

相关文章:

  • 企业网站推广创意福州网站建设
  • 邢台网站网页设计南昌网络公司
  • wap网站 html5北京地铁建设的官方网站
  • 帝国cms手机网站生猪价格
  • 苏州网站建设企业网站制作做特卖网站有什么网站
  • 交通银行网站开发creo二次开发
  • 设计海报网站用dw做音乐网站
  • 旅游型网站建设中国疾控卫生应急服装
  • 公司网站 用 个人备案域名台州网红桥
  • 网站建设需求文章可以做平面设计兼职的网站
  • 济南精品建站外包公司价格江门网红打卡点
  • 西安网站开发技术xp花生壳做网站
  • 国外教做蛋糕的网站2017网站建设费用
  • 百度移动端关键词优化福州短视频seo推荐
  • 电子商务实网站的建设自定义页面wordpress
  • 做街舞网站的素材天眼查询个人信息免费
  • 乌克兰网站后缀个人可以做购物网站吗
  • 赣州有没有做网站的久久项目咨询有限公司
  • 网站需要写哪些内容中国服务器龙头企业
  • 网站改版不换域名建设部网站一级开发资质
  • 天津北京网站建设公司怎么做类似知乎的网站
  • 寻找网站建设甘肃省建设厅门户网站
  • 澧县住房和城乡建设局网站食品类网站模板
  • 网页制作与网站建设技术大全 pdfwordpress路由与模板调用
  • 用dw做网站怎么换行下载素材的网站
  • 免费网站能到百度首页吗最新公告哈尔滨
  • 广州市天河区门户网站文档下载免费网站
  • 微信公众号登录wordpress网站吗个人怎么做网站页面
  • 网站注册系统用什么做企业年金查询个人账户查询
  • 揭阳东莞网站建设大连工业大学图书馆