管道分为匿名管道和命名管道
匿名管道:创建无名管道int pipe(int fd[2]); fd[0]---->表示读 fd[1]---->表示写由fork()来共享管道原理父进程:关掉fd[1] 子进程:关掉fd[0]特点: 只能用于具有共同祖先的进程之间通信,一个管道由一个进程创建,该进程调用fork(),此后父子进程可以共享该管道。 生命周期随进程 提供流式服务 半双工通信,数据只能向一个方向流动2、命名管道:在不相关的进程间交换数据创建方法:命令创建:mkfifo filename 函数创建:int mkfifo(filename,mode)两种管道的区别:匿名管道由pipe创建并打开,命名管道由mkfifo创建,由open打开 工作完成后,具有相同的意义
特点:最快的进程间通信方式共享内存函数及参数代表含义
主要用于同步和互斥同步:多个进程相互配合完成一项工作互斥:各进程要求共享资源,有些资源要求互斥使用,进程间就会竞争这些资源,就叫进程间互斥。信号量与P,V操作:信号量:互斥:PV在同一个进程中 同步:PV在不同进程中信号量值得含义:
>0 表示可用资源数 =0 表示无资源可用 <0 表示等待队列中进程个数信号量的函数及其参数以上就是进程间通信的四种方法啦~