进程间通信的本质:让不同的进程看到相同的资源
管道(匿名管道):在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端、一个写端。管道只适用于具有血缘关系的进程之间的通信而且提供单向通信,即父读子写或父写子读,若要实现双向通信,则需要创建两个管道。
管道通信的步骤:
1)父进程调用pipe函数开辟管道,得到两个文件描述符都指向管道的两端
2)父进程调用fork创建子进程,那么子进程也有两个文件描述符指向同一管道
3)父子进程分别关闭自己不需要的文件描述符
进程间通信的本质:让不同的进程看到相同的资源
管道(匿名管道):在内核中开辟一块缓冲区(称为管道)用于通信,它有一个读端、一个写端。管道只适用于具有血缘关系的进程之间的通信而且提供单向通信,即父读子写或父写子读,若要实现双向通信,则需要创建两个管道。
管道通信的步骤:
1)父进程调用pipe函数开辟管道,得到两个文件描述符都指向管道的两端
2)父进程调用fork创建子进程,那么子进程也有两个文件描述符指向同一管道
3)父子进程分别关闭自己不需要的文件描述符