readlink(取得符號連線所指的檔案)
相關函式 stat,lstat,symlink
表頭檔案 #include
定義函式 int readlink(const char * path ,char * buf,size_t bufsiz);
函式說明 readlink()會將引數path的符號連線內容存到引數buf所指的記憶體空間,返回的內容不是以null作字串結尾,但會將字串的字元數返回。若引數bufsiz小於符號連線的內容長度,過長的內容會被截斷。
返回值 執行成功則傳符號連線所指的檔案路徑字串,失敗則返回-1,錯誤**存於errno。
錯誤** eaccess 取檔案時被拒絕,許可權不夠
einval 引數bufsiz 為負數
eio i/o 訪問錯誤。
eloop 欲開啟的檔案有過多符號連線問題。
enametoolong 引數path的路徑名稱太長
enoent 引數path所指定的檔案不存在
enomem 核心記憶體不足
enotdir 引數path路徑中的目錄存在但卻非真正的目錄。
readlink 獲取符號鏈結,獲取檔案絕對路徑
相關函式 stat,lstat,symlink 表頭檔案 include 定義函式 ssize t readlink const char path,char buf,size t bufsiz 函式說明 readlink 會將引數path的 符號鏈結內容儲存到引數buf所指的記憶體空間,返回的內容...
使用readlink讀取鏈結檔案指向的內容
有時我們需要讀取鏈結檔案指向的內容,比如,給定乙個程序的fd,我們想知道這個fd具體是什麼東西,那麼,就可以在 proc fd目錄下看到該fd指向的內容,只不過這個目錄下該fd是乙個鏈結檔案,我們需要的是該檔案指向的內容。此時就可以用readlink這個system call,具體用法很簡單,比如 ...
獲取函式或程式相關的原始碼
問題來了 如何確定相應的程式在哪個包下呢?下面以centos為例,檢視ls命令位於哪個包 which ls 這個是注釋 which 找出shell命令的安裝路徑 bin ls 找出該檔案屬於哪乙個安裝的軟體 rpm qf bin ls debian版本如ubuntu使用 dpkg s bin ls ...