当前位置: 首页 > news >正文

网站备案拍照好麻烦关键词排名点击软件推荐

网站备案拍照好麻烦,关键词排名点击软件推荐,人力资源六大模块,访问国外网站的软件文章目录 0. 概述1. select 函数概述2. 普通文件描述符的 select 行为3. 监控普通文件描述符的实际应用3.1 C 代码示例3.2 使用 stat 函数监控文件修改时间 结论 0. 概述 在编程中#xff0c;select 函数可以用于监控多个文件描述符#xff08;包括 socket、串口和普通文件select 函数概述2. 普通文件描述符的 select 行为3. 监控普通文件描述符的实际应用3.1 C 代码示例3.2 使用 stat 函数监控文件修改时间 结论 0. 概述 在编程中select 函数可以用于监控多个文件描述符包括 socket、串口和普通文件以等待它们变为可读、可写或发生错误事件。本文将重点介绍 select 在监控普通文件描述符句柄时的行为并提供实际的 C 代码示例。 1. select 函数概述 select 是一个系统调用函数用于监控多个文件描述符等待它们变为可读、可写或发生错误事件。调用 select 时程序会阻塞直到至少有一个描述符满足指定条件或超时。 2. 普通文件描述符的 select 行为 对于普通文件描述符select 的行为与 socket 或串口略有不同 普通文件是否可读主要依赖于文件的当前读取位置以及文件的实际内容。如果一个普通文件已经打开且没有到达文件尾EOFselect 会将其标记为可读状态。一旦文件被读取到 EOF之后的 select 调用若没有新的数据写入文件将不会将其标记为可读除非文件被重新写入或文件指针被重置。 3. 监控普通文件描述符的实际应用 3.1 C 代码示例 以下是一段 C 代码演示了如何使用 select 监控一个普通文件。当文件内容发生变化时程序会调用 onFileChange 回调函数 #include fcntl.h #include sys/time.h #include sys/types.h #include unistd.h #include cstdio #include iostream #include vectorstatic off_t lastReadPosition 0;void onFileChange(FILE* file);int main() {const char* filePath /home/feng/workspace/test_select_file/example.txt;FILE* file fopen(filePath, r);if (!file) {perror(无法打开文件);return 1;}int fileFd fileno(file);if (fileFd -1) {perror(无法获取文件描述符);fclose(file);return 1;}fd_set rfds;FD_ZERO(rfds);FD_SET(fileFd, rfds);struct timeval tv {1, 0};while (true) {fd_set rfdsCopy rfds;int retval select(fileFd 1, rfdsCopy, nullptr, nullptr, tv);if (retval -1) {perror(select failed);break;} else if (retval) {if (FD_ISSET(fileFd, rfdsCopy)) {fseek(file, 0, SEEK_END);onFileChange(file);}}}fclose(file);return 0; }void onFileChange(FILE* file) {off_t currentPosition ftell(file);if (currentPosition ! lastReadPosition) {std::cout 文件内容发生变化触发回调函数 std::endl;lastReadPosition currentPosition;} }这段代码通过 select 函数监控文件描述符的变化当文件内容发生变化时调用 onFileChange 函数进行处理。 3.2 使用 stat 函数监控文件修改时间 另一个示例展示了如何使用 stat 函数监控文件的最后修改时间 #include sys/stat.h #include unistd.h #include ctime #include iostreamvoid printLastModificationTime(const char* filePath) {struct stat fileStats;if (stat(filePath, fileStats) 0) {std::cout File: filePath last modified at: std::asctime(std::localtime(fileStats.st_mtime));} else {perror(Error getting file status);} }int main() {const char* filePath /tmp/example.txt;printLastModificationTime(filePath);std::cout Watching for changes...\n;while (true) {sleep(1);struct stat currentStats;if (stat(filePath, currentStats) 0) {time_t currentTime currentStats.st_mtime;static time_t previousTime currentTime;if (currentTime ! previousTime) {std::cout File modified! New time: ;printLastModificationTime(filePath);previousTime currentTime;}} else {perror(Error in stat during watch);break;}}return 0; }结论 本文介绍了如何使用 select 函数监控普通文件描述符并提供了实际的 C 代码示例展示了文件内容变化检测和文件最后修改时间监控的实现方法。
http://www.zqtcl.cn/news/542204/

相关文章:

  • 微信官方网站注册新开的网页游戏平台
  • 福州专业建站网站代码的重点内容是什么
  • jsp网站架构网站设计的主要内容
  • html电子商务网站模板wordpress 随机阅读数
  • 湖南省军区强军网网站群建设项目免费网页托管
  • 网站背景图政协网站 两学一做专题研讨
  • 买域名建网站郑州做网站优化运营商
  • 建设宠物店网站114查询
  • 怎么查网站关键词排名微信与与网站建设
  • 湖州高端网站建设医疗网站源码
  • 有什么网站是做兼职的直播视频怎么录制
  • 扬州市网站建设工作室免费模板网站建设
  • 网站大全全部优秀网站设计流程
  • 授权网站系统网站标题如何修改
  • 商城网站大概多少钱考证培训机构报名网站
  • 马鞍山做网站怎么看网站谁做的
  • 网站建设捌金手指专业7网站如何设置广告
  • 做网站用什么浏览器好工程公司工作总结
  • 温州做网站哪家好为wordpress移动端
  • 温州平阳县企业网站搭建推荐建立网站的技术路径
  • php c2c网站开发的 书营销型网站sempk
  • 网站建设专业网站设计公司物格网陕西建省级执法人才库
  • 网站后台管理密码忘了建设网站简单吗
  • 做网站在哪里网站开发平台有哪些
  • 网站域名的建立推荐一个两学一做的网站
  • 网站开发开源框架企业影视广告制作公司
  • 网站建设人员的组织音乐网站建设目标
  • 动画制作软件下载安装网站seo置顶
  • 怎么做网站推广的步骤关闭评论 WordPress
  • 合肥建站费用学生做兼职去哪个网站