linux系统编程1--文件编程read和write

news2024/9/29 13:21:02
  1. write函数进行文件写入操作

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

2.参数1:int fd,文件描述符即open函数的返回值;

参数2:const void *buf,写入到fd文件内容的写入缓冲区;

参数3:size_t count,要写入内容的字节数;

3.返回值:正确写入则返回写入字节大小,没有内容写入则返回0,错误写入则返回-1;

4.包含特定头文件:#include <unistd.h>

来看看怎么使用write函数,首先用touch bread.txt创建一个空文件,然后vi mwrite.c创建代码,内容如下:

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
int main()
{
 int fd; 
 fd=open("/root/bread.txt",O_RDWR);
  if(fd==-1)
  {
   {printf("fail\n");}
  }
  else
  {
    char *cont="goods request";
     int r=write(fd,cont,strlen(cont));
     if(r>-1)
       {printf("ok,%d\n",r);}
  } 
 close(fd);
 return 0;
}

上述代码的意思是打开bread.txt文件,以读写模式,如果文件不存在则报错,否则利用write函数写入指定的内容,正确写入则返回写入字节大小,没有内容写入则返回0,错误写入则返回-1,gcc编译后,运行文件,结果如下:

2、read函数进行文件读操作

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

2.参数1:int fd,要读文件的文件描述符;

参数2:void *buf,存放读出来内容的缓冲区;

参数3:size_t count,从fd文件中读内容的字节大小;

3.返回值:正确读取则返回读取到内容的字节大小,没有内容则返回0,错误读取则返回-1;

4.包含特定头文件:#include <unistd.h>

首先用vi mread.c创建文件,输入以下代码

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
int main()
{
 int fd; 
 fd=open("/root/bread.txt",O_RDONLY);
  if(fd==-1)
  {
   {printf("fail\n");} 
  }
  else
  {
    char buf[1024];
     int r=read(fd,buf,1024);
     if(r>-1)
       {
       printf("ok,%d\n txt=%s\n",r,buf);
        }
   } 
 close(fd);
 return 0;
}

代码意思是打开指定的文件,然后创建缓冲区大小,调用read函数读取指定大小到缓冲区,最后判断结果,输入结果,效果如下:

五谷丰收,大富大贵

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

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

相关文章

