Linux系统中的文件监控与内存管理技术解析
1. inotify事件监控机制
1.1 事件分组定义
inotify 定义了一些将多个事件组合为单个值的事件,具体如下:
| 事件名称 | 描述 |
| ---- | ---- |
| IN_ALL_EVENTS | 所有合法事件 |
| IN_CLOSE | 所有与关闭相关的事件(当前包括 IN_CLOSE_WRITE 和 IN_CLOSE_NOWRITE) |
| IN_MOVE | 所有与移动相关的事件(当前包括 IN_MOVED_FROM 和 IN_MOVED_TO) |
1.2 添加监控
可以使用 inotify_add_watch 函数为现有的 inotify 实例添加监控。示例代码如下:
int wd;
wd = inotify_add_watch (fd, "/etc", IN_ACCESS | IN_MODIFY);
if (wd == -1) {
perror ("inotify_add_watch");
exit (EXIT_FAILURE);
}
此示例为 /etc 目录的所有读写操作添加了监控。若 /etc 目录中的任何文件被读写,inotify 会向 inotify 文件描述符 fd 发送事件,并提供监控描述符 wd 。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



