当我处理从文件中读取时,有一件事让我在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。
有人会善意向我解释这个吗? 在此先感谢:)
答案 0 :(得分:10)
使用fopen()允许您使用C stdio库,这比直接使用文件描述符更方便。例如,没有内置的等价于带有文件描述符的fprintf(...)。
除非您需要执行低级I / O,否则stdio函数可以很好地服务于绝大多数应用程序。它更方便,而且在正常情况下,正确使用时也一样快。