您的位置:首页 > 其它

第一章 列出一个目录中所有文件 程序清单1-1

2013-09-22 16:14 369 查看
1. apue.h 在书后的附录中找到输入。

2. gcc时报错, err_sys, err_quit, 补充函数, 加printf。 err_quit里还要加 exit(0).

3. gcc 得到 a.out。

4. 执行 ./a.out 报错, Segmentation fault (core dumped)。

5. 添加参数, 执行 ./a.out . , 打印当前目录下文件, 成功打印。

注: gcc -o 选项, 控制输出的文件名。 如本例中, gcc 1-1_ls.c -o ls则输出ls可执行文件。

int argc 命令参数个数。 至少为1, argv[0]是执行命令本身, 即为 ./ls, 若不加 ., 则 argv[1] 为 null

则函数在 opendir(argv[1])会因为非法指针, 导致段错误。

重点

DIR *dp;

struct dirent *dirp;

(dp = opendir(argv[1])) != NULL; //opendir()返回的是DIR的指针。

while ( (dirp = readdir(dp)) != NULL) //readdir()返回的是dirent指针。

{

printf("%s\n", dirp->d_name); //打印d_name.

}

closedir(dp); //closedir()与opendir()相对应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