c - 从文件读取内容时出现段错误

标签 c

我正在读取目录中的所有文件。以下是我的代码:

DIR* FD;
    struct dirent* in_file;
    FILE *common_file;
    char *c;
    FILE *entry_file;
    char buffer[1024];
    if (NULL == (FD = opendir("/home/fatima/Downloads/thesis/HMP_Dataset/Climb_stairs"))){fprintf(stderr, "Error : Failed to open directory \n"); return 1; }
    while((in_file = readdir(FD)))
    {
            if(!strcmp (in_file -> d_name, ".") ) continue;
        if(!strcmp (in_file -> d_name, "..")) continue;
        entry_file = fopen(in_file -> d_name , "r");
        if (entry_file == NULL) fprintf ( stderr, “Error %s”, strerror(errno);
        while (c=fgets (buffer, 1024, entry_file)!=NULL){}

                //printf("%s", c);
}

从文件读取内容时,最里面的 while 循环发生段错误。我没有发布堆栈跟踪,因为只打印了段错误。

最佳答案

它引发了 seg 错误,因为 in_file -> d_name 只有文件名。路径也需要添加到它前面。一旦给出完整的文件名和路径,问题就解决了

关于c - 从文件读取内容时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51007792/

相关文章:

c - c 中的矩阵乘法

c - 在读取期间完全清除调制解调器模块串行缓冲区

c - 获取嵌入式 PACKED_STRUCT 定义以在 g++ 下编译

c - 替换没有 LD_PRELOAD 的符号

c - 使用 readdir_r 遍历目录树时如何跳过已安装的文件

sql - 使用 PostgreSQL libpqtypes PQputf 或 PQexecf 函数将 SQL null 作为 SQL 语句参数值传递

c - var 与 *var 上的 gdb/x 命令

c - GL 调用着色器并获取输出颜色

c - 将字符串拆分为 block 。

c - 寻找高效的聚类算法