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

其他工作总结 时间:2020-02-28 19:06:50 收藏本文下载本文
【www.daodoc.com - 其他工作总结】

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

(一)无名管道

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; 其他->成功

下载管道通信总结word格式文档
下载管道通信总结.doc
将本文档下载到自己电脑,方便修改和收藏。
点此处下载文档

文档为doc格式

    热门文章
      整站推荐
        点击下载本文