[Linux网络编程学习笔记]FIFO的创建和使用
2011-05-10 07:51
771 查看
管道只能用于在同一祖父进程创建的进程间进行通信,FIFO(先进先出)类似于管道,也只能单向传递数据流。不过每个FIFO都有一个路径名与之关联,这就允许无亲缘关系的进程间可以实现通信。FIFO也称有名管道。
FIFO由mkfifo函数创建。
如果只是打开一个FIFO而不是创建新的FIFO,那么就可以调用open()函数实现。
FIFO是先进先出模式,对它的读总是从开头来读,写总是被添加到末尾。且不能对它进行lseek操作。
1.用FIFO实现多客户服务
2.系统对管道和FIFO的限制
(1)一个进程在同一时刻所能打开的描述符的最大数目为OPEN_MAX
(2)可写进管道或FIFO的最大数据量PIPE_BUF
通过sysconf函数可以获得OPEN_MAX的值(在shell中通过limit命令可以修改它的值),而PIPE_BUF的值定义在limits.h头文件中,它的值在运行中通过调用pathconf或fpathconf取得。
FIFO由mkfifo函数创建。
#include <sys/types.h> #include <sys/stat.h> int mkfifo(const char *pathname, mode_t mode);
如果只是打开一个FIFO而不是创建新的FIFO,那么就可以调用open()函数实现。
FIFO是先进先出模式,对它的读总是从开头来读,写总是被添加到末尾。且不能对它进行lseek操作。
1.用FIFO实现多客户服务
2.系统对管道和FIFO的限制
(1)一个进程在同一时刻所能打开的描述符的最大数目为OPEN_MAX
(2)可写进管道或FIFO的最大数据量PIPE_BUF
通过sysconf函数可以获得OPEN_MAX的值(在shell中通过limit命令可以修改它的值),而PIPE_BUF的值定义在limits.h头文件中,它的值在运行中通过调用pathconf或fpathconf取得。
相关文章推荐
- [Linux网络编程学习笔记]管道的创建和使用
- [Linux网络编程]Linux网络套接字操作函数--使用socket函数创建套接字
- Linux学习笔记3--linux下库文件的创建和使用及其他
- Linux网络编程学习笔记-socket编程3--5
- LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间
- [Linux网络编程学习笔记]套接字地址结构
- Windows编程 C++ DLL编程 学习笔记(一)静态链接库的创建和使用
- linux网络编程学习笔记之六 -----I/O多路复用服务端
- Linux网络编程--定时器的学习和使用
- LINUX编程学习笔记(十四) 创建进程与 父子进程内存空间
- linux编程学习笔记(五) make的使用和Makefile
- TCP-IP学习笔记二:NIO的网络编程Buffer简单使用
- 0-Linux 网络编程学习笔记导航
- Linux程序设计学习笔记----网络通信编程API及其示例应用
- 【学习笔记】天嵌2440第三季下学期——linux tcp网络编程
- linux 系统编程-学习笔记10--进程间通信--管道/FIFO/消息队列/
- 【VS2010学习笔记】【编程实例】 (在Visual Studio中使用C++创建和使用DLL)
- Linux网络编程-学习笔记(基础TCP套接字函数)
- [原]Linux网络编程学习笔记
- linux网络编程学习笔记之二 -----错误异常处理和各种碎碎(更新中)