你想要使用的是什么原因(除了语法之外)FILE *fdopen(int fd, const char *mode);要么FILE *fopen(const char *path, const char *mode);代替int open(const char *pathname, int flags, mode_t mode);在Linux环境中使用C时?
3 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
open()是一个低级别的操作系统。fdopen()将os级文件描述符转换为C语言的更高级FILE抽象。在后台fopen()调用open()并直接给你一个FILE指针。
使用FILE对象而不是原始文件描述符有几个优点,其中包括更易于使用以及其他技术优势,如内置缓冲。特别是缓冲通常导致相当大的性能优势。
达令说
TA贡献1821条经验 获得超6个赞
fopen vs C开放
1)fopen
是一个库函数而open
是一个系统调用。
2)fopen
提供缓冲IO被更快比较open
其非缓冲。
3)fopen
是便携式,而open
不是便携式(开放是环境的具体)。
4)fopen
返回指向FILE结构的指针(FILE *) ; open
返回标识文件的整数。
5)A FILE *
使您能够使用fscanf和其他stdio函数。
- 3 回答
- 0 关注
- 790 浏览
添加回答
举报
0/150
提交
取消