Linux IO函数

news/2025/1/12 4:09:21/

read/write函数:

1.read

#include <unistd.h>

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

参数:

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

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

    -count:指定的数组的大小

返回值:

    -成功:

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

        =0:文件已经读完了

    -失败:

        返回-1,并且设置error

2.write

#include <unistd.h>

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

    参数:

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

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

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

    返回值:

    -成功:

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

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

    -失败:

        返回-1,并且设置error

 

lseek函数

#include <sys/types.h>

#include <unistd.h>

    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 <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

       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);

        获取软连接文件的信息


http://www.ppmy.cn/news/1107852.html

相关文章

华为交换机:MSTP的基础配置

现状分析 某公司的总部包含4个部门&#xff0c;为了增加网络的可靠性&#xff0c;需要所在的交换机上配置MSTP&#xff0c;确保网络不会出现环路问题&#xff0c;同时实现负载均衡。 网络设计 搭建网络拓扑&#xff0c;配置VLAN&#xff0c;Trunk&#xff0c;链路聚合。在4台…

SpringMVC之JSR303和拦截器

认识JSR303 JSR303是一项Java标准规范&#xff0c;也叫做Bean Validation规范&#xff0c;提供了一种JavaBean数据验证的规范方式。在SpringMVC中&#xff0c;可以通过引入JSR303相关的依赖&#xff0c;来实现数据的校验。 在使用JSR303进行校验时&#xff0c;需要在需要校验的…

华为HCIA学习(一)

文章目录 一.根据考试题总结知识点&#xff08;一题一点&#xff09;二.上午学习三.下午学习四.今天只做了70题&#xff0c;需要的可以找我 一.根据考试题总结知识点&#xff08;一题一点&#xff09; 二.上午学习 ① VRP系统是VRP是华为公司从低端到高端的全系列路由器、交换…

阿里云acp云计算认证考试科目有哪些?

阿里云ACP云计算认证考试科目包括以下内容&#xff1a; 阿里云云计算基础知识&#xff1a;包括云计算的定义、特点、服务模式、部署模式、虚拟化技术等相关知识。阿里云产品&#xff1a;包括阿里云ECS、RDS、SLB、OSS、DNS等核心产品的架构、使用方法、优化技巧等相关知识。云…

如何构建一个简单的前端框架

先让我来解释一下什么是前端框架。所谓的前端框架&#xff0c;就是一种能够让我们避免去写常规的HTML和JavaScript代码 <p id"cool-para"></p> <script>const coolPara Test;const el document.getElementById(cool-para);el.innerText coolPa…

更灵活的 serverless framework 配置文件

更灵活的 serverless framework 配置文件 前言 再经过前置教程的部署之后&#xff0c;不知道你有没有注意这样一个问题&#xff0c;就是我们部署的函数名&#xff0c;以及 API网关 的 endpoint&#xff0c;它们的名称和路径都带一个 dev? 这个就是 stage 导致的了&#xff…

【LeetCode题目详解】第九章 动态规划part16 583. 两个字符串的删除操作 ● 72. 编辑距离 ● 编辑距离总结篇 (day56补)

本文章代码以c为例&#xff01; 本文章转自代码随想录 一、力扣第583题&#xff1a;两个字符串的删除操作 题目&#xff1a; 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 示例 1…

vite + react + typescript + uni-app + node 开发一个生态系统

简介 使用 vite react typescript uni-app node 来开发一个简易的生态系统案例&#xff0c;包含 APP&#xff0c;H5&#xff0c;微信小程序&#xff0c;控制台&#xff0c;服务端 开发 admin 技术栈&#xff1a;vite react typescript初始化控制台项目选择自定义预设…