【发布时间】:2012-10-10 22:51:11
【问题描述】:
我试图列出当前目录的父目录中的文件,但是当我尝试从终端执行这个程序时,我得到了分段错误。我做错了什么?代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
int main(int argc, char *argv[])
{
struct dirent *dirpent;
DIR *dirp;
if(argc!=2)
{
printf("Cant continue with the program\n");
return 0;
}
dirp= opendir(argv[1]);
if(dirp)
{
while(dirpent=readdir(dirp) !=NULL)
printf("%s\n",dirpent->d_name);
closedir(dirp);
}
return 0;
}
【问题讨论】:
-
您应该养成在系统调用失败时使用
errno的习惯,例如在这种情况下打印strerror(errno)。
标签: c linux ubuntu dir readdir