10万字企业数字化(技术中台、数据中台、工业互联网平台建设方案

【版权声明】本资料来源网络&#xff0c;知识分享&#xff0c;仅供个人学习&#xff0c;请勿商用。【侵删致歉】如有侵权请联系小编&#xff0c;将在收到信息后第一时间删除&#xff01;完整资料关注公众号“智慧方案文库”&#xff0c;部分资料内容&#xff1a; 目录 1 概述 …

【nodejs-05】黑马nodejs学习笔记05-数据库基本操作02

文章目录4.在项目中操作MySQL4.1 在项目中操作数据库的步骤4.2 安装与配置 mysql 模块4.3 使用 mysql 模块操作 MySQL 数据库5.前后端的身份认证5.1 Web 开发模式5.2 身份认证5.3 Session 认证机制5.4 在 Express 中使用 Session 认证5.5 JWT 认证机制5.6 在 Express 中使用 JW…

用类比方式学习编程中函数递归(个人理解仅供参考)(内含汉诺塔问题的求解)

目录 1.前言 2.递归的数学模型 3.相关的c语法 4.将递归的数学模型写成编程语言 5.利用类比方法将实际问题的代码写成函数递归的形式 例1: 例2: 6.汉诺塔问题的求解 1.前言 本人在学习函数递归编程方法的过程中&#xff0c;发现用类比的方式学习递归法可帮助我们在各种编…

day14_类中成员之一:构造器

由来 我们发现我们new完对象时&#xff0c;所有成员变量都是默认值&#xff0c;如果我们需要赋别的值&#xff0c;需要挨个为它们再赋值&#xff0c;太麻烦了。我们能不能在new对象时&#xff0c;直接为当前对象的某个或所有成员变量直接赋值呢。可以&#xff0c;Java给我们提…

【算法】二分

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;或许会很慢&#xff0c;但是不可以停下来&#x1f43e; 文章目录1.二分思想2.二分模板3.二分应用1.二分思想 思想 单调的元素&#xff0c;一定可以二分&#xff1b;非单调不一定不能二分 每次把整个区间 [ …

【企业云端全栈开发实践-1】项目介绍及环境准备、Spring Boot快速上手

本节目录一、 项目内容介绍二、Maven介绍2.1 Maven作用2.2 Maven依赖2.3 本地仓库配置三、Spring Boot快速上手3.1 Spring Boot特点3.2 遇到的Bug&#xff1a;spring-boot-maven-plugin3.3 遇到的Bug2&#xff1a;找不到Getmapping四、开发环境热部署一、 项目内容介绍 本课程…

肿瘤HRR和HRD 简单记录

最近看到两个在肿瘤领域高频出现的词HRR和HRD&#xff0c; 遂简单记录下。 HRR和HRD的概念 当细胞受到外界不良环境的压力下往往会导致DNA的损伤&#xff0c;此时便会触发DNA 损伤反应 (DDR)&#xff0c;从而激活许多DNA修复通路。在这些DNA损伤中&#xff0c;DNA 双链断裂&a…

【云原生】centos7搭建安装k8s集群 v1.25版本详细教程实战

文章目录前言一. 实验环境二. k8s 的介绍三 . k8s的安装3.1 搭建实验环境3.1.1 硬件层面的要求3.1.2 软件层面环境配置3.2 docker的安装3.2.1 搭建docker3.2.2 部署 cri-dockerd3.3 部署k8s3.3.1 配置添加阿里云的yum源3.3.2 安装kubeadm kubelet kubectl3.3.3 k8s-master节点初…

浪涌保护器,防雷浪涌保护器的作用和类型指南

1&#xff0e; 什么是SPD浪涌保护器&#xff1f;地凯防雷SPD浪涌保护器是防止雷击导致故障的避雷器和浪涌保护设备。广泛用于电源浪涌对策的变阻器在通电超过规格的雷电浪涌电流、超过最大容许电路电压的过电压、过电流时&#xff0c;会进入短路故障模式&#xff0c;存在冒烟起…

Mysql元数据获取方法(information_schema绕过方法)

前提&#xff1a;如果waf或其它过滤了information_schema关键字&#xff0c;那我们该如何获取元数据呢&#xff1f;能够代替information_schema的有&#xff1a;sys.schema_auto_increment_columnssys.schema_table_statistics_with_bufferx$schema_table_statistics_with_buff…

大数据框架之Hadoop:HDFS(七)HDFS 2.X新特性

7.1集群间数据拷贝 scp实现两个远程主机之间的文件复制 ​ scp -r hello.txt roothadoop103:/root/hello.txt // 推 push ​ scp -r roothadoop103:/root/hello.txt hello.txt // 拉 pull ​ scp -r roothadoop103:/root/hello.txt roothadoop104:/root //是通过本地主机中…

计算机技术与软件(初级、中级、高级)考试(软考)是什么?软考的时间安排是什么时候?

一、软考是什么&#xff1f; 计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试&#xff08;以下简称计算机软件资格考试&#xff09;是原中国计算机软件专业技术资格和水平考试&#xff08;简称软件考试&#xff09;的完善与发展。计算机软件资格考试是由国家人力…

Fluent工作目录

1 工作目录定义工作目录&#xff08;working directory&#xff09;是一种文件存储路径设置方式。基于工作目录的方法&#xff0c;写文件时只需要指定文件名&#xff0c;而不需要指定完全的文件路径&#xff0c;从而简化程序编写&#xff0c;对不同操作系统环境有更好的适应性。…

#笨鸟先飞# 数据结构与算法基础 课程笔记 第六章 图

图的定义和基本术语图&#xff1a;G( V , E ) Graph&#xff08;Vertex&#xff0c;Edge&#xff09;V&#xff1a;顶点&#xff08;数据元素&#xff09;的有穷非空集合&#xff1b;E&#xff1a;边的有穷集合。无向图&#xff1a;每条边都是无方向的有向图&#xff1a;每条边…

新手小白入门必看!如何批量注册Twitter账号?

Twitter是目前海外比较流行的社媒营销平台&#xff0c;所以很多从事跨境电商行业的朋友都需要利用多个Twitter账号来推广营销&#xff0c;但是注册和管理多个Twitter账号其实并不是简单的事情。龙哥将会在这里详细讲讲该如何批量注册并且让这些账号不会因为关联被封号&#xff…

如何合理地制定项目管理计划?

甘特图是一个比较常见的直观地项目管理专用工具&#xff0c;我们可以使用用Excel制作表格&#xff0c;也可是使用项目管理软件。 详细的项目计划不能完全保证项目成功&#xff0c;但是可以将失败的风险降到最低。通过项目管理软件的图标&#xff0c;项目管理者可以直观的查看任…

字符串的特殊读取——基于蓝桥杯两道题目(C/C++)

目录 1 例题 1.1 卡片换位 1.2 人物相关性分析 2 字符串的读取 2.1 综述 2.2 scanf 2.3 getline/getchar/get 2.4 注意 2.5 说明 先看例题 1 例题 1.1 卡片换位 问题描述 你玩过华容道的游戏吗&#xff1f; 这是个类似的&#xff0c;但更简单的游戏。 看…

加拿大访问学者如何提升自我

学习加拿大先进的科学技术和研究方法是我们访学的最主要目的。(1)根据自己的先前的研究计划、加方导师的项目和科研条件尽早调整自己目前学习和研究。(2)可以适当、有选择地听一些相关的课程&#xff0c;在提高英语水平的同时&#xff0c;又能够了解外国的教学方法。(3)与导师积…

pytest+yaml+allure接口自动化测试框架04.处理request

前言 ​ 环境搭建配置、封装日志缓存、读取yaml测试文件&#xff0c;这些工作我们上几个章节已经都做完了&#xff0c;读取文件之后&#xff0c;我们已经成功拿到了测试yaml文件中的测试数据了&#xff0c;那我们接下来就通过这些数据去执行测试&#xff0c;主要就是对这些数据…

SpringBoot+Vue实现酒店客房管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…