鑑於這種代碼:以相同名稱創建共享內存段 - 返回錯誤?
char * pathname; // some string
int returnValue = shm_open(pathname, O_CREAT | O_TRUNC | O_RDWR, mode); // create a shared memory object
如果我這樣做:注意 - 相同的路徑名)
int returnValue2 = shm_open(pathname, O_CREAT | O_TRUNC | O_RDWR, mode); // create a shared memory object
我沒有得到任何錯誤,並且返回值是好的(0
)!
這是否意味着我正在重新創建共享內存段/對象?
如何創建共享內存,並且如果用戶嘗試使用相同的'pathname'創建,則返回'-1',而不將'pathname'保留在某種結構中像'pathname'-s的鏈表?謝謝 – ron 2012-07-30 17:37:40
我認爲這是在發佈的其他答案,我相信你必須做的是添加'O_CREAT'標誌。雖然我不是這方面的專家。 – 2012-07-30 17:39:32