1、socketpair函数
pipe用来创建管道,但是的单个管道只能单向通信,一端进行读,另一端进行写。如果要实现进程双向通信,必须创建一对管道,而socketpair则可以用来创建双向通信的管道。
socketpair创建了一对匿名的套接字描述符(只能在AF_UNIX域中使用),描述符存储于一个二元数组。eg: s[2] 这对套接字可以进行双工通信,每一个描述符既可以读也可以写。这个在同一个进程中也可以进行通信,向s[0]中写入,就可以从s[1]中读取(只能从s[1]中读取),也可以在s[1]中写入,然后从s[0]中读取;但是,若没有在0端写入,而从1端读取,则1端的读取操作会阻塞,即使在1端写入,也不能从1读取,仍然阻塞;反之亦然。
函数原型如下:
socketpair函数的前三个参数的含义与socket系统调用的三个参数完全相同。