Memory 将参数中的字符串添加到共享内存

Memory 将参数中的字符串添加到共享内存,memory,shared,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];

我需要从参数(例如../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;
}

您正在复制字符串,因此不能仅使用赋值-您需要:

#包括
...
strcpy(buf,argv[1]);
#include <string.h>

...


strcpy(buf, argv[1]);