如何在C语言中打开一个文件进行读取?

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。能否有人友善地解释一下这个呢?提前感谢:)
1个回答

10
使用fopen()允许您使用C stdio库,这比直接使用文件描述符更方便。例如,没有内置相当于fprintf(...)的文件描述符。
除非你需要进行低级I/O,stdio函数对大多数应用程序非常有用。它更方便,在正常情况下,如果使用正确,速度也同样快。

1
那我应该使用我更熟悉的那个,对吧?那就用 fopen() 吧。 - appoll
2
我认为这是一个不错的选择。如果出现错误,它会返回NULL。如果失败了,你可以检查errno来找出原因。 - Kevin Hsu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接