簡體   English   中英

對於共享的V內存系統調用,shmflg中的0標志是什么意思?

[英]What does 0 flag mean in shmflg for shared V memory system calls?

   int shmget(key_t key, size_t size, int shmflg);

以上功能是根據man shmget給出的。 可用於第三個參數的標志已在man中給出,並且定義明確。 但是我不時看到有人使用0傳遞給該標志。 0是什么意思? 我在網上都找不到0的含義。

shmflg的格式如下:

                  11     10           9     8           0 : bits
---------------------------------------------------------
| additional flags  | IPC_EXCL | IPC_CREAT | mode flags |
---------------------------------------------------------

模式標志的解釋方式與open系統調用的flags參數相同。 模式標志的值為零表示O_RDONLY

位9和10的值應解釋如下:

  • 00:使用與鍵關聯的現有段。 如果不存在,則返回錯誤ENOENT

  • 01:如果與鍵關聯的段不存在,則創建一個新段。 否則,請使用現有段。

  • 10: 我認為這與00相同(可以確認嗎?)。

  • 11:如果與鍵關聯的段不存在,則創建一個新段。 否則,返回錯誤EEXIST

當然,只有在當前用戶具有所需權限的情況下,才能訪問現有段。

附加標志的值為零表示正常段(沒有SHM_HUGETLB或其他此類標志)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM