C语言中fopen()与open()的平替代码

fopen() 与 open() 两个函数之间的最大区别,fopen()为高级IO,open() 为低级IO。

代码类型

int open(const char *path, int access, int mode);

FILE *fopen(char *filename, char *mode);

open()与fopen()的访问模式列表

O_RDONLY = 1       只读打开
O_WRONLY = 2       只写打开
O_RDWR   = 4       读写打开
O_CREAT  = 0x0100  创建一个文件并打开
O_TRUNC  = 0x0200  打开一个已经存在的文件并设置长度0,其他保持
O_EXCL   = 0x0400  未使用
....

参考
https://blog.csdn.net/oscarjulia/article/details/72638060

COMP1521 17S2 例题

For each of the following calls to the fopen() library function, give an open() system call that has equivalent semantics relative to the state of the file.

A. fopen(FilePath, “r”) == open(FilePath, O_RDONLY)

B. fopen(FilePath, “a”) == open(FilePath, O_WRONLY|O_APPEND|O_CREAT)

B的意思为 追加方式打开一个文本文件

C. fopen(FilePath, “w”) == open(FilePath, O_WRONLY|O_TRUNC|O_CREAT)

C的意思为 只写方式打开一个文本文件

D. fopen(FilePath, “r+”) == open(FilePath, O_RDWR)

D的意思为 可读可写方式打开一个文本文件

E. fopen(FilePath, “w+”) == open(FilePath, O_RDWR|O_TRUNC|O_CREAT)

E的意思为 可读可写的方式创建一个文本文件

留下回复