如何通過開啟檔案的fd值,找到被開啟檔案的全路徑
可在命令列執行:
ls -l /proc/idno/fd
即可看到相關資訊。
readlink()會將引數path的符號連結內容儲存到引數buf所指的記憶體空間,返回的內容不是以\000作字串結尾,但會將字串的字元數返回,這使得新增\000變得簡單。若引數bufsiz小於符號連線的內容長度,過長的內容會被截斷,如果 readlink 第一個引數指向一個檔案而不是符號連結時,readlink 設 置errno 為 EINVAL 並返回 -1。 readlink()函式組合了open()、read()和close()的所有操作。
通過開啟檔案的fd值,如何找到被開啟檔案檔案的全路徑 fd1 = open(filename, O_RDWR) 我們知道當我們呼叫open的時候,會得到一個fd的檔案描述符。這個檔案描述符是儲存在: /proc/getpid()/fd/fd1,通過這個檔案描述符符,呼叫readlink我們就可以知道開啟檔案的路徑了。 示例程式碼如下:
|