在linux內核模塊中,有一種方法可以從unsigned int fd
獲取文件名/路徑?從Linux內核模塊的文件描述符中獲取文件名/路徑?
我知道這個答案:How can I get a filename from a file descriptor inside a kernel module?但如果我明白代碼正確,我還需要一個struct files_struct
。
編輯:
的複製,因爲它是不請停止投票。我正在尋求一種從內核模塊以普通的C語言獲取文件名/路徑的方法,而不是使用系統工具。 用另一種方式說:在/ procself/fd /上運行readlink是而不是一個很好的答案。
編輯2:
內核的系統調用讀ssize_t read(int fd, void *buf, size_t count);
接受3個參數,其中之一是一個FD。很顯然,read
能夠從單個文件(而不是inode中的所有文件)讀取。問題是如何。
在硬鏈接的情況下,文件可能有多個路徑 - 您如何知道自己有合適的路徑? –
可能重複的[從文件描述符獲取文件名在C](http://stackoverflow.com/questions/1188757/getting-filename-from-file-descriptor-in-c) –
@CarlNorum也許這可以通過返回一串字符串。 – 2013-07-06 16:33:59