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

时间:2018-06-24 07:24:03

标签: 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循环中发生了分段错误。由于仅打印分段错误,因此我没有发布stacktrace。

1 个答案:

答案 0 :(得分:0)

它引发了段错误,因为in_file-> d_name仅具有文件名。路径也需要添加到它前面。给出具有路径的完整文件名后,问题得以解决