linux文件符数据,linux – 如何监视文件描述符以获得新数据的可用性?
请考虑以下代码段.
#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 – 如何监视文件描述符以获得新数据的可用性?相关推荐
- Linux那些事儿 之 戏说USB(33)字符串描述符
关于字符串描述符,前面的前面已经简单描述过了,地位仅次于设备/配置/接口/端点四大描述符,那四大设备必须得支持,而字符串描述符对设备来说则是可选的. 这并不是就说字符串描述符不重要,对咱们来说,字符串 ...
- USB描述符(附加USB HID报告描述符 )
USB描述符介绍 USB描述符是主机识别USB设备的依据,主机根据设备的描述符来加载相应的驱动 USB描述符的作用 USB描述符信息存储在USB设备中,在枚举过程中,USB主机会向USB设备发送Get ...
- 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据
代码问题,例如: foreach (DataRow drow in dt.rows) { dt.rows.remove(drow); ) 就可能出现你说的错误. 在遍历集合成员的时候,不能删除成 ...
- Linux文件,文件描述符以及dup()和dup2()
一.Linux中文件 可以分为4种:普通文件.目录文件.链接文件和设备文件. 1.普通文件 是用户日常使用最多的文件,包括文本文件.shell脚本.二进制的可执行和各种类型的数据. ls -lh 来查 ...
- 嵌入式Linux系统编程学习之九基于文件描述符的文件操作
文章目录 前言 一.文件描述符 二.打开.创建和关闭文件 三.读写文件 四.改变文件大小 五.文件定位 六.原子操作 七.进一步理解文件描述符 八.文件描述符的复制 九.文件的锁定 十.获取文件信息 ...
- Linux 进程间传递文件描述符
文章目录 文件描述符 文件数据结构 共享文件 UNIX域socket实现传递文件描述符 进程间传递打开的文件描述符,并不是传递文件描述符的值.先说一下文件描述符. 文件描述符 对内核来说,所有打开的文 ...
- Linux下利用文件描述符恢复的成功失败实验
数据误删除是作为初级运维人员常常遇到的"低级错误",一些有经验的老手有时也在疲劳.不冷静的情况下"马失前蹄".一旦误删除数据文件,尽快采用影响最小.最迅速的手段 ...
- Linux学习笔记6 文件操作——文件描述符
基于文件描述符的文件操作 进程一启动,内核就打开了三个描述符,0(标准输入 STDIN),1(标准输出STDOUT), 2(标准错误输出STDERR).Linux用整形数做文件操作,因此称为文件描述符 ...
- ftpclient读取服务器文件能获得文件名文件大小0_理解Linux的文件描述符FD与Inode
FD 文件描述符 一.概念 Linux 系统中,把一切都看做是文件,当进程打开现有文件或创建新文件时,内核向进程返回一个文件描述符,文件描述符就是内核为了高效管理已被打开的文件所创建的索引,用来指向被 ...
最新文章
- java 网络实验_Java实验五网络编程与安全
- 云炬VB开发笔记 4选择结构
- pandas.read_html()读取网页表格类数据
- 从上千篇论文脱颖而出,支付宝论文凭什么获得WWW2020评委认可?
- SpringAMQP--FanoutExchange
- POJ-2069 Super Star(最小球覆盖)
- FastReport.Net 使用字符串
- mimemultipart java_最佳实践 – 发送javamail mime multipart电子邮件和gmail
- python经典程序实例-Python3经典100例(③)
- 学习dubbo(四): 启动时检查
- mysql创建fulltext索引_mysql – 如何在多个列上创建FULLTEXT索引?
- python2.7.10 VS2015编译方法
- python 基础学习(小甲鱼)
- html几个重要标签用法(div,p,span,ul,li,dl,dt,dd,a,img,h,strong,em)
- 数学笔记24——分部积分
- 中国房价到底有多少泡沫?数据说话!
- IPhone免越狱安装IPA软件
- vue3之定义数据(Ref全家桶)
- nohup怎么更改名字_公司相关信息可以变更吗?公司注销怎么处理?
- 蓝桥杯 BASIC-21 基础练习 Sine之舞
热门文章
- 使用主题来自动包装控件样式
- Android Thread/Runnable/Handler用法
- Mac使用NDK编译FFmpeg4.0.2单独so库(验证可用)
- Android onClick()单机监听2种方式
- Mac升级emacs26
- Clojure 学习入门(9)- 连接redis
- mysql之批量删除
- python之pyc
- 解决OpenCV3+VS2015(VS2017)运行时出现debug error abort()has been called的问题
- c#连接kafka_c#操作kafka(上)搭建kafka环境