APUE学习笔记 -- Chapter 17.Advanced IPC

时间:2022-05-18 22:50:50

1.Stream-Based IPC 

Stream-Based 管道是全双工的管道,在内部,每个管道拥有两个stream head,每个stream head均有一个写队列与读队列,我们可以通过在stream管道中增加模块来完成一些处理操作。

通常管道只可以在父子进程之间进行通信,如果需要在无关的进程之间进行通信,就必需借助FIFO,但是这种方法只能完成单向的数据传输,在STREAM管道中,也可以通过fattachfdetach两个函数来完成类似的操作,不同的区别是这种管道是全双工的。

 

2.UNIX域的IPC

3.传递一个文件描述符

传递一个文件描述符,在技术上来说,就是将打开的文件table entry传递给另外一个进程,并不意味着两者的文件描述符的数值是一样的,但是两者会指向同一个文件table entry

STREAM-based的文件描述符传递中,使用了ioctl中的I_SENDFD功能,能够将该文件描述符传递至另外一个进程中。

APUE学习笔记 -- Chapter 17.Advanced IPC