2017-08-29 38 views
4

我想找到它處理一個文件的進程擁有C代碼(Linux)的一些文件。這在我腦海如何找到保存用C

一種方法是看proc/<PID>/fd所有正在運行的進程。 但是,這需要很長時間,並且由於掃描所有進程的fd文件下的所有文件。

可不可以給另一種方法,更輕盈?

預先感謝您。

+4

如何'lsof'計算它的輸出? – malat

+0

它的有用的方式,但我想在我的應用程序內使用功能。 – nutsman

+0

'這需要很長時間'爲什麼?你做過一些測試嗎? –

回答

0

枚舉所有的數值僞文件在/ proc下,然後檢查FD /目錄爲每一個,是這樣做的標準方式。這是像「lsof」這樣的實用程序通常實施的方式。所有這些數據都保存在內存中,因此訪問它應該足夠快,適用於大多數目的。