我写了一个程序,它以文件名作为参数,打开文件,解析它的内容并做一些事情。我正在编写一个测试程序,它将通过执行它来测试该程序。
这是我的测试课:
int main () {
FILE *input;
input = fopen("file.txt", "w+");
if (input == NULL) {
fprintf(stderr, "Unable to create a new file");
exit(1);
}
fprintf(input, "8\n");
if (execl("./a.out", "./a.out", "file.txt", NULL) == -1) {
fprintf(stderr, "Error forking program\n");
exit(1);
}
return 0;
}
当我打开时file.txt
,我只看到一个空白文件。我的./a.out
程序给出了一个解析错误(fgets
返回 NULL),我认为它是因为file.txt
没有被写入。这里有什么问题?我该如何调试这样的问题?为什么fprintf
永远不会写入文件?
谢谢,