一。核心理论
1.进程通信方式(IPC)
(1).通讯的目的: 数据传输,资源共享,通知事件,进程控制
(2).通讯的发展:UNIX进程间的通信、基于System V进程间的通信、POSIX进程间通信
(3).通信方式 : 无名管道(pipe),有名管道(FIFO),信号(signal), 消息队列, 共享内存, 信号量, 套接字(socket)
2.管道通信方式(特点)
(1).管道通讯是单向的,有固定的读端和写端
(2).数据被进程从管道读出后,在管道中该数据就不存在了
(3).当进程去读取空管道的时候,进程会阻塞
(4).当进程往满管道写入数据时,进程会阻塞
(5).管道容量为64KB (#define PIPE_BUFFERS 16 include/linux/pipe)
3.无名管道
在Linux系统中,无名管道一旦创建完成后,操作无名管道等于操作文件。
无名管道的读端被视作一个文件;
无名管道的写端也可被视作一个文件。
二。函数学习(创建子进程,创建管道(fork之前创建),通信)
1.创建管道
函数名:pipe
函数原型:int pipe(int pipefd[2])
函数功能:创建无名管道
所属头文件:<unistd>
返回值:成功时:0;
失败时:-1;
参数说明:pipefd[0] : 读端fd
pipefd[1] : 写端fd
2.关闭管道 exit(0);
3.读管道 write();
4.写管道 read();
三。综合实例
时间: 2024-12-10 08:58:38