《UNIX/LINUX编程实践教程》实例注释chapt3 - ls1

/*ls1.c*打印目录文件*/#include #include #include void do_ls(char[]);main(int argc, c
/*ls1.c*打印目录文件*/#include 
#include 
#include void do_ls(char[]);main(int argc, char *argv[])
{if (argc == 1)do_ls(".");   //不带参数,打印当前目录elsewhile (--argc){printf("%s:\n", *++argv);  //逐个打印目录do_ls(*argv);}
}void do_ls(char dirname[])
{DIR *dir_ptr;struct dirent *direntp;if ((dir_ptr = opendir(dirname)) == NULL)  //opendir 返回目录流DIR* 指向目录结构的指针fprintf(stderr,"ls1: cannot open %s\n", dirname);else{while((direntp = readdir(dir_ptr)) != NULL) //readdir 返回目录项 *direntprintf("%s\n", direntp->d_name);closedir(dir_ptr); //关闭DIR*  }}