6

当我处理从文件中读取时,这件事让我在 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。

有人愿意向我解释一下吗?提前致谢:)

4

1 回答 1

10

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

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

于 2012-05-14T21:09:32.847 回答