如何在C中打开文件进行读取?

如何在C中打开文件进行读取?,c,gcc,C,Gcc,在C编程中,当我处理从文件读取时,有一件事让我头疼 我不理解这两种方法之间的区别: 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); 如果在打开文件时发生

在C编程中,当我处理从文件读取时,有一件事让我头疼

我不理解这两种方法之间的区别:

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

有人能给我解释一下吗? 提前感谢:)

使用fopen()可以使用C stdio库,这比直接使用文件描述符方便得多。例如,没有与fprintf(…)具有文件描述符的内置等价物


除非您需要进行低级别的I/O,否则stdio函数可以很好地服务于绝大多数应用程序。它更方便,而且,在正常情况下,正确使用时速度也一样快。

所以我应该使用我更喜欢的,对吗?那就是了。我想那是个好办法。是的,它在出错时返回NULL。如果失败,您可以检查errno以找出原因。