開源指令集,UNIX環境高級編程——創建與打開IPC通道

 2023-11-18 阅读 32 评论 0

摘要:創建或打開一個IPC對象的三個getXXX函數的第一個參數key是類型為key_t的IPC鍵,返回值identifier是一個整數標識符。該標識符不同于ftok函數的id參數。對于key值,應用程序有兩種選擇。(1)調用ftok,給它傳遞pathname和id。(2)

創建或打開一個IPC對象的三個getXXX函數的第一個參數key是類型為key_t的IPC鍵,返回值identifier是一個整數標識符。該標識符不同于ftok函數的id參數。對于key值,應用程序有兩種選擇。

(1)調用ftok,給它傳遞pathname和id。

(2)指定key為IPC_PRIVATE,這將保證創建一個新的,唯一的IPC對象。開源指令集?

key_t ftok(const char *pathname, int proj_id);


所有三個getXXX函數都有一個名為oflag的參數,它指定IPC對象的讀寫權限位(ipc_perm結構的mode成員),并選擇是創建一個新的IPC對象還是訪問一個已存在的IPC對象。這種選擇的規則如下。

(1)指定key為IPC_PRIVATE能保證創建一個唯一的IPC對象。沒有一對id和pathname的組合會導致ftok產生IPC_PRIVATE這個鍵值。

(2)設置oflag參數的IPC_CREAT位但不設置它的IPC_EXCL位時,如果所指定鍵的IPC對象不存在,那就創建一個新的對象,否則返回該對象。ipc工程模式。

(3)同時設置oflag的 IPC_CREAT和IPC_EXCL位時,如果所指定鍵的IPC對象不存在,那就創建一個新的對象,否則返回一個EEXIST錯誤,因為該對象已存在。

??? 設置IPC_EXCL位但不設置IPC_CREAT位時沒有意義的。


轉載于:https://www.cnblogs.com/wangfengju/p/6172743.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/175522.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息