编程接口指南

命名管道

命名管道的运行方式与管道非常相似,但它们是在文件系统中作为命名实体创建的。 这使得所有进程均可打开命名管道,而不要求进程与管道通过派生关联。 命名管道是通过调用 mknod(2) 创建的。 然后,任何具有相应权限的进程均可对命名管道进行读取或写入。

open(2) 调用中,将会阻塞打开管道的进程,直到其他进程也打开此管道为止。

要在不发生阻塞的情况下打开命名管道,open(2) 调用应通过针对其本身使用布尔 or 运算将 O_NDELAY 掩码(位于 sys/fcntl.h 中)与选定的文件模式掩码连接。 如果在调用 open(2) 时没有其他进程连接到管道,则会返回 -1,并将 errno 设置为 EWOULDBLOCK