/* 列出一个目录中的所有文件 */
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
void
err_sys(char *str)
{
perror(str);
exit(1);
}
int
main(int argc, char *argv[])
{
DIR *dp; /* opendir返回一个DIR结构的指针 */
struct dirent *dirp;
if (argc != 2)
err_sys("fail to argc");
if ((dp = opendir(argv[1])) == NULL) /* 通过命令行参数打开目录文件 */
err_sys("fail to opendir");
while ((dirp = readdir(dp)) != NULL) /* 读取目录文件 */
printf("%s/n", dirp->d_name); /* 打印目录文件中的目录文件名 */
closedir(dp); /* 关闭目录文件 */
exit(0); /* 终止程序,参数0表示正常结束 */
}
/* 运行 "./1-1_myls ." 查看当前目录的文件,相当于ls */