實現linux的ls命令
阿新 • • 發佈:2018-12-06
需要引入DIR結構體和dirent結構體。主要實現函式為opendir()、readdir()
使用opendir開啟目錄,它返回一個指向DIR的指標。
readdir()用於讀取目錄,返回一個指向dirent的指標。
程式碼:
/* C語言實現linux ls命令 */ #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <dirent.h> /* 在Linux系統中,dirent結構體定義如下: struct dirent { ino_t d_ino; //inode number off_t d_off; //offset to the next dirent unsigned short d_reclen; //length of this record unsigned char d_type; //type of file char d_name[256]; //filename }; */ int main(int argc,char *argv[]) { DIR *dir; //目錄流指標 struct dirent *rent; //dirent結構體 dir=opendir("."); //開啟當前目錄 char str[100]; memset(str,0,100); while((rent=readdir(dir))) { strcpy(str,rent->d_name); if(str[0]=='.') continue; printf("%s ",str); } //換行 //printf("\n"); puts(""); closedir(dir); return 0; }