管道和FIFO作为最初的UNIX IPC形式,现在已用得较少。SocketPair可作为全双工版本的管道,较为常用,这里简单做个笔记
管道
* 只用于有亲缘关系的进程间通信* 单向,即半双工 (双向方法:1 使用2个管道 2 使用SocketPair)
* pipe() => write()/read()
FIFO (有名管道)
* 可用于无亲缘关系的进程间通信* 单向
* mkfifo() => open() => write()/read()
SocketPair
* 套接字(一般用于网络通讯)提供的一种用于本机进程间通信方式* 双向,即全双工
* socketpair() => write()/read()
* 例子 [ SocketPair.cpp ]:
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
using namespace std;
const int MAXSIZE = 100;
int main()
{
int fd[2];
int rLen;
char wBuf[MAXSIZE] = "Hello World";
char rBuf[MAXSIZE];
if (