IOday4作业

news/2024/10/22 13:29:05/

使用两个子进程完成两个文件的拷贝,子进程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.ppmy.cn/news/1259748.html

相关文章

【MATLAB源码-第96期】基于simulink的光伏逆变器仿真,光伏,boost,逆变器(IGBT)。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 1. 光伏单元&#xff08;PV Cell&#xff09; 工作原理&#xff1a;光伏单元通过光电效应将太阳光转换为直流电。它们的输出取决于光照强度、单元温度和负载条件。Simulink建模&#xff1a;在Simulink中&#xff0c;光伏单元…

超级详细的 Docker Desktop 安装 Keycloak

一、Keycloak 简介 收先先來看一下Keycloak的基本資訊: 名稱: Keycloak開發使用的程式語言: Java公用: 單點登入驗證與授權工具許可協議: Apache License 2.0公開倉庫: https://github.com/keycloak/keycloak官方網站: https://www.keycloak.org撰寫當下最新版本: 15.0.2 (20…

TS版LangChain实战:基于文档的增强检索(RAG) | 京东云技术团队

LangChain LangChain是一个以 LLM &#xff08;大语言模型&#xff09;模型为核心的开发框架&#xff0c;LangChain的主要特性&#xff1a; 可以连接多种数据源&#xff0c;比如网页链接、本地PDF文件、向量数据库等允许语言模型与其环境交互封装了Model I/O&#xff08;输入…

如何设置不同的网页标题(react)

通常&#xff0c;当我们写一个h5或者网站时&#xff0c;需要根据页面的业务来自定义网页标题。 这个本来是在入口html文件中设置的&#xff0c;但唯一。 <head><meta charset"UTF-8" /><!-- <link rel"icon" type"image/svgxml&qu…

【数据结构】——二叉树特点

前言&#xff1a;我们前面已经了解了二叉树的一些概念&#xff0c;那么我们今天就来了解下二叉树的遍历实现和一些性质。 二叉树的遍历方式有三种&#xff1a;前序&#xff0c;中序&#xff0c;后序。 前序&#xff1a;先根节点&#xff0c;再左子树&#xff0c;最后右子树。 中…

Java利用UDP实现简单的双人聊天

一、创建新项目 首先创建一个新的项目&#xff0c;并命名。 二、实现代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; import java.io.IOException; import java.lang.String; public class liaotian extends JFrame{ pri…

【LeetCode 0125】【双指针】有效回文

题目 https://leetcode.com/problems/valid-palindrome/ 题解 双指针&#xff1a;左指针右移过程时跳过非法字符&#xff0c;右指针左移时跳过非法字符。 如果左指针大于等于右指针&#xff0c;表示有效回文&#xff1b;如果两指针所对应的字符如果不等&#xff0c;则不是有…

利用python编写后端程序 通用代码详解 项目实现

前言 最近自己正好有时间&#xff0c;想要自己搭建微信小程序&#xff0c;也正好记录一下自己的搭建过程和内容。 搭建准备工作 这里我使用的时pycharm编辑器。在后端开发中&#xff0c;我们需要三个库&#xff1a; import pymysql from flask import request, Fl…