• Linux IO函数


    read/write函数:

    1.read

    #include

    ssize_t read(int fd, void *buf, size_t count);

    参数:

        -fd:文件描述符,open得到的,通过这个文件描述符操作某个文件

        -buf:需要读取数据存放的地方,数组的地址;

        -count:指定的数组的大小

    返回值:

        -成功:

            >0:返回实际的读取到的字节数

            =0:文件已经读完了

        -失败:

            返回-1,并且设置error

    2.write

    #include

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

        参数:

            -fd:文件描述符,open得到的,通过这个文件描述符操作某个文件

            -buf:需要读取数据存放的地方,数组的地址;

            -count:要写的数据的实际的大小

        返回值:

        -成功:

            >0:返回实际的写入的字节数

            =0:没有任何的内容写入

        -失败:

            返回-1,并且设置error

     

    lseek函数

    #include

    #include

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

            参数:

                -fd:文件描述符

                -offset:偏移量

                -whence:

                    SEEK_SET

                        设置文件指针的偏移量

                    SEEK_CUR

                        设置偏移量:当前位置 + 第二个参数offset的值

                    SEEK_END

                        设置偏移量:文件大小 + 第二个参数的值

            返回值:返回文件指针所在的位置

        作用:

            1.移动文件指针到文件头 lseek(fd, 0, SEEK_SET)

            2.获取当前文件指针的位置 lseek(fd, 0, SEEK_CURRENT)

            3.获取文件长度 lseek(fd, 0, SEEK_END)

            4.拓展文件的长度 lseek(fd, 100, SEEK_END)(增加100个字节)需要写一次数据

    stat/lstat函数

    #include

    #include

    #include

           1. int stat(const char *pathname, struct stat *statbuf);

    作用:获取一个文件相关的信息,如文件大小、权限、Inode、Uid、最近访问时间、最近更改时间、最近改动时间等等

            参数:

                -pathname:操作文件的路径

                -statbuf:结构体变量,传出参数,用于保存获取到的文件的信息

            返回值:

                成功:返回0

                失败:返回-1,设置errno

           2. int lstat(const char *pathname, struct stat *statbuf);

            获取软连接文件的信息

  • 相关阅读:
    手写Spring1(实现Spring bean容器)
    斑马打印机二维码标签制作(.prn文件)基础简单快速上手
    codeforces每日5题(均1500)-第二十天
    K8S面试总结
    软考初级网络管理员__网络单选题
    Vue--1.4Vue指令
    8.2学习记录
    VRPTW(MATLAB):蜘蛛蜂优化算法SWO求解带时间窗的车辆路径问题VRPTW(提供参考文献及MATLAB代码)
    怎样理解Redis中的AOF重写?
    Redis缓存穿透、缓存雪崩和缓存击穿的解决方案
  • 原文地址:https://blog.csdn.net/ME_Liao_2022/article/details/132823337