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

网站空间租赁兰州市城乡和住房建设局网站

网站空间租赁,兰州市城乡和住房建设局网站,公司企业文化展厅,市场推广计划方案模板共享内存由于是多进程共享的,里面的数据不适合包含指针,因为共享内存在不同进程里的地址并不相同。尽管可以在连接共享内存时指定连接地址,但是,这样做限制太多: 不同硬件、系统这个地址可能不一样,没有通…

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

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

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

        这里就是一个字符串的模板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/548944/

相关文章:

  • 灰色调网站wordpress 一键登录
  • 网站制作难不难个人简历范文
  • 多语种网站制作西安企业网站排名优化工具
  • 网站内容建设项目预算食品网站模板下载
  • wordpress做视频网站吗建设一个公司网站 需要钱吗
  • 网站制作完成之后我们便进入了什么阶段网站的技术方案
  • 河南省建设资格注册中心网站搜索网站大全排名
  • 手机设计网站外包公司的人好跳槽吗
  • 软件下载网站模板移动云盘免费空间
  • 制作静态动漫网站模板seo网络营销课程
  • 网页设计网站官网健康云下载app
  • 电商网站 支付免费私人直播间 哔哩哔哩
  • 自己动手做网站教程青岛网站建站
  • 肇庆建网站阿里云学生服务器购买
  • 用dw 网站开发与设计报告佛山网站建设天博
  • 常德网站网站建设wordpress打字烟花
  • html5在网站建设中的做网站必须要公网ip
  • 搜索别人的网站是带logo的请问怎么做的凡科h5登录入口
  • 做游戏视频网站要批证吗wordpress 首页文章
  • 做美食网站首页怎么做谷歌浏览器 官网下载
  • 如何做自己的个人网站外贸推广公司
  • 自己做网站接入微信和支付宝网页浏览器网址
  • 家里公网宽带做网站要备案么免费下载app软件正版
  • 做外贸自己的公司网站创建一个网站
  • 在家百度统计网站打不开协会宣传网站开发方案
  • 免费网站模版下载wordpress主页设置错误
  • 购物网站首页分成几个模块梅县区住房和城乡规划建设局官方网站
  • 杭州制造业企业做网站建立公司需要多少资金
  • 哈尔滨市建设网站企业管理论文
  • 网站建设方案的所属行业是网站开发费属于研发费用吗