linux io调用,Linux系统调用——文件I/O

Linux中文件变成可以用两种方法:

Linux系统调用 :依赖Linux系统

C语言库函数

系统调用-创建

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

文件描述符

Linux系统中,所有打开的文件都对应一个[文件描述符]。

它的本质是一个[非负整数]。当打开一个文件时,该整数

由系统来分配。分配原则:没有用的最小整数。

系统调用-打开

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode);

flags:

O_RDONLY, O_WRONLY, ORDWR

O_APPEND, O_CREAT, O_NOBLOCK

O_CREAT 打开文件时文件不存在时创建文件,这时就用3个参数的open

系统调用-关闭

int close(fd);

系统调用-读

int read(int fd, const void *buf, size_t length);

功能:从文件描述符[fd所指向的文件]中[读取length个字节]

到[buf所指向的缓冲区]中,返回[实际读取的字节数]。

系统调用-写

int write(int fd, const void *buf, size_t length);

功能:把[length个字节的数据]从[buf指向的缓冲区]中写到文件

描述符[fd所指向的文件]中,返回值为实际写入的字节数(其实

也就是length,如果不是length那么写入失败)

系统调用-定位

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

功能:将文件读写指针相对whence移动offset个字节。操作成功

返回相对于文件头的位置。

whence:

SEET_SET:相对文件开头

SEET_CUR:当前位置

SEEk_END:相对文件末尾

offset可取[负值],表示向前移动。

注意:off_t类型是[带符号]的,在ilp32平台上是32个字节,

在ip64平台上是64个字节

系统调用-访问判断

int access(const char *pathname, int mode);

mode:要判断的访问权限。可以取下面的值或者它们的组合

R_OK:可读,    W_OK:可写

X_OK:可执行    F_OK:存在

符合条件返回0, 否则返回-1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值