ls命令的編寫

2021-10-05 17:32:48 字數 2110 閱讀 1604

目錄結構體dirent

stat函式從檔名獲得資訊

其中三個特殊位

●set-user-id:用來給程式額外的許可權,如passwd修改密碼

●set-group-id:用來給程式某個組的訪問許可權

●sticky位:告訴程式即使沒有人使用程式,也要放在交換空間

使用掩碼來處理st_mode,0170000是掩碼,結果與下面的數比較,得到檔案型別

用巨集處理掩碼

/etc/passwd中未包括所有的使用者,使用getpwuid獲取完整使用者

小結,設定和修改檔案的屬性見p88

**:1.根據ls的引數即目錄名呼叫readdir獲取dirent結構體中的name資訊

2.通過name呼叫stat獲取stat結構體

3.將stat結構體的資訊列印出來

#include

#include

#include

#include

#include

void

do_ls

(char

);void

dostat

(char*)

;void

show_file_info

(char*,

struct stat *);

void

mode_to_letters

(int

,char

);char

*uid_to_name

( uid_t )

;char

*gid_to_name

( gid_t )

;int

main

(int argc,

char

*ar**)

return0;

}void

do_ls

(char dirname)

//顯示目錄資訊

}void

dostat

(char

*filename )

//呼叫stat獲取檔案資訊,並呼叫show_file_info顯示

void

show_file_info

(char

*filename,

struct stat *info_p )

//顯示檔案的資訊,從info_p中讀取

void

mode_to_letters

(int mode,

char str)

//將8進製數轉換為許可權

#include

char

*uid_to_name

( uid_t uid )

//輸入uid,呼叫getpwuid獲取檔名

else

return pw_ptr->pw_name ;

}#include

char

*gid_to_name

( gid_t gid )

//輸入gid,呼叫getgrgid返回組名

else

return grp_ptr->gr_name;

}

ls命令的使用

在鍵盤上敲檔案 目錄 命令的前幾個字母以後按tab鍵。1 如果輸入無歧義,系統對其自動補全。2 如果輸入以後同一級目錄下,有多個你輸入的同關鍵字的檔案,這時按tab鍵將會沒有反應,如果在次按tab鍵,系統將會給你列出來所有含有這個關鍵字的檔案,如果關鍵定的多一些,tab功能將會正常實現。1 上 下游...

SSH命令,ls命令

使用 ssh 提供了許多可使用的選項。這篇文章會介紹一些我們在日常操作中經常使用的選項。1.無選項引數執行 ssh 通常使用 ssh 的方式就是不加任何選項引數,僅僅輸入 ssh 下面是示例 ssh 192.168.0.103 第一次連線目標主機時,ssh 會讓你確認目標主機的真實性。如果你回答的是...

linux命令 ls命令

list 用來列印出當前目錄的清單 如果指定目錄則會顯示指定目錄裡的檔案及資料夾清單。通過ls命令布局可以檢視linux資料夾包含的檔案,而且還可以檢視檔案許可權 包括目錄,資料夾,檔案許可權 ls 選項 目錄名稱 列出目標目錄的檔案和資料夾資訊 root vm 0 4 centos chenwei...