關於存儲映射問題--shmat: Permission denied

今天運行了老師給的程序庫中關於存儲映射問題,運行測試程序的時候,shmat函數出現以下錯誤

信息:shmat: Permission denied!網上有人說是 ftok("/tmp/a.txt",0)中a.txt的權限問題,我將open

函數修改爲:open("/tmp/a.txt", O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);還是出現相同問題。還有

人說是權限問題,後來發現其實不是這樣的。

關於問題的解決:

真正的問題是使用shmget函數時,並未賦予共享存儲讀寫權限,以至於shmat函數無權限以指定方式

連接共享內存。正確的解決方式應該修改shmget函數:shmget(key, 4, IPC_CREAT|0666);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章