2012-05-14 68 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来找出原因。 –

相关问题