2012-06-03 78 views
4

我熟悉如何使用inotify來監視目錄中已命名文件的更改,但我目前想知道是否可以使用它來監視僅由已打開的文件句柄已知的文件的修改。這樣的事情可能嗎?可以在打開的文件句柄上使用Linux inotify嗎?

inotify_add_watch被記錄爲僅包含一個路徑名,並且我沒有看到任何其他功能來添加這樣的手錶。

沒有這樣做,有沒有辦法我可以採取一個開放的文件句柄,並將其轉換回路徑名,這樣我可以將其傳遞給inotify

編輯:其實它並不是嚴格要求inotify,我只是尋找一種機制,當普通文件已被追加或修改時被通知 - 認爲tail -f和類似。

+0

epoll()怎麼樣? – Friek

+0

@Friek:epoll()不能用於常規的文件句柄。 epoll_ctl(2)表示它爲不支持的文件句柄返回一個EPERM。我通過實驗觀察到了這一點。 – LeoNerd

+0

出於好奇,是什麼讓你的文件處理不支持epoll呢? – Friek

回答

2

您可以使用「/ proc/x/fd/y」作爲inotify_add_watch的路徑名,其中x是您的進程ID,y是文件句柄ID。

相關問題