Linux系统编程I/O操作(一)

open,creat,close,write,read,lseek

Linux哲学:“一切皆文件”

open函数

open函数原型

int open(const char *path, int oflags);
int open(const char *path, int oflags,mode_t mode);
  1. path ,路径名或文件名;
  2. oflags,打开文件所采取的动作;

下面三个参数必选其中一个:

参数作用
O_RDONLY文件只读
O_WRONLY文件只写
O_RDWR文件可读可写

下面参数任选:

参数作用
O_APPEND每次写操作都写入文件的末尾
O_CREAT如果指定文件不存在,则创建这个文件
O_EXCL如果要创建的文件已存在,则返回 -1,并且修改 errno 的值
O_TRUNC如果文件存在,并且以只写/读写方式打开,则清空文件全部内容
O_NOCTTY如果路径名指向终端设备,不要把这个设备用作控制终端
O_NONBLOCK如果路径名指向 FIFO/块文件/字符文件,则把文件的打开和后继 I/O

3.mode,设置创建文件的权限。

creat函数

creat函数原型如下:

int creat(const char * pathname, mode_t mode);

1.pathname,路径名或文件名;
2.mode,设置创建文件的权限。

close函数

任何一个文件操作之后都需要关闭,调用close函数后,会取消open函数建立的映射关系。

函数原型:int close(int fd)
fd,使用open函数后的返回的文件描述符

write函数

ssize_t write(int fd,const void *buf,size_t count);
  1. fd,文件描述符
  2. *buf,需要写入的数据
  3. count,buf中需要写入的字节数

read函数

ssize_t read(int fd,void *buf,size_t len);
  1. fd,使用 open 函数打开文件之后返回的句柄
  2. *buf,读出的数据保存的位置
  3. len,每次最多读 len 个字节

返回值为 ssize 类型,出错会返回-1,其它数值表示实际写入的字节数,返回值大于 0 小于 len 的数值都是正常的。

lseek 函数

每个打开文件都有一个与其相关的“当前文件偏移量”。

off_t lseek(int fd, off_t offset, int whence);

whence的参数如下:

参数 作用
SEEK_SET将该文件的偏移量设置为距文件开始处offset个字节
SEEK_CUR将该文件的偏移量设置为其当前值加offset,offset可为正或负
SEEK_END将该文件的偏移量设置为文件长度加offset,offset可正可负
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值