【发布时间】:2014-10-19 02:48:58
【问题描述】:
我不确定我应该如何读取目录中的文件。当我调用我的打印功能时,它会出现段错误。有人可以帮忙吗?我认为它与路径名有关,但我不知道如何修复它。
我知道我的打印功能没有问题,因为它可以很好地打印常规文件。
int main(int argc, char **argv){
DIR *d;
struct dirent *dir;
d = opendir(argv[1]);
FILE *fp;
if(d){
while((dir = readdir(d)) != NULL){
if(strcmp(dir->d_name, ".") == 0)
continue;
if(strcmp(dir->d_name, ".." == 0)
continue;
fp = fopen(dir->d_name, "r");
//print function on fp
}
}
return 0;
}
【问题讨论】:
-
我们需要查看您的打印功能。你说它处理常规文件,但是目录和符号链接,以及具有不同权限的文件呢?如果您通过 Valgrind 运行程序,它应该会告诉您发生段错误的位置。