open/creat/write/read/函数

基础I/O函数
1、open函数
定义:
这里写图片描述
参数说明:
pathname指向欲打开的文件路径字符串
flags可设置的如下:
这里写图片描述
参数mode有以下的组合,只有在建立新文件时才会生效
错误代码:
这里写图片描述
open用于打开和创建文件,creat函数也可以打开一个文件,若文件不存在,则创建它。
creat函数等价于:
open(pathname,O_CREAT|O_TRUNC|O_WRONLY,mode);
这里写图片描述
这里写图片描述
运行后,fd=3,创建了tmp.txt文件。
2、write函数
定义:
这里写图片描述
参数说明:
fd:文件指针
buf:写入的数据保存在缓冲区buf中,同时文件的当前读写位置向后移
count:请求写入的字节数
返回值:
如果写入成功,返回的是实际写入的字节数
错误代码:EINTR(被信号中断) EAGAIN(当使用非阻塞I/O时,若无数据则返回此值) EBADF(参数fd非有效文件描述符或该文件已关闭)

3、read函数
定义:
这里写图片描述
参数说明:
fd:文件指针
buf:读取的数据保存在缓冲区buf中,同时文件的当前读写位置向后移
count:请求读取的字节数

返回值:
如果读取成功,返回的是实际读到的字节数
读取失败返回-1,错误代码写入error中
错误代码:EINTR(被信号中断) EAGAIN(当使用非阻塞I/O时,若无数据则返回此值) EBADF(参数fd非有效文件描述符或该文件已关闭)

4、close函数
关闭文件
这里写图片描述
5、umask函数
控制默认权限,新文件被创建时,其最初的权限由文件创建掩码决定

总结:
fread/read的区别:
fread是C标准的库函数,后者是操作系统有关的系统调用
fread返回的是FILE结构指针,read返回的是int文件号

如果文件的大小是8k,如果用read/write,则系统自动分配缓存,则读出文件需要四次系统调用来实际从磁盘上读出
如果用fread/fwrite,则系统自动分配缓存,则读出此文件只要一个系统调用从磁盘上读出

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值