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

学习IO的第四天

作业 :  使用两个子进程完成两个文件的拷贝,子进程1拷贝前一半内容,子进程2拷贝后一般内容,父进程用于回收两个子进程的资源

#include <head.h>int main(int argc, const char *argv[])
{int rd = -1;if((rd=open("./01_test.c",O_RDONLY))==-1)  //打开一个文件以只读的方式{perror("open error\n");return -1;}int wd = -1;                          //以写的方式打开一个文件,若文件不存在则创建,存在则清空if((wd=open("./text.txt",O_WRONLY|O_CREAT|O_TRUNC, 0664))==-1){perror("write error\n");return -1;}char res[128]="";               //定义一个字符串当中转站int seek = lseek(rd,0,SEEK_END);   //定义seek获取文件内容的大小,lseek函数的返回值是文件的大小int count = 0;                 //定义count来接收read的返回值int pid = fork();              //创建子进程if(pid > 0)                    //如果pid大于0则为父进程  {//父进程//回收子进程的资源wait(NULL);wait(NULL);int pid2 = fork();         //在父进程中再创建子进程if(pid2>0)  //父进程{ }else if(pid2 == 0)    //再次创建的子进程{//子2进程			lseek(rd,0,SEEK_SET);   //将光标偏移到文件开头while(1){if(seek/2 == lseek(rd,0,SEEK_CUR)) //如果文件偏移到文件中间,则跳出循环{break;}count=read(rd,res,sizeof(res));   //读写文件write(wd,res,count);}exit(EXIT_SUCCESS);             //退出子进程}else{perror("pids error\n");return -1;}}else if(pid == 0)  //子2进程{ //休眠1秒等另一个进程拷贝完毕sleep(1);//光标移动到文件中央lseek(rd, 0, SEEK_CUR);while(1){if(count==0)   //如果read的返回值为0,说明文件读取完毕,跳出循环{break;}count = read(rd,res,sizeof(res));  //读写文件write(wd,res,count);}exit(EXIT_SUCCESS);    //退出子进程} else{perror("pidx error\n");return -1;}printf("拷贝完成\n");close(wd);close(rd);return 0;  
}

思维导图

相关文章:

学习IO的第四天

作业 : 使用两个子进程完成两个文件的拷贝&#xff0c;子进程1拷贝前一半内容&#xff0c;子进程2拷贝后一般内容&#xff0c;父进程用于回收两个子进程的资源 #include <head.h>int main(int argc, const char *argv[]) {int rd -1;if((rdopen("./01_test.c&quo…...

Linux:缓冲区的概念理解

文章目录 缓冲区什么是缓冲区&#xff1f;缓冲区的意义是什么&#xff1f;缓冲区的刷新方式 理解缓冲区用户缓冲区和内核缓冲区缓冲区在哪里&#xff1f; 本篇主要总结的是关于缓冲区的概念理解&#xff0c;以及再次基础上对文件的常用接口进行一定程度的封装 缓冲区 什么是缓…...

中山大学李华山、王彪课题组开发 SEN 机器学习模型,高精度预测材料性能

内容一览&#xff1a;了解全局晶体对称性并分析等变信息&#xff0c;对于预测材料性能至关重要&#xff0c;但现有的、基于卷积网络的算法尚且无法完全实现这些需求。针对于此&#xff0c;中山大学的李华山、王彪课题组&#xff0c;开发了一款名为 SEN 的机器学习模型&#xff…...

二百一十、Hive——Flume采集的JSON数据文件写入Hive的ODS层表后字段的数据残缺

一、目的 在用Flume把Kafka的数据采集写入Hive的ODS层表的HDFS文件路径后&#xff0c;发现HDFS文件中没问题&#xff0c;但是ODS层表中字段的数据却有问题&#xff0c;字段中的JSON数据不全 二、Hive处理JSON数据方式 &#xff08;一&#xff09;将Flume采集Kafka的JSON数据…...

【开放集检测OSR】开放集检测和闭集检测的区别和联系:从模型角度进行理解

定义一个分类器&#xff1a; D t r a i n { ( x i , y i ) } i 1 N ⊂ X C D_{train} \{(x_i, y_i)\}^N _{i1} ⊂ X C Dtrain​{(xi​,yi​)}i1N​⊂XC X&#xff1a;输入空间 ( x i , y i ) (x_i, y_i) (xi​,yi​): 输入的图像x以及其对象的类别标签yC &#xff1a;已知…...

【Flink】Flink核心概念简述

目录 一、Flink 简介二、Flink 组件栈1. API & Libraries 层2. runtime层3. 物理部署层 三、Flink 集群架构四、Flink基本编程模型五、Flink 的部署模式六、Flink 任务的执行模式五、Flink 的优点 一、Flink 简介 Apache Flink 的前身是柏林理工大学一个研究性项目&#x…...

linux-tar命令、解压、压缩

