在windows上,我曾經使用一種技巧來查找文件當前正在使用(專門寫入)。通過其他進程檢測正在使用的文件
我用它來打開文件進行寫入,如果最失敗的情況是另一個進程正在忙於訪問它。
不幸的是,這些技巧(使用C OPEN與獨佔鎖寫入)在我的Mac上不起作用。雖然我在終端的curl仍在寫我的-fileBusy()檢查失敗。
使用F_GETLK在fd上調用fcnt時也不會顯示任何鎖定。
我有沒有機會檢測一個文件是否被另一個進程使用?
Ps>偵聽fsevents無法完成,因爲我的應用程序是在其他應用程序/進程創建後啓動的。
很好的建議。 lsof沒有可用的c API?開展任務將有效,但由於某種原因,我感到不安。 – 2011-12-27 20:05:59
我不知道任何C POSIX API函數來完成相同的事情。我同意開啓NSTasks通常不是我最喜歡的做事方式,但到目前爲止我還不知道在這種情況下的替代方案。我很想找出一個! – 2011-12-27 22:44:47
我發現了一個可能使用私有API的解決方案的更多信息:http://web.archiveorange.com/archive/v/SEb6ahosyxznFKzz63G1我仍在尋找更好的解決方案。 – 2011-12-28 09:02:51