我正在读取目录中的所有文件。以下是我的代码:
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。
答案 0 :(得分:0)
它引发了段错误,因为in_file-> d_name仅具有文件名。路径也需要添加到它前面。给出具有路径的完整文件名后,问题得以解决