猿问

C fopen vs open

你想要使用的是什么原因(除了语法之外)


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时?


慕少森
浏览 791回答 3
3回答

翻过高山走不出你

open()是一个低级别的操作系统。fdopen()将os级文件描述符转换为C语言的更高级FILE抽象。在后台fopen()调用open()并直接给你一个FILE指针。使用FILE对象而不是原始文件描述符有几个优点,其中包括更易于使用以及其他技术优势,如内置缓冲。特别是缓冲通常导致相当大的性能优势。

达令说

fopen vs C开放1)fopen是一个库函数而open是一个系统调用。2)fopen提供缓冲IO被更快比较open其非缓冲。3)fopen是便携式,而open不是便携式(开放是环境的具体)。4)fopen返回指向FILE结构的指针(FILE *) ; open返回标识文件的整数。5)A FILE *使您能够使用fscanf和其他stdio函数。
随时随地看视频慕课网APP
我要回答