打开和打开function

可能重复:
C fopen vs open

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

一个是标准c库( fopen )的一部分,因此您可以期望它出现在所有托管的C编译器设置上。 该函数返回一个FILE* ,可以通过的函数进行操作。

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

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

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

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

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