我想知道 i/o 观察者inotify和epoll之间有什么区别?
通知
- inotify_init(void)创建 inotify 实例以从中读取事件
- inotify_add_watch(int fd, const char * path, int mask)在路径后面的文件节点周围返回一个 watch fd
- inotify_rm_watch(int fd, int wd)停止监视 fd 上的事件
epoll
- epoll_create(void)创建 epoll 对象
- epoll_ctl(int epfd, int op, int fd, struct epoll_event * event)设置要观察的事件
- epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout); 阻塞直到事件发生
因此,文件观看似乎有不同的方法。Inotify 试图让用户决定何时收集事件,而 epoll 会阻塞直到发生某些事情。
这个对吗?其他的区别是什么?