文件IO笔记

文件IO基础

2.1 什么是文件IO

数据流方向定义:文件IO是对文件的输入、输出操作,通俗点说就是对文件的读/写操作

主要涉及4个函数:open()、read()、write()、close()

简单流程:打开文件、读或写文件、关闭文件

2.2 文件描述符

定义:非负整数、文件句柄、与对应的文件相绑定

描述符分配原则:分配一个没有被使用的最小非负整数作为文件描述符

标准输入:0 标准输出:1 标准错误:2

2.3 open()函数

  • 作用:打开文件、创建文件

  • 函数原型:
    在这里插入图片描述

pathname:文件路径、flags:标志、mode:设置权限,创建文件时才需要第三个参数

  • flags 参数介绍:
    O_RDONLY: 只读方式打开文件
    O_WRONLY: 只写方式打开文件
    O_RDWR: 以可读可写方式打开文件
    O_CREAT: 使用此标志或者O_TMPFILE时,第三参数需要传入来指定文件的访问权限
    O_DIRECTORY: open指向的不是一个目录则调用失败
    O_EXCL: 用于专门创建文件,O_CREAT| O_EXCL,如果指向的文件已经存在那么会返回错误,用于测试文件是否存在
    O_NOFOLLOW:如果pathname指向的是一个符号链接,将不对其进行解引用,直接返回错误

    在这里插入图片描述

  • mode:参数介绍
    在这里插入图片描述

    O:其他用户权限
    G:同组用户权限
    U:文件所属用户的权限
    S:文件的特殊权限

    111 000 000 :表示文件所属用户具有读写执行的权限,其他用户和同组用户没有任何权限
    100 100 100 :表示文件所属用户、其他用户、同组用户都只有可读权限

    宏定义:在这里插入图片描述

2.4 write()函数

  • 作用:写文件

  • 函数原型
    在这里插入图片描述

    fd : 目标文件 buf: 存放要写入的数据 count:写入的字节数 ssize_t 通过typedef重命名longlong
    返回值:写入的字节数,如果写入错误则返回-1

    在这里插入图片描述

2.5 read()函数

  • 作用:读文件

  • 函数原型
    在这里插入图片描述

    fd : 目标文件 buf:存放读取到的字节数 count: 读取的字节数
    返回值:正确读取分两种情况,第一种指的是要求读取100字节,也成功读取100字节,那么返回值就是100;如果要求读取100而由于读指针到末尾只有30字节,则返回值是30,下一次调用read返回值是0;读取错误,返回值是-1;

2.6 close()函数

  • 作用:关闭文件

  • 函数原型
    在这里插入图片描述

  • 成功返回 0 失败返回 -1
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.7 lseek函数

  • 作用:调整读写位置偏移

  • 函数原型:
    在这里插入图片描述

    fd:问价句柄 offset:偏移量 whence:参考值(文件头部、尾部、当前指针位置)
    SEEK_SET 头、SEEK_CUR ptr、SEEK_END 尾
    返回值:成功情况下返回修改后位置到头部的偏移量,失败返回-1

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值