自学内容网 自学内容网

Linux学习-文件IO编程

目录

打开文件:open 

    关闭文件:close

    读写:

    1. lseek


标准IO和文件IO的区别:
    1.标准IO是库函数,是对系统调用的封装
    2.文件IO是系统调用,是Linux内核中的函数接口
    3.标准IO是有缓存的
    4.文件IO是没有缓存的

IO:
    b  
    c
    d 
    -  标准IO(只有-能用标准IO)
    l 
    s 
    p


文件IO:
    1.操作步骤:
        打开 -> 读/写 -> 关闭
    

打开文件:open 


        int open(const char *pathname, int flags);
        int open(const char *pathname, int flags, mode_t mode);
        功能:
            打开文件并且获得文件描述符
        参数:
            pathname:要打开的文件名
            flags:标志位
                O_RDONLY    只读
                O_WRONLY    只写        
                O_RDWR      读写
                
                O_APPEND    追加
                O_ASYNC     异步IO
                O_CREAT     文件不存在创建
                O_TRUNC     文件存在截断(清0)

要增加更多的标志位需要用按位或的方式把他们的标志位写在一起。 open(const char *pathname,O_RDONLY | O_TRUNC,0664)

0664,是当追加标志位之后必须要加的权限,mode,

就是 ls -l之后,前面的rwx--rwx--rwx 第一组是创建用户对该文件的权限,第二组是创建文件的同组的对文件的权限,第三个是其余人对文件的权限

rwx--rwx--rwx

111--111--111

八进制就是0777,那0664就是rw--rw--r。
        返回值:
            成功返回文件描述符(很小的非负整数)
            失败返回-1 

        新生成的文件描述符总是为尚未被使用的最小的非负整数,012被使用所以从3

开始。

        0: stdin
        1: stdout
        2: stderr

在流中,前面的数字就可以代表后面的流eg:close(1)关闭stdout

    关闭文件:close


        int close(int fd);
        功能:
            将fd对应的文件描述符关闭
    


    读写:


        read/write 
        1.write
          ssize_t write(int fd, const void *buf, size_t count);
          功能:
            向fd对应的文件中写入buf指向的count个字节
          参数:
            fd:文件描述符
            buf:写入数据空间首地址
            count:写入的字节数
          返回值:
            成功返回实际写入字节数
            失败返回-1 

        2.read 
          ssize_t read(int fd, void *buf, size_t count);
          功能:
            从文件描述符fd对应的文件中读取count个字节存放到buf开始的空间中
          参数:
            fd:文件描述符 
            buf:存放数据空间的首地址
            count:想要读取数据字节数
          返回值:   
            成功返回实际读到的字节数
            失败返回-1 
            读到文件末尾返回0 


    1. lseek


       off_t lseek(int fd, off_t offset, int whence);  这个函数也是覆盖
       功能:
            重新设定文件描述符的偏移量
       参数:
            fd:文件描述符
            offset:偏移量  正数就是向前移动,负数就是向后移动
            whence:
                SEEK_SET    文件开头
                SEEK_CUR    文件当前位置
                SEEK_END    文件末尾
       返回值:
            成功返回当前偏移量
            失败返回-1 


 


原文地址:https://blog.csdn.net/weixin_71513915/article/details/136755274

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!