Fedora下IPC名字的命名

来源:互联网 发布:量化数据分析 编辑:程序博客网 时间:2024/06/11 00:59

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一致。


原创粉丝点击