2016-11-19 73 views
-2

首先,請說明什麼是分段錯誤(核心轉儲)。我正在Linux中創建一個程序,它將在系統目錄中創建一個文件。我猜linux是造成這個問題。這裏是代碼。代碼非常簡單。不介意,但不知道如何創建簡單的文件,我不能創建複雜的程序。C -FILE I/O分段故障核心轉儲?

#include <stdio.h> 

int main(int argc, char *argv[]) 
{ 
    FILE *fp; 
    fp = fopen("/samrat.txt", "r+"); 
    fprintf(fp, "this is a demo text"); 
    fclose(fp); 
} 

謝謝你的時間和考慮。不要忘記解釋什麼是分段錯誤,也是我的這個程序的解決方案。我也嘗試過int main()

+4

檢查fopen的返回值。 – BLUEPIXY

+0

@BLUEPIXY我很抱歉,它不是helo –

+0

在根目錄下找到一個'.txt'文件是很不尋常的。 – EOF

回答

1

首先,當Linux沒有爲某些東西(至少在我的情況下)分配空間,並且您嘗試使用具有空值的指針時,Linux上出現了段錯誤,核心轉儲錯誤。在這種情況下,我認爲這是因爲你的fopen返回null。其次,r +首先用於讀取,而不是寫入。所以如果你還沒有創建文件,你沒有什麼可讀的。使用w或w +,這樣它將首先創建你的文件。 最後但並非最不重要的是,儘量不要在文件名中使用'/'。

0

fp = fopen("/samrat.txt", "r+");替換爲fp = fopen("samrat.txt", "w+");

查看此鏈接的更多文件opening modes in c