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

app*_*oll 6 c gcc

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

我不明白这两种方法的区别:

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

如果文件无法打开,fd返回NULL,对吧?

我使用的第二种方法是:

int fd;
fd=open(name,O_RDONLY); 
Run Code Online (Sandbox Code Playgroud)

如果在打开文件时发生错误,fd将为-1.

有人会善意向我解释这个吗?提前致谢:)

Kev*_*Hsu 10

使用fopen()允许您使用C stdio库,这比直接使用文件描述符更方便.例如,没有内置的等效于带有文件描述符的fprintf(...).

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

  • 我认为那将是一个很好的方式.是的,它在出错时返回NULL.如果失败,您可以检查errno以找出原因. (2认同)