尝试将整数写入C中的共享内存时出现分段错误(内核已转储)

时间:2019-02-27 03:01:38

标签: c linux operating-system shared-memory systems-programming

我正在尝试在进程之间使用共享内存。我只是逐步实现这些功能。尝试向其中写入内容时,我不断遇到分段错误(核心已转储)。

componentWillReceiveProps

1 个答案:

答案 0 :(得分:0)

我发现了问题。我没有使用#define KEY并在shmget()中使用它来定义键,而是使用key_t创建了一个键变量。这解决了“参数无效”的问题

这是更新的代码:

void createSharedMem()
{
    key_t key;
    int shmid = shmget(key, 4096, 0666 | IPC_CREAT);
    if(shmid < 0)
        perror("\n Error creating shared memory");
    ms = shmat(shmid, NULL,0);
    ns = shmat(shmid,NULL,0);
    *ms =0
    *ns=0;
    printf("%d",*ms);
}