linux c 實現 ls 命令

2021-07-15 06:36:54 字數 1895 閱讀 5963

#include #include #include #include #include #include // ctime()函式

#include //操作目錄

#include //操作檔案

#include // 獲取檔案所有者

#include //infomodeall -a infomodedetail -l

//顯示資訊模式

typedef enum _infomode infomode;

//目錄元素種類(檔案、目錄)

enum itemcategory ;

//顯示目錄中元素列表

void display_diritemlist(char *path, int isall);

//顯示目錄中元素資訊

void display_diriteminfo(char *path, int isall);

//顯示目錄資訊

void display_singledirinfo(char *path);

//顯示檔案資訊

void display_singlefileinfo(char *path);

//顯示檔名,根據檔案路徑

void display_filename(char *path);

//顯示檔案資訊

void display_fileinfo(char *path, infomode mode);

//顯示目錄資訊

void display_dirinfo(char *path, infomode mode);

//解析命令列引數,返回,顯示資訊模式

infomode analyticalparm(int argc, char **arg);

//獲取完整路徑

void getabsolutepath(char *path);

//檢查path是否為絕對路徑,0 不是,是相對路徑 1 是絕對路徑

int checkpathisabsolutepath(char *path);

//獲取目錄下的檔案/目錄名稱,返回char **(這個變數需要動態釋放),以及filenamecount

void getfilenamelistformdir(char *path,int isall,char filenamelist[10],int *filenamecount);

//列印目錄元素的屬性

void demonstrate_attribute(struct stat buf);

//判斷元素是檔案還是目錄

int checkpathisfile(char *path);

int main(int argc, char **arg)

strcpy(filenamelist[*filenamecount],name);

(*filenamecount)++;

}closedir(dir);

}//顯示檔案資訊

void display_singlefileinfo(char *path)

demonstrate_attribute(_stat);

}void display_filename(char *path)

int checkpathisfile(char *path)

if(s_isreg(_stat.st_mode))

return res;

}void getabsolutepath(char *path) else

strcat(abspath,"/");

strcat(abspath,path);

//printf("abspath:%s\n",abspath);

}path = abspath;

}

簡單實現ls命令

include include include include include include include include include include int aflag,lflag typedef struct node linknode,linklist void display fil...

實現自己的ls命令

估計每個使用過 linux系統的人都知道 ls是啥吧。也相信大家都對 ls的簡單命令爛熟於心了吧,這裡就不想再贅述了,直接進入正題吧。裡面會有許多注釋,相信的家一定能看懂的。說明 此 我在kail linux下編譯無任何錯誤,執行也基本無bug,相信大家在一般linux下執行也無問題。include...

ls命令簡單實現 目錄讀寫

unix linux中的目錄讀寫,類似於檔案讀寫,使用系統呼叫opendir開啟,readdir將檔案的一些資訊寫入乙個結構體中。man k direct grep read 出現系統呼叫readdir read a directory entry 檢視檔案記錄 大概是我們想要的。man readd...