压缩 文件夹 命令&#xff1a;tar -zcvf ~/test/tar_t.tar.gz /target/ 将/target/文件夹及其子文件夹和文件压缩成tar_t.tar.gz文件&#xff0c;并放于~/test/路径下 文件 命令&#xff1a;tar -zcvf ~/test/tar_t.tar.gz /target/file 将/target/file文件压缩成tar_t.tar…...

Kafka Connect :构建强大分布式数据集成方案

Kafka Connect 是 Apache Kafka 生态系统中的关键组件&#xff0c;专为构建可靠、高效的分布式数据集成解决方案而设计。本文将深入探讨 Kafka Connect 的核心架构、使用方法以及如何通过丰富的示例代码解决实际的数据集成挑战。 Kafka Connect 的核心架构 Kafka Connect 的核…...

基于 Flink CDC 构建 MySQL 的 Streaming ETL to MySQL

简介 CDC 的全称是 Change Data Capture &#xff0c;在广义的概念上&#xff0c;只要是能捕获数据变更的技术&#xff0c;我们都可以称之为 CDC 。目前通常描述的 CDC 技术主要面向数据库的变更&#xff0c;是一种用于捕获数据库中数据变更的技术。CDC 技术的应用场景非常广泛…...

创建vue项目:node.js下载安装、配置环境变量,下载安装cnpm,配置npm的目录、镜像,安装vue、搭建vue项目开发环境(保姆级教程一)

今天讲解 Windows 如何创建 vue 项目&#xff0c;搭建 vue 开发环境&#xff0c;这是这个系列的第一章&#xff0c;有什么问题请留言&#xff0c;请点赞收藏&#xff01;&#xff01;&#xff01; 文章目录 一、Vue简单介绍二、开始搭建1、安装node.js环境2、配置npm下载时的默…...

uni-app 微信小程序之好看的ui登录页面(一)

文章目录 1. 页面效果2. 页面样式代码 更多登录ui页面 uni-app 微信小程序之好看的ui登录页面&#xff08;一&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;二&#xff09; uni-app 微信小程序之好看的ui登录页面&#xff08;三&#xff09; uni-app 微信小程…...

[ES]ElasticSearch强转日期的时区问题

问题 由于ES不能修改时区&#xff0c;且默认时区始终为UTC。 当才查询数据时&#xff0c;通过强转获得的日期并不是想要的&#xff0c;通过分析发现&#xff0c;正是由于默认时区导致结果相差了8个小时。 查询语句&#xff1a; POST http://localhost:9200/_sql?formattext {&…...

YOLOv5结合BiFPN,如何替换YOLOv5的Neck实现更强的检测能力?

一、BiFPN是什么&#xff1f; 1、什么是BiFPN BiFPN是一种基于特征金字塔网络&#xff08;FPN&#xff09;和双向特征金字塔网络&#xff08;BiFPN&#xff09;的对象检测神经网络结构&#xff0c;它被用于提高目标检测的准确度和速度。在目标检测领域&#xff0c;FPN用于将不同…...

3.PyTorch——常用神经网络层

import numpy as np import pandas as pd import torch as t from PIL import Image from torchvision.transforms import ToTensor, ToPILImaget.__version__2.1.13.1 图像相关层 图像相关层主要包括卷积层&#xff08;Conv&#xff09;、池化层&#xff08;Pool&#xff09;…...

状态机的练习:按键控制led灯

设计思路&#xff1a; 三个按键控制led输出。 三个按键经过滤波(消抖)&#xff0c;产生三个按键标志信号。 三个led数据的产生模块&#xff08;流水&#xff0c;跑马&#xff0c;闪烁模块&#xff09;&#xff0c;分别产生led信号。 这六路信号&#xff08;三路按键信号&am…...

看图学源码之 CopyOnWriteArraySet源码分析

基本介绍 使用内部CopyOnWriteArrayList进行所有操作的Set 特点 它最适合以下应用程序&#xff1a;集合大小通常较小、只读操作的数量远远多于可变操作&#xff0c;并且您需要在遍历期间防止线程之间的干扰。它是线程安全的。突变操作&#xff08; add 、 set 、 remove等&…...

almaLinux centos8 下载ffmpeg离线安装包、离线安装

脚本 # 添加RPMfusion仓库 sudo yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm wget -ymkdir -p /root/ffmpeg cd /root/ffmpegwget http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.14-2.el7.x86_64.rpmyum instal…...

CSS3 属性: transition过渡 与 transform动画

CSS3 提供了很多强大的功能&#xff0c;使开发人员可以创建更加吸引人的视觉效果&#xff0c;而不需要依赖于 JavaScript 或 Flash。其中&#xff0c;transition 和 transform 是两个常用的属性&#xff0c;它们分别用于创建平滑的过渡效果和元素的变形效果。下面我们将详细介绍…...

TCP通讯

