【问题标题】:open and fopen function [duplicate]open和fopen函数[重复]
【发布时间】:2011-04-06 01:43:53
【问题描述】:

可能重复:
C fopen vs open

C语言中open()和fopen()有什么区别?

【问题讨论】:

标签: c


【解决方案1】:

其中一个是标准 c 库 (fopen) 的一部分,因此您可以期望它出现在所有托管的 c 编译器设置中。该函数返回一个FILE*,可以被<stdio.h>中的函数操作。

另一个 (open) 是 c 标准未指定的系统调用/函数(但是,我相信它是 POSIX 标准的一部分),因此只保证存在于声称支持它的选定平台上。这会返回一个代表文件的int,可以使用read/write和其他类似函数对其进行操作。

【解决方案2】:

open() 是由 POSIX 兼容操作系统提供的标准化系统调用(大多数类似 POSIX 的操作系统也有open() 系统调用)。 fopen() 是 C 实现和/或运行时库提供的 C 库函数。

fopen() 允许缓冲和/或格式化输入/输出,而open() 通常用于更直接的 IO。可以使用open() 系统调用来实现fopen() 函数。

【讨论】:

    【解决方案3】:

    正如其他人所说,open() 是通过 POSIX 标准的系统调用,主要由 UNIX 系列操作系统支持。它返回 'int' 指示正在打开的文件描述符。

    而另一方面 fopen() 是由 C 库提供的,它返回一个 FILE* 指向正在打开的文件。

    【讨论】:

      猜你喜欢
      • 2014-04-07
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 2021-09-19
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      相关资源
      最近更新 更多