七种进程间通信方式,哪七种呢?咱么一起数一数:
一.无名管道( pipe )
二.有名管道( fifo )
三.共享内存 ( shared memory )
四.信号( sinal )
五.消息队列 ( message queue )
六.信号量 ( semophore )
七.套接字 ( socket )
各自都有哪些特点呢?
一、pipe特点:
1)只能用于具有亲缘关系的进程之间的通信
2)半双工的通信模式,具有固定的读端和写端,fd[0]固定用于读管道,而fd[1]固定用于写管道3
3)管道可以看成是一种特殊的文件,对于它的读写可以使用文件IO如read、write函数。
4)管道是一种特殊的文件,存在于内存中,它是随进程持续性的(进程在它在,进程亡它亡)。
二、fifo特点:
fifo相对于pipe的特殊性:创建fifo后需要单独打开,fifo单独以O_RDONLY货O_WRONLY模式打开时,默认会阻塞直到另一个进程以相反的方式打开,如果以O_RDWR方式打开,则结果是未定义的。
三、共享内存特点
因为所有进程共享同一块内存,共享内存在各种进程间通信方式中具有最高的效率。
四、信号特点
唯一的异步通信方式
五、消息队列
消息队列是消息的链表,具有特定的格式,并由消息队列标识符标识。
六、信号量
同步机制
七、套接字
网络间通信
以上七种进程间通信的完整代码,皆可以在我的资源列表中获取下载:
资源列表:http://download.csdn.net/user/qiulanzhu