Linux inotify可以在打开的文件句柄上使用吗?

Linux inotify可以在打开的文件句柄上使用吗?,linux,filehandle,inotify,Linux,Filehandle,Inotify,我熟悉如何使用inotify监视目录中命名文件的更改,但我目前想知道是否可以使用它监视仅由打开的文件句柄知道的文件修改。这可能吗 inotify\u add\u watch被记录为只使用一个路径名,我看不到任何其他添加此类手表的函数 如果做不到这一点,是否有办法将打开的文件句柄转换回路径名,以便将其传递给inotify 编辑:事实上,它不一定非要进行inotify,我只是在寻找一种机制,当常规文件被附加或修改时,它会得到通知——想想tail-f和类似的东西。你可以使用“/proc/x/fd/y”

我熟悉如何使用
inotify
监视目录中命名文件的更改,但我目前想知道是否可以使用它监视仅由打开的文件句柄知道的文件修改。这可能吗

inotify\u add\u watch
被记录为只使用一个路径名,我看不到任何其他添加此类手表的函数

如果做不到这一点,是否有办法将打开的文件句柄转换回路径名,以便将其传递给
inotify


编辑:事实上,它不一定非要进行inotify,我只是在寻找一种机制,当常规文件被附加或修改时,它会得到通知——想想
tail-f
和类似的东西。

你可以使用“/proc/x/fd/y”作为inotify\u add\u watch的路径名,其中x是你的进程id,y是文件句柄id。

@Friek:epoll()无法在常规文件句柄上使用。epoll_ctl(2)表示它返回一个不受支持的文件句柄的EPERM。我在实验中观察到了这一点。出于好奇,是什么让您的文件句柄不受epoll支持呢?@Friek:epoll处理块样式的文件句柄,如套接字、管道、TTY等。它类似于select()和poll()。IFREG文件句柄总是根据select()和poll()进行读写准备,但epoll不支持这种历史好奇心。