我试图编写一个简单的程序来读取纯文本列表中列出的文件中的数据,但是当我尝试在我的processFile函数中调用fgets()时,我仍然遇到了分段错误。调用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");
}
成功完成fopen()后,fdopen()和freopen()返回一个FILE指针。否则,返回NULL并将errno设置为指示错误。请检查fopen()返回的内容。生活并不总是完美的。文件可能无法访问。 – Asblarf
伙计 - 错误检查!确保“fopen()函数”成功尝试从中读取之前;) – paulsm4