Добавить строку из аргументов в общую память

Мне нужно добавить к общей памяти строку из аргументов (например./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 ответ

Вы копируете строку, поэтому вы не можете просто использовать назначение - вам нужно strcpy:

#include <string.h>

...


strcpy(buf, argv[1]);
</string.h>

licensed under cc by-sa 3.0 with attribution.