2012-05-14 106 views
6

當我處理從文件讀取的問題時,有一件事讓我在C編程中頭痛不已。如何打開一個文件在C中讀取?

我不明白,這2種方法之間的區別:

FILE *fd; 
fd=fopen(name,"r"); // "r" for reading from file, "w" for writing to file 
         //"a" to edit the file 

FD返回NULL,如果該文件無法打開,對不對?

,我使用的第二種方法是:

int fd; 
fd=open(name,O_RDONLY); 

FD將是-1,如果在打開文件時發生錯誤。

會有人向我解釋這個嗎? 在此先感謝:)

回答

10

使用fopen()允許您使用C stdio庫,這可能比直接使用文件描述符更方便。例如,沒有與文件描述符相關的fprintf(...)。

除非您需要進行低級I/O,否則stdio函數將非常適合絕大多數應用程序。這樣更方便,而且在正常情況下,正確使用時也同樣快速。

+1

所以我應該使用一個我更舒服的,對吧?然後fopen()。 – appoll

+2

我認爲這將是一個好方法。是的,它在錯誤時返回NULL。如果失敗,你可以檢查errno來找出原因。 –

相關問題