从参数添加字符串到共享内存

时间:2014-01-26 20:46:53

标签: memory shared

我需要从参数添加到共享内存字符串(例如./a.out abcxyz)。我写了代码,但它没有添加字符串或不显示我的字符串。是什么原因?

int main(int argc, char **argv){

    int shmid;
    char *buf;

        shmid = shmget(KEY, 5, IPC_CREAT | 0600);
        buf = (char *)shmat(shmid, NULL, 0);

        *buf = argv[1];

    printf("\n%c\n",  buf);

    return 0;
}

1 个答案:

答案 0 :(得分:1)

您正在复制字符串,因此您不能只使用作业 - 您需要strcpy

#include <string.h>

...


strcpy(buf, argv[1]);