【发布时间】:2014-03-08 15:43:35
【问题描述】:
如何在进程之间共享double*?
我正在尝试阅读 http://www.cs.cf.ac.uk/Dave/C/node27.html,但附加和分离对我来说太难理解了。
谁能举个简单的例子,如何共享双向量并对他进行操作?
我设法做到了:
double* vector;
vector = (double*) malloc(sizeof(double)*n); // n = number of elemenets
int shmid;
key_t key;
int size;
int shmflg;
key = 2413;
size = n * sizeof(double);
shmflg = IPC_CREAT;
if(shmid = shmget(key, size, shmflg) == -1)
{
printf("shmget error\n");
exit(-1);
}
编辑1: 我只设法使用了shmget。 shmat 总是对我造成错误。 这个链接对我没有帮助。
【问题讨论】:
-
如果你“成功了”,问题是什么?
-
errno 失败后说什么?你也可以显示 shmat 代码吗?
标签: c ipc shared-memory