社区
Linux/Unix社区
帖子详情
若问一个进程间的通信问题。
yydrewdrew
2007-06-01 03:39:51
我用共享内存实现进程间的通信。
用shmget和shmat实现内存的分配和映射。
得到指针void *ptr指向分配的地址;
将ptr转换成类的指针class*运行出现Segmentation fault。
若将ptr指向结构体就没问题,但是结构体里有诸如string变量的话就会出现同样错误。
是不是因为shmget和shmat是c调用所以不能存c++的类?
共享内存分配有没有面向c++的?
string这个变量我必须传,麻烦大家帮我想想办法。
...全文
251
3
打赏
收藏
若问一个进程间的通信问题。
我用共享内存实现进程间的通信。 用shmget和shmat实现内存的分配和映射。 得到指针void *ptr指向分配的地址; 将ptr转换成类的指针class*运行出现Segmentation fault。 若将ptr指向结构体就没问题,但是结构体里有诸如string变量的话就会出现同样错误。 是不是因为shmget和shmat是c调用所以不能存c++的类? 共享内存分配有没有面向c++的? string这个变量我必须传,麻烦大家帮我想想办法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hundlom
2007-06-02
打赏
举报
回复
你申请的共享内存大小是固定的,可 struct multi_data*cc = (struct multi_data*)(aa);时结构体的大小因为string类型却无法固定大小。
yydrewdrew
2007-06-01
打赏
举报
回复
我把代码发出来:
#include <sys/types.h>
#include <sys/ipc.h>
#include <string>
#include <sys/shm.h>
using namespace std;
struct multi_data
{
int m;
string a;
};
int main()
{
void *aa = NULL;
int shmid;
int key;
key = ftok(".",1);
shmid = shmget(key,64*64,IPC_CREAT|0666);
aa = shmat(shmid,0,0);
string b = "";
string a("hdfhdjfhdj");
struct multi_data*cc = (struct multi_data*)(aa);
cc->a = a;
b = cc->a;
return 0;
}
如果去掉multi_data里的string a,传int m话,就会成功。
yydrewdrew
2007-06-01
打赏
举报
回复
错误是发生在赋值时:比如将一个string变量值赋给ptr->string成员。
在Python中使用Matplotlib绘制常见图表
Matplotlib 是
一个
非常强大的 Python 画图工具,通过绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等可以更加直观的呈现科学计算等遇到的大量数据。 1、基本元素 在matplotlib的层级结构中,最高层是由matplotlib.pyplot模块提供的“状态机环境”(state-machine environment),通过它来为当前维度绘制图像元素,例如...
python matplotlib fig = plt.figure() fig.add_subplot()
一、matplotlib.pyplot.figure() Create a new figure, or activate an existing figure. matplotlib官网 功能: 创建
一个
新的图形 或激活
一个
已有的图形 **注意: 若不添加描述,默认图形描述为figure1; ** 形如plt.figure(‘新的图形’)为图形添加自定义描述 (1)figure语法说明 figure(num=None, figsize=None, dpi=None, facecolor=None, ed
[转载] 在Python中使用Matplotlib绘制常见图表
参考链接: Python | 使用openpyxl模块在Excel工作表中绘制图表 3 Matplotlib 是
一个
非常强大的 Python 画图工具,通过绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等,可以更加直观的呈现科学计算等遇到的大量数据。 1、基本元素 在matplotlib的层级结构中,最高层是由matplotlib.pyplot模块提供的“状态机环境”(state-machine environment),通过它来为当前维度绘制图像元素,例如曲线、文本、图片..
Python matplotlib.pyplot库简要学习
Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。 使用的时候,我们可以使用 import 导入 pyplot 库,并设置
一个
别名plt。往往需要把numpy也导入进来。 importmatplotlib.pyplotasplt import nu...
Python基础——csv文件处理及可视化
csv文件处理及可视化 (1)csv文件格式:要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号( , )分隔的值写入文件【形式:数据之
间
用,号隔开】 #例如:2014-1-5,61,44,26,18,7,-1,56,30,9,30.34,30.27,30.15,10,4,0.00,0,195 (2)分析csv文件头 #csv处理模块包含在Python标准库中,可以分析csv文件的数据行,可以快速提取感兴趣的值。 def read_csv2(): filename = 'D:\pyth
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章