创建与打开IPC通道的POSIX和SYSTEM V方法
先說POSIX的吧:
mq_open,sem_open,shm_open著三個(gè)函數(shù)用于創(chuàng)建或者打開一個(gè)IPC通道。
?
?
由此可見,消息隊(duì)列的讀寫權(quán)限是任意的,然而信號(hào)燈就沒有,實(shí)際上,信號(hào)燈都需要讀和寫權(quán)限罷了。共享內(nèi)存不能只以只寫方式打開,否則不能往共享內(nèi)存中寫數(shù)據(jù)的。
在創(chuàng)建一個(gè)新的消息隊(duì)列或者信號(hào)燈或者共享內(nèi)存的時(shí)候,可能需要mode_t權(quán)限標(biāo)志:
S_IRUSER 用戶讀?? S_IWUSER 用戶寫? S_IRGRP 用戶組讀 S_IWGRP 用戶組寫? S_IROTH 其他用戶讀??? S_IWOTH 其他用戶寫
其中所指定的文件權(quán)限位受當(dāng)前進(jìn)程文件模式創(chuàng)建掩碼,但我們可以通過umask()修正。
這里注意的是O_NONBLOCK標(biāo)志,該標(biāo)志使得一個(gè)消息隊(duì)列在隊(duì)列為空的時(shí)候讀或消息隊(duì)列填滿是寫被阻塞,O_TRUNKC標(biāo)志,如果以讀寫模式打開一個(gè)已存在的共享內(nèi)存去對(duì)象那么該標(biāo)志將使得該對(duì)象的長度被結(jié)成0.
???????????????????? 本圖是顯示創(chuàng)建IPC通道的一般邏輯和思路。
?
?2,SYSTEM V的方法:
?
?
?
?
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的创建与打开IPC通道的POSIX和SYSTEM V方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统(2)-协同过滤1-UserCF
- 下一篇: 蚁群算法的一些东西