2014-01-26 41 views
0

我需要從參數(例如./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]);