浏览 4152 次
锁定老帖子 主题:Linux下查看FIFO剩余字节的方法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-05-05
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
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |