[Linux] 基础IO控制 -- 文件操作接口


标准库IO接口

标准库IO接口:

  1. fopen
  2. fclose
  3. fwrite
  4. fread
  5. fseek

文件流函数:(类型:FILE*

  • stdin:标准输入
  • stdout:标准输出
  • stderr :标准错误输出

fopen

  • r只读
  • r+可读可写,每次都在文件首部开始,覆盖式读写
  • w只写,文件不存在则创建,存在则清空内容。
    truncate:截断,file to zero length截断点为0,清空内容再进行写入)
  • w+读写,文件不存在则创建,存在则清空内容,覆盖式读写
  • a只写追加,文件不存在则创建,每次写入数据都是写入文件末尾
    因为是只写追加,故不能读取数据,不能使用fseek回到SEEK_SET,必须改变方式为a+即可。
  • a+可读写追加,文件不存在则创建,读数据的初始位置是在文件起始,写数据一直追加在文件末尾

其他接口
fgets:获取一行数据

printf:格式化数据,直接打印,即写入标准输出stdout
fprintf:格式化数据,写入指定的文件流指针,给定stdout就与printf等效了。
sprintf:格式化数据,放入一个容器buf。是一个用于字符串链接的函数。
snprintf:多了一个size,格式化时只向buf中写入固定个数的单位,防止溢出。

sscanf:把数据字符串按照格式拆解。

perror:是面向库函数的,库函数中会封装许多系统调用接口,所以一旦出错,不容易确定到底是哪个接口出的问题。

标准库IO接口操作句柄是:文件流指针FILE*,文件流指针这个结构体中就包含了文件描述符,当使用标准库接口进行IO,最终本质是通过文件流指针找到文件描述符,进而对文件进行操作。

fseek

函数原型:fseek(...,...,whence);

其中第3个参数whence(偏移量)的选项取值:

  1. SEEK_SET: 文件起始位置
  2. SEEK_CUR: 当前位置
  3. SEEK_END: 文件末尾位置

系统IO接口

系统调用接口:【openwritereadlseekclose

open

  • 所属头文件 < fcntl.h >
  • 函数定义:
int open(const char *pathname,int flags,mode_t mode);
  1. pathname:文件路径名

  2. flags:选项标志 (中间通过 或 “|” 间隔)

    - 必选项(必选其一) 含义 fcntl.h中宏定义
    O_RDONLY 只读 0
    O_WRONLY 只写 1
    O_RDWR 可读可写 2
    - 可选项 含义
    O_CREAT 文件不存在则创建,存在则打开
    O_EXCL 与O_CREAT同用时,若文件存在则报错
    O_TRUNC 打开文件同时截断文件长度为0处,打开时清空文件内容
    O_APPEND 追加写入
  3. mode :创建文件时给定权限。(八进制数字

  • 所属头文件:<sys/stat.h></
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

giturtle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值