请考虑以下代码段.

#include

#include

#include

#include

int main(int argc, char ** argv) {

int fd;

char buf[1024];

int i;

struct pollfd pfds;

fd = open(argv[1], O_RDONLY);

while (1) {

pfds.fd = fd;

pfds.events = POLLIN;

poll(&pfds, 1, -1);

if (pfds.revents & POLLIN) {

i = read(fd, buf, 1024);

write(1, buf, i);

}

}

return 0;

}

该程序接收文件名,打开相应的文件,并“轮询”其文件描述符,以便监视可用性中的数据.每当轮询检测到可用性数据时,都会打印这些新数据.

但是,这个程序会发生什么?如果我要监视的文件在程序启动时已包含数据,则打印其内容.没关系.但是,稍后,当我使用文本编辑器编辑文件并保存它时,我的程序不会打印新数据.

那么,如何监视常规文件描述符(不是使用其路径的文件)以获得新的数据可用性?我是否必须使用民意以外的其他功能?或者我错过任何pollfd旗帜?

linux文件符数据,linux – 如何监视文件描述符以获得新数据的可用性?相关推荐

  1. Linux那些事儿 之 戏说USB(33)字符串描述符

    关于字符串描述符,前面的前面已经简单描述过了,地位仅次于设备/配置/接口/端点四大描述符,那四大设备必须得支持,而字符串描述符对设备来说则是可选的. 这并不是就说字符串描述符不重要,对咱们来说,字符串 ...

  2. USB描述符(附加USB HID报告描述符 )

    USB描述符介绍 USB描述符是主机识别USB设备的依据,主机根据设备的描述符来加载相应的驱动 USB描述符的作用 USB描述符信息存储在USB设备中,在枚举过程中,USB主机会向USB设备发送Get ...

  3. 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

    代码问题,例如: foreach (DataRow drow in dt.rows) {    dt.rows.remove(drow); ) 就可能出现你说的错误. 在遍历集合成员的时候,不能删除成 ...

  4. Linux文件,文件描述符以及dup()和dup2()

    一.Linux中文件 可以分为4种:普通文件.目录文件.链接文件和设备文件. 1.普通文件 是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据. ls -lh 来查 ...

  5. 嵌入式Linux系统编程学习之九基于文件描述符的文件操作

    文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...

  6. Linux 进程间传递文件描述符

    文章目录 文件描述符 文件数据结构 共享文件 UNIX域socket实现传递文件描述符 进程间传递打开的文件描述符,并不是传递文件描述符的值.先说一下文件描述符. 文件描述符 对内核来说,所有打开的文 ...

  7. Linux下利用文件描述符恢复的成功失败实验

    数据误删除是作为初级运维人员常常遇到的"低级错误",一些有经验的老手有时也在疲劳.不冷静的情况下"马失前蹄".一旦误删除数据文件,尽快采用影响最小.最迅速的手段 ...

  8. Linux学习笔记6 文件操作——文件描述符

    基于文件描述符的文件操作 进程一启动,内核就打开了三个描述符,0(标准输入 STDIN),1(标准输出STDOUT), 2(标准错误输出STDERR).Linux用整形数做文件操作,因此称为文件描述符 ...

  9. ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode

    FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...

最新文章

  1. java 网络实验_Java实验五网络编程与安全
  2. 云炬VB开发笔记 4选择结构
  3. pandas.read_html()读取网页表格类数据
  4. 从上千篇论文脱颖而出,支付宝论文凭什么获得WWW2020评委认可?
  5. SpringAMQP--FanoutExchange
  6. POJ-2069 Super Star(最小球覆盖)
  7. FastReport.Net 使用字符串
  8. mimemultipart java_最佳实践 – 发送javamail mime multipart电子邮件和gmail
  9. python经典程序实例-Python3经典100例(③)
  10. 学习dubbo(四): 启动时检查
  11. mysql创建fulltext索引_mysql – 如何在多个列上创建FULLTEXT索引?
  12. python2.7.10 VS2015编译方法
  13. python 基础学习(小甲鱼)
  14. html几个重要标签用法(div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em)
  15. 数学笔记24——分部积分
  16. 中国房价到底有多少泡沫?数据说话!
  17. IPhone免越狱安装IPA软件
  18. vue3之定义数据(Ref全家桶)
  19. nohup怎么更改名字_公司相关信息可以变更吗?公司注销怎么处理?
  20. 蓝桥杯 BASIC-21 基础练习 Sine之舞

热门文章

  1. 使用主题来自动包装控件样式
  2. Android Thread/Runnable/Handler用法
  3. Mac使用NDK编译FFmpeg4.0.2单独so库(验证可用)
  4. Android onClick()单机监听2种方式
  5. Mac升级emacs26
  6. Clojure 学习入门(9)- 连接redis
  7. mysql之批量删除
  8. python之pyc
  9. 解决OpenCV3+VS2015(VS2017)运行时出现debug error abort()has been called的问题
  10. c#连接kafka_c#操作kafka(上)搭建kafka环境