我是共享内存的新手,我想出了以下代码:
int main()
{
int perm=S_IRWXU|S_IRWXG|S_IRWXO;
int fd=shmget(IPC_PRIVATE,1024,IPC_CREAT|perm);
if(fd<0)
{
printf("error");
_exit(0);
}
int* sum=(int*)shmat(fd,0,0);
if(*sum==1)
{
printf("error\n");
_exit(0);
}
*sum=0;
printf("asjjsad=%d",*sum);
return 0;
}
当我运行它时,我得到了错误的系统调用。
怎么了?
我正在尝试将 sum 分配给 0,并让子进程计算一个值,例如 sum1。然后我必须尝试将 sum1 添加到 sum。
你怎么做到这一点?