open()函数
int open(const char *pathname, int flags, mode_t mode);
使用open函数需要的头文件
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>
open()的返回值
返回一个文件描述符,当文件成功打开时,返回一个非负整数,当文件打开失败时,返回-1
文件描述符将用于write(),read(),lseek()使用
参数
const char *pathname:
文件路径名(绝对路径)或者文件名
int flags:
选择打开文件的操作,分别为:
- o_rdonly 只读
- o_wronly 只写
- o_rdwr 可读可写
当然我们可以与上另外一些可选常量,展示不同的功能:
如:o_rdwr | o_creat 可读可写且当打开这个文件时,该文件不存在则创建它
- o_creat 当打开这个文件时,该文件不存在则创建它,需要搭配第三个参数使用
- o_append 每次往这个文件写新的内容时,新的内容总是加到文件的末端
即打开文件后进行写操作时(调用write()),若该文件原先有内容,则不会覆盖原来的内容,而是在末端添加内容
- o_trunc 清空内容
- o_excl 若同时与上该常量与 o_creat,当需要打开的文件存在时,open()会返回一个整型数-1
mode_t mode:(可选参数)
- 文件访问权限的初始值:(0xxx)
- 可读 r: 4
- 可写 w: 2
- 执行 x: 1


write()函数
ssize_t write(int fd, const void *buf, size_t count);
使用write函数需要的头文件
#include <unistd.h>
write()的返回值
写入成功时,返回写入的字节数(零表示没有任何内容)
如果const void *buf为零,并且fd引用常规文件,则write()可能会返回-1
如果检测到,或未执行错误检测,则将返回0,而不进行任何更改
参数
int fd:
使用open()时返回的文件描述符
void *buf:
内存,一般传内存地址,如数组名,指针名)
size_t count:
写入字节数



进行完写操作后,光标会停在刚写入的内容末端
read()函数
ssize_t read(int fd, void *buf, size_t count);
使用read函数需要的头文件
#include <unistd.h>
read()的返回值
成功时,返回读取的字节数(零表示结束)
出现错误时,返回-1
参数:
int fd:
使用open()时返回的文件描述符
void *buf:
内存,一般传内存地址,如数组名,指针名
size_t count:
读取字节数


总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论