0
我正在開發一個用於linux的C應用程序,我需要使用進程ID打開文件列表。我遍歷文件描述符的/proc/pid/fd
目錄。但是我怎麼能從文件描述符中知道文件路徑和文件名呢?或者我應該使用其他方法還是api函數?如何從文件描述符獲取文件名和路徑?
謝謝,
我正在開發一個用於linux的C應用程序,我需要使用進程ID打開文件列表。我遍歷文件描述符的/proc/pid/fd
目錄。但是我怎麼能從文件描述符中知道文件路徑和文件名呢?或者我應該使用其他方法還是api函數?如何從文件描述符獲取文件名和路徑?
謝謝,
如果您需要關於鏈接的信息,您需要lstat,而不是stat。 – user3303729
'touch foo;'[process foo]; 'ln foo bar'; ['foo'和'bar'現在指向相同的文件內容]; 'rm foo'; [/ proc/pid/fd/XX符號鏈接現在已經死了,儘管文件本身仍然可以作爲'bar'訪問; – ArtemB
@ArtemB:沒錯,你不能從擁有它的進程外部訪問那些「行屍走肉」的文件(想象你甚至沒有'bar')。我相信這是出於安全原因而設計的。 –