0
int shmCreate(int id, int size)
{
int shmid
key_t key;
if ((key = ftok(".", id)) == -1) {
perror("ftok");
exit(1);
}
if ((shmid = shmget(key, size, IPC_CREAT | 0666)) == -1) {
perror("shmget");
exit(1);
}
return shmid;
}
我試圖編寫使用shmget
函數,其中函數獲取大小作爲參數。我得到無效參數錯誤,除了大小= 1。除了1我通過大小我得到錯誤,但內存段創建時,我檢查ipcs -m,它的大小爲1。我擺脫了這個錯誤?C linux shmget無效的參數
'key'的值是什麼,即你確定'ftok'沒有失敗? – bruceg
84008723,但這是否有所作爲?不,如果它是'-1',它不會失敗 – damian241132
,這意味着'ftok'失敗。檢查錯誤呼叫總是很明智的。 – bruceg