linux文件的IO函数

open函数:

作用:打开或者新建一个文件

原型: int open(const char*pathname,int flags);

            int open(const char*pathname,int flags,mode_t mode);

参数:

        pathname:路径

        flags:1-> O_RONLY 只读打开    2 -> O_WONLY只写打开  3-> O_RDWR 可读可写打开

                 这三个是必选一个。

O_APPEND 表示追加    O_CREAT 文件不存在则创建  这两个是可选

         mode:表示该文件的访问权限

O_EXCL->如果同时指定O_CREAT,并且文件已存在,则出错返回。

O_TRUNC->如果文件存在,将其长度截断为0字节 

函数返回值:

成功:返回一个最小且未被占用的文件描述符

失败:返回-1,并设置errno值

close函数:

 作用:关闭文件

函数原型:int close(int fd)

fd 文件描述符

函数返回值:

成功返回0

失败返回-1

read函数:

作用:从打开的设备或文件中读取数据

函数原型:ssize_t read(int fd,void*buf,size_t count)

fd->文件描述符   buf->读上来的数据保存在缓冲区buf中   count->buf缓冲区存放发最大字节数

函数返回值:

>0:读取到的字节数

=0:文件读取完毕

-1:出错,并设置errno

注意:

read 函数读普通文件,在读完文件后,若再次read,则read函数会立刻返回,表明read函数读普通文件是非阻塞的。

read函数读设备文件,socket,pipe文件都是阻塞的。

write函数: 

作用:向打开的设备或文件写数据

函数原型:ssize_t write(int fd,const void*buf,size_t count)

fd->文件描述符 buf->缓冲区,要写入文件或者设备的数据  count->buf中数据的实际长度

函数返回值:

成功:返回写入的字节数

失败:返回-1,并设置errno

lseek函数:

常用操作:

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

int len=lseek(fd,0,SEEK_CUR) 获取文件指针当前位置

int len =lseek(fd,0,SEEK_END) 获取文件长度

操作如下:

注意:再读文件之前要把文件关掉,因为在写文件的时候文件指针已经移动到末尾了

或者使用lseek(fd,0,SEEK_SET);

如果不想把文件名写死,可以改为:

这样就可以生成test文件:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/673287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

83 CTF夺旗-Python考点SSTI反序列化字符串

这里写目录标题 CTF各大题型简介演示案例:CTF夺旗-Python-支付逻辑&JWT&反序列化CTF夺旗-Python-Flask&jinja2&SSTl模版注入CTF夺旗-Python-格式化字符串漏洞&读取对象 涉及资源: 我们这篇文章主要讲的是CTF在web渗透测试方向的3个考点 CTF各大…

elementui常用组件-个人版(间断更新)

Dialog 对话框 el-dialog <el-dialogtitle"提示":visible.sync"dialogVisible"width"30%":before-close"handleClose"><span>这是一段信息</span><span slot"footer" class"dialog-footer"…

代码随想录算法训练营|day25

第七章 回溯算法 216.组合总和III17.电话号码的字母组合代码随想录文章详解总结 216.组合总和III 回溯&#xff1a;i宽度约束&#xff0c;sum深度约束 func combinationSum3(k int, n int) [][]int {res : [][]int{}path : []int{}var help func(startIndex, sum, k, n int)h…

开源一套直播平台

博主开源一套直播平台,私信博主可获取源码 直播平台系统界面介绍

微信小程序(三十六)事件传参

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.传参步骤 2.传参接收解构步骤 源码&#xff1a; index.wxml <button type"primary" bind:tap"onclick" mark:index"{{0}}" mark:remb"{{1}}" class"But&quo…

产品经理--分享在项目中产品与研发之间会遇到的问题 在面试这一岗位时,面试官常问的问题之一,且分享两大原则来回答面试官这一问题

目录 一.STAR原则 1.1 简介 1.2 如何使用 1.3 举例说明 二.PDCA原则 2.1 简介 2.2 如何使用 2.3 运用场景 2.4 举例说明 三.产品与研发的沟通痛点 3.1 沟通痛点的原因 3.2 分享案例 前言 本篇会详细阐明作为一个产品经理会在项目遇到的问题&#xff0c;如&#xff1a;产…

力扣_字符串4—编辑距离

题目 给你两个单词 w o r d 1 word1 word1 和 w o r d 2 word2 word2&#xff0c; 请返回将 w o r d 1 word1 word1 转换成 w o r d 2 word2 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作&#xff1a; 插入一个字符删除一个字符替换一个字符 方法—动…

