FIFO做为一种有名管道的形式,在unix下编程经常会用到,在AIX和Solaris上用ls -l能像查看普通文件一样,很方便的看到当前FIFO里面还剩余多少字节未被读取,但是linux下却不行。通过调用ioctl可以实现这个功能:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
int main()
{
int fd = open("test.q", O_RDWR);
if (fd<0)
{
perror("open fifo:");
return -1;
}
int n;
int ret;
while(1){
ret = ioctl(fd, FIONREAD, &n);
printf("%d %d\n", ret, n);
sleep(5);
}
}
上面是一个实例代码,主要功能是
ret = ioctl(fd, FIONREAD, &n);
通过使用上述程序,你可以使用下面这个命令往test.q这个FIFO里面写数据,上面的程序会打印出test.q里面剩下的字节数
cat > test.q
分享到:
相关推荐
一个简单程序,演示了Linux下的FIFO IPC机制 http://blog.csdn.net/ZhengZhiRen/archive/2010/05/21/5613843.aspx
linux下进程间通信方式之一的fifo读写源程序。
Linux进程间通信之FIFO,适用于任意进程间. 此C文件为FIFO的写端
Linux创建FIFO文件类型的方法.docx
linux device driver for fifo algorithm
Linux网络编程FIFO源码。wfifo.c创建并打开文件,往里写;rfifo.c往外读。
在linux下使用C语言开发的进程控制程序
fifo在ic设计的时候非常常用,尤其是在一些大型的设计中
这是liunx下C编程关于fifo使用的例子,其中比较全面的讲述了fifo的使用方法。
异步FIFO的设计方法 异步FIFO的设计方法 异步FIFO的设计方法。
mplayer Linux 应用 用于外部程序调用mplayer,播放网络音频
Linux进程间通信之FIFO,适用于任意两个进程间.此C文件件为读端.
C语言 循环FIFO 的实现,FIFO大小可以自定义
LINUX FIFO 算法
FIFO
1 FIFO算法(先进先出) 2 2 最近最久未使用算法(LRU算法)基本思想 2 二 程序设计 2 1 数据结构设计 2 2 函数设计 3 3 流程图 5 1 FIFO算法设计流程图 5 2 LRU 算法设计流程图: 6 三 代码 8 四 结果分析 12 五 ...
详细介绍了fifo深度计算的方法,fifo深度的计算是面试中常被问到的问题!
C语言实现的软件FIFO,适合嵌入式单片机使用
dspf28335 使用fifo串口中断进行数据的传输
主要描述了fpga设计中的关键模块fifo模块的连接关系及输入输出