[問題] shm_open 參數問題

看板C_and_CPP (C/C++)作者 (EEcheng)時間6年前 (2019/09/20 21:09), 編輯推噓3(306)
留言9則, 3人參與, 6年前最新討論串1/1
各位好, 最近在看POSIX用shared memory實作IPC system, 其中 出現了 shm_open這個函數, 而讓我覺得困惑的是他的最後一個 參數 mode_t mode, 我在linux manual中看他描述這個函數的 所有參數卻獨獨漏了最後一個 mode_t mode的描述, 而且恐龍 本也只簡單說這個參數 establishes the directory permissions of the shared memory object. 我想請問一下, 有人知道這個參數所對應的數字分別代表甚麼意思嗎? 目前我看到的有0666和0777 以下附上範例呼叫方式: shm_open(name, O_CREAT | O_DRAW, 0666) 另外補充一點, 我有看到資料有說若有O_CREAT才需要特別注意最後一個 參數, 其他只要填0即可 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.236.122.178 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1568984960.A.5CB.html

09/20 21:14, 6年前 , 1F
看 man page 的 creat (2) 就有詳細介紹
09/20 21:14, 1F

09/20 21:15, 6年前 , 2F
跟檔案的 mode 一樣意思,新開 shm 時以此為預設 mode
09/20 21:15, 2F

09/20 21:15, 6年前 , 3F
這也就是有 O_CREAT 才需要指定 mode 的原因
09/20 21:15, 3F

09/20 21:16, 6年前 , 4F
shm_open沒寫應該是假設你已經把open背到滾瓜爛熟了 XD
09/20 21:16, 4F

09/20 21:22, 6年前 , 5F
如果看不懂 open / creat 的說明,建議可以再看看
09/20 21:22, 5F

09/20 21:23, 6年前 , 6F
chmod (1) 和 chmod (2) 的 man page,1 是 shell 指令
09/20 21:23, 6F

09/20 21:23, 6年前 , 7F
2 是 system call
09/20 21:23, 7F

09/20 21:56, 6年前 , 8F
感謝大大提示,原來666是檔案開到最大權限。可讀可寫。
09/20 21:56, 8F

09/21 01:24, 6年前 , 9F
777 才是喔, 因為還有執行權限
09/21 01:24, 9F
文章代碼(AID): #1TXC-0NB (C_and_CPP)
文章代碼(AID): #1TXC-0NB (C_and_CPP)