UNIX高級環境編程第一章 ls的實現

 #include <dirent.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
    DIR *dp;
   struct dirent *dirp;
   if (argc != 2)
   printf("usage: ls directory_name");
   if ((dp = opendir(argv[1])) == NULL)
    printf("can't open %s",argv[1]);
    while ((dirp = readdir(dp)) != NULL)
    printf("%s\n",dirp->d_name);
    closedir(dp);
    exit(0);
  }
 

書中的"apue.h"是作者自己定義的頭文件,我這裏用系統自帶的;

"stdlib.h"是exit所需頭文件

"stdio.h"是printf所需頭文件

"dirent.h"和"sys/types.h"是opendir 和readdir所需頭文件

dirent結構體的定義如下:

struct dirent
{
    ino_t d_ino;                                         //次目錄進入點的inode
    ff_t d_off;                                              //目錄文件開頭至此目錄進入點的位移
   signed short int d_reclent;               //_name的長度,不包含NULL字符
   unsigned char d_type;                      //d_name所指的文件類型
   har d_name[256];                              //文件名
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章