我开始学习c,我需要一些帮助来理解这段代码:
#include "apue.h"
#include <dirent.h>
int main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp;
if (argc != 2)
err_quit("usage: ls directory_name");
if ((dp = opendir(argv[1])) == NULL)
err_sys("can't open %s", argv[1]);
while ((dirp = readdir(dp)) != NULL)
printf("%s\n", dirp->d_name);
closedir(dp);
exit(0);
}
所以,我知道第一个if会告诉你你错过了你想要列出文件的目录,但我完全迷失了下一个if和while,我知道会打印出来文件,但我不明白时间的条件,任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
readdir
将读取第一个文件格式目录,如果读取文件失败则返回NULL。readdir
成功读取文件的情况下,它将不会返回NULL。所以现在条件变为while(dirp != NULL)
。