IOday4作业

news2025/1/22 21:10:59

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

#include<myhead.h>

int main(int argc, const char *argv[])
{
	int pid=-1;
	int fd = -1;
	int fa = -1;
	int fb = -1;
	//求出文件大小
	size_t size_fork = -1;
	if((fd = open("./cpy.txt",O_RDONLY))== -1)
	{
		perror("open error");
		return -1;
	}
	size_fork=lseek(fd,0,SEEK_END);
	char str1[100]="0";
	char str2[100]="0";
	//创建第一个子进程
	pid = fork();
	//判断在父进程中再次创建一个子进程
	if(pid > 0)
	{	
		pid = -1;
		//创建第二个子进程
		pid = fork();
		if(pid > 0)
		{
			//父进程——————主文件
			//打开主文件

		}
		else if(pid == 0)
		{
			//子程序——————拷贝文件的下一半
			//打开第一个文件
			if((fa = open("./1.txt",O_WRONLY|O_TRUNC))== -1)
			{
				perror("open error");
				return -1;
			}
			lseek(fd,size_fork/2,SEEK_SET);
			read(fd,str2,size_fork/2);
			write(fa,str2,size_fork/2);
			exit(EXIT_SUCCESS);
			
		}
		else
		{
			perror("fork error");
			return -1;
		}

	}
	else if(pid == 0)
	{
		//子进程—————拷贝主文件的上一半
		//打开二个子文件
		if((fb = open("./2.txt",O_WRONLY|O_TRUNC))==-1)
		{
			perror("open error");
			return -1;
		}
		lseek(fd,0,SEEK_SET);
		read(fd,str1,size_fork/2);
		write(fb,str1,size_fork/2);
		exit(EXIT_SUCCESS);
	}
	else
	{
		perror("fork error");
		return -1;
	}
	wait(NULL);
	wait(NULL);
	close(fd);
	close(fa);
	close(fb);
	return 0;
}

效果图:

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

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

相关文章

ahk系列-windows超级运行框-表达式计算(4)—len计算字符串长度

1、环境准备 windows 7&#xff0c;8&#xff0c;10&#xff0c;11操作系统ahk 2.x_64位 2、使用方式 len 用于计算字符串长度&#xff0c;同时也可以计算 “ 剪切板 ” 数据长度 输入winR打开windows运行框 在运行框中输入&#xff1a;len 你好呀&#xff01;&#xff0…

书-用数组存储高于60低于70的人单独存起来

#include<stdio.h> # define N 10 //书-用数组存储高于60低于70的人单独存起来 int main(){float s[N]{68.2,62.3,63.4,34.5,45.6,56.7,67.8,78.9,89.0,100};int i;float diyu[100];int j0;for(i0;i<N;i){if(s[i]>60 && s[i]<70)diyu[j]s[i];//这里的范…

近期复习三

目录 nginx.conf文件介绍 一.文件共享功能 1.清空html目录下文件并新建你要共享的文件 2.修改nginx.conf文件&#xff0c;开启autoindex功能 3.测试 二.状态模块 1.修改nginx.conf文件 2.测试 &#xff08;1&#xff09;使用刚才定义的IP/nginx_status进行访问 &#…

c++新经典模板与泛型编程:const修饰符的移除与增加

const修饰符的移除 让你来写移除const修饰符&#xff0c;你会怎么样来写&#xff1f; &#x1f602;&#x1f602;trait类模板&#xff0c;如下 #include <iostream>// 泛化版本 template<typename T> struct RemoveConst {using type T; };// 特化版本 template…

学完就能涨薪5k的接口自动化测试框架pytest-多线程、多进程执行用例

有些项目的测试用例较多&#xff0c;测试用例时需要分布式执行&#xff0c;缩短运行时间。 pytest框架中提供可用于分布式执行测试用例的插件&#xff1a;pytest-parallel、pytest-xdist&#xff0c;接下来我们来学习这两个插件的使用方法。 pytest-parallel pytest-paralle…

绘制6层及以上PCB板,需要明白PCB板的结构和叠层

PCB主要由PP半固化片和core芯板压合而成&#xff0c;其中core芯板两面都有铜箔&#xff0c;是PCB板的导电介质&#xff1b;PP半固化片是绝缘材料&#xff0c;用于芯板的粘合。 在PP半固化片被层压后&#xff0c;其环氧树脂被挤压开来&#xff0c;将core芯板粘合在一起。 PCB的叠…

[NAND Flash 2.1] NAND Flash 闪存改变了现代生活

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< ​ 1989年NAND闪存面世了&#xff0c;它曾经且正在改变了我们的日常生活。 NAND 闪存发明之所以伟大&#xff0c;是因为&#xff0c…

抖音短视频账号矩阵系统开发新规则

