gpt4 book ai didi

c - 如何在 C 中打印目录中每个文件的值?

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:51 25 4
gpt4 key购买 nike

我不确定我应该如何读取目录中的文件。当我调用我的打印函数时,它会出现段错误。有人可以帮忙吗?我认为它与路径名有关,但我不知道如何修复它。

我知道我的打印功能没有问题,因为它可以很好地打印常规文件。

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;
}

最佳答案

您必须将 dir->d_name 附加到 argv[1](当然带有“/”)以创建文件的完整路径。否则只能打开当前目录下的文件。或者,您可以使用 chdir 将当前目录更改为 argv[1]

为避免段错误,您应该检查 fopen 的返回值。事实上,您应该始终检查 fopen 的返回值,因为它经常失败,尤其是在开发期间。

关于c - 如何在 C 中打印目录中每个文件的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26446793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com