我试图了解如何在Linux中使用命名管道进行IPC。我在此link找到了示例代码。
有人可以告诉mknod()
中模式参数的作用是什么吗?我对权限部分特别感兴趣。为什么对该参数进行按位OR操作?创建命名管道后如何使用参数?
答案 0 :(得分:3)
仔细阅读mknod(2)手册页(例如,在终端中输入man 2 mknod
)。
顺便说一下,您可能 - 并且可能应该 - 使用mkfifo(3)代替(或者在shell脚本或终端中使用mkfifo(1)命令)。The mode argument specifies both the permissions to use and the type of node to be created. It should be a combination (using bitwise OR) of one of the file types listed below and the permissions for the new node.
权限主要用于open(2)已存在的命名管道的进程。
使用适当的权限设置,您可以将FIFO的使用限制为例如只有某个特定组的成员。
另请阅读Advanced Linux Programming,fifo(7),credentials(7),capabiities(7)以及setuid。