记录 | python 源码编译报错subprocess.CalledProcessError Command lsb_release

subprocess.CalledProcessError: Command (lsb_release, -a) returned non-zero exit status 1. 解决方法 find / -name lsb_releaserm -rf /usr/bin/lsb_release

张艺谋《主角》选角引发热议,周迅、赵丽颖、杨紫或成候选。

♥ 为方便您进行讨论和分享&#xff0c;同时也为能带给您不一样的参与感。请您在阅读本文之前&#xff0c;点击一下“关注”&#xff0c;非常感谢您的支持&#xff01; 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 近日&#xff0c;张艺谋执导的首部电视剧《主角》女主选角成为…

6.electron之上下文隔离,预加载JS脚本

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和 Node.js 嵌入到了一个二进制文件中&#xff0c;因此它允许你仅需一个代码仓库&#xff0c;就可以撰写支持 Windows、…

【Linux】vim的基本操作与配置(上)

Hello everybody!今天我们要进入vim的讲解了。学会了vim,咱们就可以在Linux系统上做一些简单的编程啦&#xff01; 那么废话不多说&#xff0c;咱们直接进入正题&#xff01; 1.初识vim vim是一款多模式的文本编辑器&#xff0c;可以对一个文件进行编辑操作。 它一共有三个模…

2024年【化工自动化控制仪表】最新解析及化工自动化控制仪表考试资料

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【化工自动化控制仪表】最新解析及化工自动化控制仪表考试资料&#xff0c;包含化工自动化控制仪表最新解析答案和解析及化工自动化控制仪表考试资料练习。安全生产模拟考试一点通结合国家化工自动化控制仪表考…

《dx12 龙书》第四部分学习笔记——预备知识(下)

7、多重采样技术的原理 由于屏幕中显示的像素不可能是无穷小的&#xff0c;所以并不是任意一条直线都能在显示器上“平滑”而完美地呈现出来。即为以像素矩阵 &#xff08;matrix of pixels&#xff0c; 可以理解为“像素2D数组”&#xff09;逼近直线的方法所产生的“阶梯” &…

EDM营销平台哪个好?推荐的邮件营销平台?

EDM邮件营销平台有哪些&#xff1f;外贸EDM邮件营销平台有哪些&#xff1f; EDM营销平台已成为企业推广产品和服务的重要工具。但是&#xff0c;面对市场上众多的EDM营销平台&#xff0c;究竟哪个更好呢&#xff1f;下面&#xff0c;蜂邮EDM将从平台功能、用户体验、数据分析和…

关于五子棋算法的学习

基于python的AI五子棋实现&#xff08;极大极小值搜索和alpha beta剪枝&#xff09;_pygame五子棋ai算法-CSDN博客 csdn搜索&#xff1a;AI五子棋实现 AI人机对战五子棋游戏【Python(pygame)AI】并实现软件输出_python设计两个ai对战黑白棋-CSDN博客z​​​​​​​z这个很详细…

Matlab使用点云工具箱进行点云配准

一、代码 source_pc pcread(bun_zipper.ply); target_pc pcread(bun_zipper2.ply); % 下采样 gridStep 0.001; ptCloudA pcdownsample(source_pc,gridAverage,gridStep); ptCloudB pcdownsample(target_pc,gridAverage,gridStep); % 初始变换矩阵 tform_initial affine3…

第三百一十二回

文章目录 1. 概念介绍2. 实现方法2.1 obscureText属性2.2 decoration属性 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何实现倒计时功能"相关的内容&#xff0c;本章回中将介绍如何实现密码输入框.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍…

C语言笔试题之实现C库函数 pow()(递归的思想)

实例要求&#xff1a; 1、请你实现C库函数 pow()&#xff08;stdio.h & math.h&#xff09; &#xff0c;即计算 x 的整数 n 次幂函数&#xff08;即x^n &#xff09;&#xff1b;2、函数声明&#xff1a;double myPow(double x, int n)&#xff1b;参数&#xff1a;1、x …

YOLOv8改进 更换轻量级网络结构

一、GhostNet论文 论文地址:1911.11907.pdf (arxiv.org) 二、 GhostNet结构 GhostNet是一种高效的目标检测网络,具有较低的计算复杂度和较高的准确性。该网络采用了轻量级的架构,可以在计算资源有限的设备上运行,并能够快速地实时检测图像中的目标物体。 GhostNet基于Mo…

mhformer代码笔记

目录 加载数据: 先加载3d数据: 再加载2d姿态数据 数据加pad