我编写了一个程序,它将文件名作为参数,打开文件,解析其内容并执行一些操作。我正在编写一个测试程序,通过执行它来测试该程序。使用Execl执行我的程序
这里是我的测试类:
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
永远不会写入文件?
谢谢
谢谢!为什么'fopen(argv [1],“r”)'现在在我的程序中失败了? – darksky 2012-07-28 00:55:55
我不能说,因为该行不在您发布的代码中。 – 2012-07-28 01:05:36
为什么我需要在使用'a +'打开的文件上使用'rewind'? – darksky 2012-07-28 11:00:57