/*ls1.c
*打印目录文件
*/
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
void do_ls(char[]);
main(int argc, char *argv[])
{
if (argc == 1)
do_ls("."); //不带参数,打印当前目录
else
while (--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 返回目录项 *dirent
printf("%s\n", direntp->d_name);
closedir(dir_ptr); //关闭DIR*
}
}
08-26
2091
09-16