当前位置: 首页 > news >正文

Linux 基本语句_11_无名管道文件复制

父子进程:

父子进程的变量之间存在着读时共享,写时复制原则

无名管道:

无名管道仅能用于有亲缘关系的进程之间通信如父子进程

代码:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/fcntl.h>
#include <stdlib.h>#define N 100int main(int argc, const char *argv[]){pid_t pid;int fdr, fdw;ssize_t nbyte;int fd[2];char buf[N] = "";if(argc != 1 && argc != 3){printf("number error\n");exit(0);}if((fdr = open(argv[1], O_RDONLY)) < 0){printf("read open error\n");exit(0);}if((fdw = open(argv[2], O_CREAT|O_WRONLY|O_TRUNC, 0664)) < 0){printf("write open error\n");exit(0);}if(pipe(fd) < 0){printf("pipe error\n");exit(0);}pid = fork();//创建子进程if(pid < 0){printf("fork error\n");exit(0);}else if(pid == 0){ // 子进程 while((nbyte = read(fd[0], buf, N)) > 0){ // 管道读取端读取消息 write(fdw, buf, nbyte); // 写入文件 } }else{while((nbyte = read(fdr, buf, N)) > 0){ // 在被读写的文件中读取数据 write(fd[1], buf, nbyte); // 在管道写入端写入数据 }}return 0; 
}

解释:

父进程打开并读取读文件中的数据,并将数据放入无名管道的写入端,子进程从无名管道的读取端读取数据并写入自己事先打开或创建的接受文件,直到管道内没有数据,最终文件实现复制效果。

注意:read函数返还值为真实读取的数据,N为读取的数据

效果:

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/235611.html

相关文章:

  • 侧面多级菜单(一个大类、一个小类、小类下多个物体)
  • 2-(脏读,不可重复读,幻读 ,mysql5.7以后默认隔离级别)、( 什么是qps,tps,并发量,pv,uv)、(什么是接口幂等性问题,如何解决?)
  • wpf devexpress 创建布局
  • Chrome 浏览器经常卡死问题解决
  • listbox控件响应鼠标右键消息
  • 设计模式(二)-创建者模式(2)-工厂模式
  • 2023年高压电工证考试题库及高压电工试题解析
  • 公网访问全能知识库工具AFFINE,Notion的免费开源替代
  • 数据存储模型
  • vue3+vant 实现树状多选组件
  • Git安装与常用命令
  • uni-app 使用vscode开发uni-app
  • 单线程的JS中Vue导致的“线程安全”问题
  • vue2 - SuperMap3D加载基于Nginx服务生成的3DTileset模型切片服务地址
  • 新版本Spring Security 2.7 + 用法,直接旧正版粘贴
  • JVM——类加载器(JDK8及之前,双亲委派机制)
  • (七)什么是Vite——vite优劣势、命令
  • vue之Error: Unknown option: .devServer.
  • 基于ssm的房屋租售网站(有报告)。Javaee项目,ssm项目。
  • LeeCode AutoX-4 计算几何
  • Vue3 动态设置 ref
  • fast lio 2 保存每一帧的点云PCD和里程计矩阵 Odom 在txt文件
  • 当前主流DDos方式有哪几类
  • 神经网络常见评价指标AUROC(AUC-ROC)、AUPR(AUC-PR)
  • Apache Doris安装部署
  • Excel查询时用vlookup或者xlookup时,虽然用的参数选择的是精确匹配,但是发现不能区分大小写,应该如何解决?
  • 4种经典的限流算法
  • <MySQL> 什么是数据库事务?事务该如何使用?
  • Linux 网络:PMTUD 简介
  • BatchNormalization:解决神经网络中的内部协变量偏移问题