使用方式一:
------------------------------------------------
读进程: 读方式打开;
while(1){
读PIPE
if(得到数据){}
else { sleep x}
}
关闭
这种方式,在得到数据为0时,应该sleep。
因为测试发现其行为是,第一次读会block,之后即使没数据也会立即返回?
使用方式二:
----------------------------------------------
读进程: while(1)
{
只读打开
while(读数据 > 0)
{处理}
关闭
}
写进程:写打开;写数据;关闭;
因为写数据会阻塞到读数据的开始,写完之后交给读端。
As example:
void OSD_TEST(void)
{
int result;
int fifo_fd;
int len;
char line[LINE_BUF];
upgrade_osd_init(vinfo.xres, vinfo.yres);
while(1)
{
//open fifo
fifo_fd = open(FIFO_NAME, O_RDONLY, 0);
if(fifo_fd < 0){
printf("Err: open fifo failed\n"); //should never happen
return;
}
//read fifo
while((len = read(fifo_fd, line, LINE_BUF)) > 0)
{
data_process(len, line);
}
//close fifo
close(fifo_fd);
}
}
named pipes 的一些特性
原创jiangjqian ©著作权
©著作权归作者所有:来自51CTO博客作者jiangjqian的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
LINUX的bash的一些特性
LINUX的BASH特性总结
LINUX bash 特性 -
一些不常见的java特性
1.java基础类型对应的包装类型是带有缓存功能的 Integer/Short/L
java 缓存 数组 反编译 包装类 -
Memcached一些特性和限制
Memcached一些特性和限制1.在Memcached 中可以保存的item数据量是没有限制的,只有
memcached 数据 连接数 大数据 -
C++函数的一些特性
C++函数
C++ 函数 一些特性