我想學習C編程語言中的文件I/O概念。我正在使用GNU/Linux(Ubuntu 16.04 LTS)和我的IDE是eclipse 3.8。當我嘗試通過fprintf()
方法嘗試寫入文件時,它不會創建任何文件,或者如果該文件甚至已創建,則不會寫入該文件。我試圖通過使用fflush()
或setbuf(file_pointer, NULL)
方法來解決問題,正如建議here但仍然沒有改變。我想我以錯誤的方式寫入文件的地址。fprintf()在ubuntu中不工作
下面是代碼:
#include <stdio.h>
int main(void){
FILE *file_pointer;
file_pointer=fopen("~/.textsfiless/test.txt","w+");
setbuf(file_pointer,NULL);
fprintf(file_pointer,"Testing...\n");
fclose(file_pointer);
return EXIT_SUCCESS;
}
有人能解釋什麼是錯在這裏?
'setbuf(file_pointer,NULL);'必須在文件'fopen'後面完成...... – LPs
爲什麼不檢查'fopen()'的成功? –
檢查'fopen'返回的值,如果文件路徑錯誤,它可能會失敗。 – LPs