1

我想构建一个用户空间工具来监视任何尝试打开具有特定路径+名称的不存在文件(它不会出现在文件系统中)。

查看可用选项,最接近我需要的选项是使用 kevent 框架。

这是一个由 表示的监视文件的示例path,它需要文件描述符。如果由于文件不存在而失败,也许有一个选项可以监视对path事件的每次访问。open

 fd = open(path, O_EVTONLY);
 user_data = path;

/* Set up a list of events to monitor. */
vnode_events = NOTE_DELETE |  NOTE_WRITE | NOTE_EXTEND | NOTE_ATTRIB | NOTE_LINK | NOTE_RENAME | NOTE_REVOKE;
EV_SET( &events_to_monitor[0], fd, EVFILT_VNODE, EV_ADD | EV_CLEAR, vnode_events, 0, user_data);
int event_count = kevent(kq, events_to_monitor, NUM_EVENT_SLOTS, event_data, num_files, NULL);
4

0 回答 0