Fedora下IPC名字的命名

Posix.1描述PosixIPC名字如下:

1 它必須符合已有的路徑命名規則(必須最多有PATH_MAX個字節構成,包括結尾空字節)。

2 它必須以斜槓符開頭,那麼對這些函數的不同調用將訪問同一隊列。如果它不以斜槓符開頭,那麼效果取決與實現。

3 名字中額外的斜槓符的解釋由實現定義


Richard Stevens在《UNIX網絡編程卷2》中建議使用斜槓符開頭作爲IPC名字,但是我在Fedora14的實際應用中(以root),發現了一些不同,例如:

mqd_t mq_open (__const char *__name, int __oflag, ...)

參數name的命名,可以是“/xxx”或者“/xxx.x”的形式,但是不可以是“/xxx/xxx”或者是“/xxx/xxx.x”形式(例如Stevens介紹的/tmp/xxx是不行的),否則無

法得到mqd_t消息隊列標示符號。對於有名信號量打開函數:

sem_t *sem_open (__const char *__name, int __oflag, ...)

它的__name命名規則與剛纔描述的mq_open的name命名規則一致。略有不同的是,sem_open還支持“xxx”和“xxx.x”之類的不以斜槓符開頭

的字符串作爲name參數,mq_open則不可以。

另外Posix內存共享用的:

int shm_open (__const char *__name, int __oflag, mode_t __mode)

它的__name命名與sem_open一致。


發佈了27 篇原創文章 · 獲贊 3 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章