总结了一下基本操作和注意事项
1.基本I/O调用
open() / creat(), close(), read(), write(), lseek()
dup()/dup2()
fcntl()
ioctl()
2.标准文件描述符定义
(<unistd.h>)
STDIN_FILENO (0)
STDOUT_FILENO (1)
STDERR_FILENO (2)
文件操作的一般过程
打开-读/写-[定位]-关闭
3.open()/creat()系统调用
功能
打开或创建一个文件或设备
头文件
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
函数原型
int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
int creat(const char *pathname, mode_t mode);
返回值
成功时返回新文件描述符
否则返回-1
4.参数flags说明
功能
文件访问模式
取值说明(/usr/include/fcntl.h)
O_RDONLY:只读形式打开
O_WRONLY:只写形式打开
O_RDWR:读写形式打开
O_APPEND:追加模式打开
O_TRUNC :若文件存在且为只读或只写成功打开,则将长度截为0
O_CREAT:若文件不存在则创建之
使用此选项时,需同时说明参数mode,说明文件的存取许可权位
O_EXCL:若同时指定O_CREAT,而文件已经存在,则出错
该参数可测试文件是否存在,如果不存在则创建此文件
creat()函数说明
等价于已参数O_CREAT|O_WRONLY|O_TRUNC执行open()
5.参数mode说明
s_irusr(00400) 所有者读权限
s_iwusr(00200) 所有者写权限
s_ixusr(00100) 所有者执行权限
s_irwxu(00700) 所有者读写执行权限
s_irgrp 00040 组成员读权限
s_iwgrp 00020 组成员写权限
s_ixgrp 00010 组成员执行权限
s_irwxg 00070 组成员读写执行权限
s_iroth 00004 其他用户读权限
s_iwoth 00002 其他用户写权限
s_ixoth 00001 其它用户执行权限
s_irwxo 00007 其他用户读写执行权限
6.文件操作函数
close() 功能:关闭文件描述符 头文件:#include <unistd.h>
read() 功能:从文件描述符读取数据 头文件:#include<unistd.h>
write() 功能:将数据写入文件操作符 头文件:#include<unistd.h>
lseek() 功能:调节读写的偏移量 头文件:#include <sys/types.h>;#include <unistd.h>
dup() 功能:复制文件操作符 头文件:#include<unistd.h>
dup2() 功能:复制文件描述符 头文件:#include<unistd.h>
fcntl() 功能:根据文件描述符来操作文件的特性 头文件:#include <unistd.h>;#include <fcntl.h>
希望对小可爱们有所帮助哟~( ๑´•ω•) "(ㆆᴗㆆ)

Last modification:April 4th, 2020 at 06:13 pm
如果觉得我的文章对你有用,请随意赞赏