2011-05-17 159 views

回答

8

readlink函數。做一個man 2 readlink。這個函數是Posix API的一部分,所以它幾乎適用於任何Unix。

如果路徑以'/'開頭,那麼它是一個絕對符號鏈接,並且它具有它引用的文件的完整絕對路徑(這可能是另一個符號鏈接,您將不得不重複該過程) 。

如果路徑沒有以'/'開頭,那麼它是一個相對鏈接,並且相對於符號鏈接所在的目錄進行解釋。您可以合適地組合路徑以找出真實文件名。

當然,有時使用符號鏈接來存儲實際上不是路徑的信息。有時程序爲了鎖定目的而在其中存儲PID或其他這樣的信息。創建符號鏈接的調用是可以在NFS掛載的文件系統上執行的更可靠的原子操作之一。

另外,在我的Fedora系統上,如果你使用man 7 symlink,你會得到關於符號鏈接的長篇討論,它們在各種情況下的行爲以及操縱它們或受它們影響的函數的破壞。

5

在POSIX或BSD系統上使用readlink()