系统调用的IO接口

学习系统调用的IO接口:

open write read lseek close;
1)int open(const char* pathname, int flags, int mode_t mode);

pathname:要打开的文件路径名

flags:选项参数
必选其一:
O_RDONLY 只读
O_WRONLY 只写
O_RDWR 读写
可选项
O_CREAT 文件存在则打开,不存在则创建
O_TRUNC 将文件长度截断为0(清空原有内容)
O_APPEND 追加方式打开
W+就是:O_RDWR|O_CREAT_O_TRUNC
mode :权限 0664 (创建文件的时候给定权限)权限自己给定一个,再与上一个umask,得到最终的权限
(mode & ~umask)
Umask():设置文件的创建权限掩码,决定了文件的的默认权限,如果创建新文件,一定要给定权限。
返回值:文件描述符(正整数,系统调用接口的操作句柄) 失败-1
对于电视来说,遥控器就是句柄,对于文件来说,文件描述符就是句柄

2)ssize_t write(int fd,const void *buf,size_t count);
fd:open返回的文件描述符
buf:要写入文件的数据缓冲区首地址
count:要写入的数据长度
返回值:实际写入的数据长度,不一定会等于count(字节) 失败-1 返回0表示读到文件末尾

3)ssize_t read(int fd, void *buf,size_t count);
fd:open返回的文件描述符
buf:要读入的数据
count:要读入的数据长度
返回值:实际读入的数据长度(字节) 失败-1

4)off_t lseek(int fd,off_t offset, int whence);``
fd: open返回的文件描述符
offset:偏移量
whence:偏移起始位置

size_t无符号长整形
ssize_t 就是int
pid_t 也是int

mode_t umask():设置当前调用进程的文件创建权限掩码

man 2 read 查看接口

5)int close(int fd):关闭文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值