我編寫了一個程序,它將文件名作爲參數,打開文件,解析其內容並執行一些操作。我正在編寫一個測試程序,通過執行它來測試該程序。使用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