1. 程式人生 > >Linux ls -l命令的實現

Linux ls -l命令的實現

使用方法:ls  [目錄名]   

輸出結果:此目錄下的檔案和子目錄的詳細資訊

ls -l工作原理

------開啟目錄檔案//opendir(dirname)系統呼叫

-----while(not end of 目錄檔案)

-----{ 

-----   讀取一個目錄項//readdir()系統呼叫

-----   顯示檔案的詳細資訊//檔案詳細資訊從另外的途經獲得,獲得方法:呼叫stat()系統呼叫

-----}

-----關閉目錄檔案//close()系統呼叫

目錄的說明

目錄是一種特殊的檔案,它的內容是檔案和目錄的名字。目錄與普通檔案不同的是,目錄檔案永遠不會空,每個目錄至少包含兩個特殊的項---"."(當前目錄)和".."(父目錄)。

對stat結構體中提供的對檔案詳細資訊的特殊處理

(1)將模式欄位轉換成字元:根據/usr/include/linux/stat.h中定義的巨集,利用掩碼技術來逐個判斷許可權進行轉換

(2)將使用者/組 ID轉換成字串:getpwuid()  和 getgrgid()庫函式獲得