プレーンテキストリストにリストされているファイルからデータを読み取る簡単なプログラムを作成しようとしていますが、processFile関数でfgets()を呼び出そうとすると、セグメンテーション違反が発生し続けます。
processFile( "file.txt")のようなものを単に呼び出す場合は発生しませんが、processList関数を介してprocessFileを呼び出そうとすると発生します。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void processFile (char *file)
{
char line[256];
FILE* pgmFile;
pgmFile = fopen(file, "r");
fgets(line, 200, pgmFile); // Seg fault here
fclose(pgmFile);
}
// Runs processFile on every file listed in list
void processList (char *list)
{
FILE *pgmList;
pgmList = fopen(list, "r");
char line[256];
while (fgets(line, 255, pgmList) != NULL) {
processFile(line);
}
fclose(pgmList);
}
int main ()
{
processList("downgesture_test1.list");
}