管道通信总结_通信管道维护工作总结

2020-02-28 其他工作总结 下载本文

管道通信总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“通信管道维护工作总结”。

(一)无名管道

1.创建管道

pipe()函数创建管道,fd[0]为读描述字,fd[1]为写描述字

2.管道写

不保证原子性,管道一有空闲缓冲区,就写入数据;

如果进程不读走管道缓冲区中数据,写操作会一直阻塞;

如果读端不存在,内核会发送SIGPIPE信号,默认动作是应用程序终止;

3.管道读

如果写端不存在,返回0;

RBYTE>PIPE:返回管道中所有数据

RBYTE

(二)FIFO

1.创建FIFO

创建FIFO失败时需要判断errno是否为EEXIST,如果为EEXIST,接下来调用open就好了。

2.打开FIFO

1)阻塞模式 读:管道已经被其他进程以写打开->成功返回;其他->阻塞 写:管道已经被其他进程以读打开->成功返回;其他->阻塞 2)非阻塞模式

读:成功返回

写:管道已经被其他进程以读打开->成功返回;其他->返回ENXIO错误

3.FIFO写

3)阻塞模式

①.WBYTE > PIPE

不保证原子性,FIFO一有空闲缓冲区,就写入数据,写完所有数据返回 ②.WBYTE

保证原子性,等到FIFO缓冲区有足够空间,写入数据

4)非阻塞模式

①.WBYTE > PIPE

不保证原子性,写满FIFO空闲缓冲区,返回

②.WBYTE

保证原子性,FIFO空闲缓冲区能够容纳WBYTE->写入数据;其他->返回EAGAIN

4.FIFO读

5)阻塞模式

FIFO中无数据或其他进程正在读->阻塞;其他->成功

6)非阻塞模式

FIFO中无数据或其他进程正在读->返回-1,errno为EAGAIN; 其他->成功

《管道通信总结.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
管道通信总结
点击下载文档
相关专题 通信管道维护工作总结 通信 管道 通信管道维护工作总结 通信 管道
[其他工作总结]相关推荐
    [其他工作总结]热门文章
      下载全文