#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...