一、抖音官方平台开发新规&#xff1a; 1.代发布管理应用api接口无法在做新的应用申请 仅针对企事业单位开放&#xff0c;目前要想开发新的抖音矩阵系统&#xff0c;就需要在原有的技术算法上进行新一步的调整。 能力介绍 网站应用开发者可以申请开通【代替用户发布内容到抖…

[NAND Flash 2.2] NAND闪存及控制器的市场趋势 [2023]

依公知及经验整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入理解NAND Flash》 <<<< 返回总目录 <<<< 一、NAND闪存市场分析 据欧洲知名半导体分析机构Yole发布的报告显示&#xff0c;2020年起&#xff0c;NAND闪存市场发展趋势保持稳定…

Web漏洞分析-SQL注入XXE注入(下)

随着互联网的不断普及和Web应用的广泛应用&#xff0c;网络安全问题愈发引起广泛关注。在网络安全领域中&#xff0c;SQL注入和XXE注入是两个备受关注的话题&#xff0c;也是导致许多安全漏洞的主要原因之一。本博客将深入研究这两种常见的Web漏洞&#xff0c;带您探寻背后的原…

@业务部门的,奉劝一句,赶紧掌握BI报表

趁着企业还在转型数字化&#xff0c;赶紧把BI报表掌握起来&#xff0c;以后BI大数据分析将是一个常用的企业级数据分析方向。掌握BI报表后&#xff0c;分析数据再也不用求人了。想分析什么数据&#xff0c;直接在BI平台上点击取数就是了&#xff0c;想怎么分析就怎么分析&#…

C++初学教程二

目录 一、格式化输出函数&#xff1a; 格式化输出函数printf() 1、格式 2、程序示例&#xff1a; 3、格式字符 4、举例 示例一&#xff1a; 示例二&#xff1a; ​示例三&#xff1a; 示例四&#xff1a; 示例五&#xff1a; 5、注意事项 二、格式化输入函数 格…

基于springboot+vue篮球联盟管理系统源码

&#x1f345; 简介&#xff1a;500精品计算机源码学习 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 文末获取源码 目录 一、以下学习内容欢迎交流&#xff1a; 二、文档资料截图&#xff1a; 三、项目技术栈 四、项目运行图 背景&#xff1a; 篮球运…

Chrome浏览器调整搜索标签页按钮位置

地址栏输入 chrome://flags 搜索 chrome-refresh-2023 第一项 修改为Enabled 标签搜索页按钮出现在chrome的左上角 修改为Default 标签搜索页按钮出现在chrome的右上角 修改完成后&#xff0c;点击Relaunch&#xff0c;重启浏览器&#xff0c;修改生效。

在发布应用程序时如何选择合适的分发方式?

大家好&#xff0c;我是咕噜-凯撒&#xff0c;在现代移动互联网的环境下&#xff0c;应用已经成为人们生活不可或缺的一部分&#xff0c;选择合适的分发方式对于应用的发展和成功来说至关重要。不同的分发方式有着自己的特点和优缺点&#xff0c;所以需要针对性地进行选择。下面…

2024王道考研计算机组成原理——存储系统

微信打开的时候会有一个人站在地球上&#xff0c;这个过程就是把程序从辅存转移到主存&#xff0c;数据只有调入主存当中才可以被CPU访问 cache&#xff1a;主存速度还是慢&#xff0c;为了进一步缓解CPU和主存之间的速度矛盾 在微信打视频聊天的时候&#xff0c;在这一段比较…

算法-03-排序-归并-快速排序

冒泡排序、插入排序、选择排序这三种排序算法&#xff0c;它们的时间复杂度都是O(n^2)&#xff0c;比较高&#xff0c;适合小规模数据的排序。如果数据量大&#xff0c;我们就需要使用到时间复杂度低的排序算法&#xff0c;归并排序和快速排序是复杂度为O(nlogn)的排序算法。 …

Image Segmentation Using Deep Learning: A Survey

论文标题&#xff1a;Image Segmentation Using Deep Learning:A Survey作者&#xff1a;发表日期&#xff1a;阅读日期 &#xff1a;研究背景&#xff1a;scene understanding,medical image analysis, robotic perception, video surveillance, augmented reality, and image…

【keepalived】高可用神器,实现应用的自动主备切换

目录 1.概述 2.配置 3.效果 4.keepalived主备切换原理 5.联系作者 1.概述 什么是keepalived&#xff1a; keepalived是一个基于VRRP协议来实现的服务高可用方案。VRRP协议&#xff0c;即虚拟路由冗余协议&#xff0c;其一开始提出来是为了解决局域网中配置静态网关出现单…

工业级路由器在智能交通系统(ITS)中的创新应用

智能交通系统&#xff08;ITS&#xff09;作为一种先进的交通管理与控制系统&#xff0c;旨在提高交通运输系统的效率、安全性和便捷性。随着科技的不断发展&#xff0c;智能交通系统已经成为城市交通管理的重要组成部分。而工业级路由器作为一种可靠的网络通信设备&#xff0c…