第二十一章 网络通信 本章节主要讲解的是TCP和UDP两种通信方式它们都有着自己的优点和缺点 这两种通讯方式不通的地方就是TCP是一对一通信 UDP是一对多的通信方式 接下来会一一讲解 TCP通信 TCP通信方式呢 主要的通讯方式是一对一的通讯方式&#xff0c;也有着优点和缺点 …...

(NeRF学习)3D Gaussian Splatting Instant-NGP

学习参考&#xff1a; 3D Gaussian Splatting入门指南【五分钟学会渲染自己的NeRF模型&#xff0c;有手就行&#xff01;】 三维重建instant-ngp环境部署与colmap、ffmpeg的脚本参数使用 一、3D Gaussian Splatting &#xff08;一&#xff09;3D Gaussian Splatting环境配置…...

保姆级教程:用FLUX.2-Klein-9B在ComfyUI中快速编辑人像照片

保姆级教程&#xff1a;用FLUX.2-Klein-9B在ComfyUI中快速编辑人像照片 1. 准备工作与环境搭建 在开始使用FLUX.2-Klein-9B进行人像编辑前&#xff0c;我们需要先准备好运行环境。这个模型虽然功能强大&#xff0c;但部署过程其实非常简单&#xff0c;跟着步骤走就能快速上手…...

ThinkPHP6+UniApp实战:手把手教你用宝塔面板部署Niushop V5.5.0多门店商城(含全插件配置)

ThinkPHP6UniApp实战&#xff1a;宝塔面板部署Niushop V5.5.0多门店商城全流程解析 在数字化转型浪潮中&#xff0c;电商系统的快速部署能力已成为技术团队的核心竞争力之一。本文将带您深入实战&#xff0c;从零开始完成Niushop V5.5.0多门店商城系统的完整部署。不同于基础教…...

保姆级教程:手把手教你用万物识别镜像搭建智能图片识别工具

保姆级教程&#xff1a;手把手教你用万物识别镜像搭建智能图片识别工具 1. 准备工作与环境配置 1.1 镜像基本信息介绍 万物识别-中文-通用领域镜像是一个基于cv_resnest101_general_recognition算法构建的预装环境&#xff0c;能够识别超过5万种日常物体。它封装了完整的推理…...

5分钟搞定专业级黑苹果配置:OpCore Simplify智能工具让复杂EFI构建化繁为简

5分钟搞定专业级黑苹果配置&#xff1a;OpCore Simplify智能工具让复杂EFI构建化繁为简 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 开篇痛点直击&…...

CLIP-GmP-ViT-L-14模型API接口详解:从调用到错误处理

CLIP-GmP-ViT-L-14模型API接口详解&#xff1a;从调用到错误处理 最近在折腾一些多模态AI应用&#xff0c;发现CLIP模型真是个好东西&#xff0c;能把图片和文字拉到同一个空间里比较。特别是这个CLIP-GmP-ViT-L-14&#xff0c;效果挺不错的。但部署好之后&#xff0c;怎么调用…...

高效保存微信聊天记录:3步实现永久备份与深度分析完整指南

高效保存微信聊天记录&#xff1a;3步实现永久备份与深度分析完整指南 【免费下载链接】WeChatMsg 提取微信聊天记录&#xff0c;将其导出成HTML、Word、CSV文档永久保存&#xff0c;对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

Youtu-Parsing快速部署指南:一键启动Web服务,开箱即用解析工具

Youtu-Parsing快速部署指南&#xff1a;一键启动Web服务&#xff0c;开箱即用解析工具 1. 项目概述与核心价值 Youtu-Parsing是腾讯优图实验室推出的多模态文档智能解析模型&#xff0c;基于Youtu-LLM-2B构建&#xff0c;专为解决复杂文档解析难题而设计。不同于传统OCR工具&…...

C 语言从 0 入门(一)|VS2022 完整环境搭建 + 第一个 C 语言程序详解

大家好&#xff0c;我是网域小星球。前面的 Wireshark 抓包实战系列已经全部完结&#xff0c;从本文开始&#xff0c;正式开启一个全新的学习板块&#xff1a;C 语言从 0 到实战入门。 作为网络工程、计算机相关专业的核心基础语言&#xff0c;C 语言贴近计算机底层&#xff0…...

GeoServer发布PostGIS数据时,那个容易忽略的SQL注入风险点,你检查了吗?

GeoServer动态SQL视图的安全实践&#xff1a;如何规避PostGIS数据发布中的SQL注入风险 在GIS服务部署的日常工作中&#xff0c;GeoServer与PostGIS的组合堪称黄金搭档。但当我们陶醉于SQL视图带来的灵活性时&#xff0c;一个潜伏的安全威胁往往被忽视——SQL注入漏洞。这种漏洞…...

终极指南:如何用VideoDownloadHelper快速下载网页视频

终极指南&#xff1a;如何用VideoDownloadHelper快速下载网页视频 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 还在为无法保存网页视频而烦…...