IO作业4.0

思维导图

创建出三个进程完成两个文件之间拷贝工作,子进程1拷贝前一半内容,子进程2拷贝后一半内容,父进程回收子进程的资源

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <myhead.h>
int main(int argc, const char *argv[])
{//判断外部传参if(argc != 3){perror("error");return -1;}//定义文件指针FILE * fp = NULL;FILE * fq = NULL;//以只读if((fp=fopen(argv[1], "r")) == NULL){perror("open error");return -1;}//以只写if((fq=fopen(argv[2], "w")) == NULL){perror("open error");return -1;}char buf[128]="";int count = 0; //计数器fseek(fp, 0, SEEK_END); //光标偏移到最后count = ftell(fp);//fseek(fp, 0, SEEK_SET);//光标偏移到开头pid_t pid1 = -1;pid1 = fork();//创建一个子进程if(pid1 == 0){printf("子进程1\n");	printf("拷贝内容为后一半\n");memset(buf, 0, sizeof(buf)); //清零fseek(fp, count/2,SEEK_SET); //光标后移fseek(fq, count/2,SEEK_SET); //光标后移while(ftell(fp) != count)//文件读写到最后结束循环{int num=fread(buf,1,sizeof(buf),fp);fwrite(buf,1,num,fq);}//关闭文件fclose(fp);fclose(fq);exit(EXIT_SUCCESS);}else if(pid1 > 0){pid_t pid2 = fork(); //创建另一个子进程if(pid2 == 0){printf("子进程2\n");printf("拷贝内容为前一半\n");memset(buf, 0, sizeof(buf)); //清零int sum = 0;while(ftell(fp) < count/2){int num=fread(buf,1,sizeof(buf),fp);sum+=num;if(sum>=count/2){fwrite(buf,1,num-(sum-count/2),fq);break;}fwrite(buf,1,num,fq);}	//关闭文件fclose(fp);fclose(fq);exit(EXIT_SUCCESS);}else if(pid2 > 0){wait(NULL);wait(NULL);printf("父进程已回收资源\n");}else {perror("fork error");return -1;}}else {perror("fork error");return -1;}//关闭文件fclose(fp);fclose(fq);printf("拷贝成功\n");return 0;
}

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

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

相关文章

win2003搭建DNS服务器域名解析方法

可以搭建DNS服务器的系统有很多&#xff0c;这里以win2003举例。 要在Windows 2003上搭建DNS服务器&#xff0c;需要按照以下步骤操作&#xff1a; 一 配置DNS服务器 1、打开“控制面板”,选择“添加/删除程序”,点击“添加/删除Windows组件”。 2、在“Windows组件向导”中…

批量AI智剪方法:轻松学会视频剪辑,让你的视频更精彩

在数字媒体时代&#xff0c;视频剪辑已经成为一项重要的技能。对于许多初学者来说&#xff0c;视频剪辑可能是一项复杂且耗时的任务。那么如何解决这个问题呢&#xff1f;现在一起来看看云炫AI智剪如何批量剪辑的方法&#xff0c;轻松完成视频剪辑工作&#xff0c;让视频更加精…

通往人工智能的 Go 之路

Agency 该库旨在为那些希望通过清晰、高效且符合 Go 语言惯例的方法来探索大型语言模型&#xff08;LLMs&#xff09;和其他生成式人工智能的开发人员而设计。 特点 纯 Go 语言&#xff1a;快速、轻量级&#xff0c;静态类型&#xff0c;无需涉及 Python 或 JavaScript编写清晰…

【科研指南8】如何快速批量下载一篇论文后的所有的参考文献?附赠Endnote分组论文管理

如何快速下载一篇论文后的所有的参考文献&#xff1f; 写在最前面第一步&#xff1a;在文献检索网站导出引用文献的RIS文件第二步&#xff1a;EndNote导入RIS文件&#xff0c;然后批量下载第三步&#xff08;可选&#xff09;&#xff1a;将之前找到的论文合并到Endnote一个数据…

MySQL JSON_CONTAINS() 传递参数

一、JSON_CONTAINS 用法 MySQL JSON_CONTAINS() 函数检查一个 JSON 文档中是否包含另一个 JSON 文档。 语法 JSON_CONTAINS(target_json, candidate_json) JSON_CONTAINS(target_json, candidate_json, path)参数 target_json&#xff1a;必需的。一个 JSON 文档。candida…

node常见概念

node常见概念 非阻塞&异步 node的用处 模块化 文件是互不干扰的 文件之间能相互调用 只有函数才会产生作用域。 join和resolve的区别&#xff1a; join&#xff1a;拼接 resolve&#xff1a;解析 require是同步的 把文件读成一个字符串&#xff0c;包装成一个自执行函数&am…

FLatten Transformer:聚焦式线性注意力模块

线性注意力将Softmax解耦为两个独立的函数&#xff0c;从而能够将注意力的计算顺序从(querykey)value调整为query(keyvalue)&#xff0c;使得总体的计算复杂度降低为线性。然而&#xff0c;目前的线性注意力方法要么性能明显不如Softmax注意力&#xff0c;并且可能涉及映射函数…

2024数字阅读有望进一步推动全民阅读多元化

数字化技术发展为阅读提供了更多选择方式,不仅使阅读打破了时空限制,也让阅读有了更为丰富的体验。 1月1日,以“点亮阅读,温暖寒冬”为主题的书香市集活动在北京王府井步行街启幕。此次活动联动中国书店、北京市新华书店等7家书店和大型书城,通过图书售卖、展览展示等一系列活…

CISSP 第6章: 密码学与对称加密算法

第六章 密码学与对称加密算法 6.1 密码学历史上的里程碑 6.1.1 凯撒密码 简单的将字母表中的每个字母替换成其后的三个字母&#xff0c;是单一字母的替代置换密码 6.1.2 美国内战 美国内战使用词汇替代和置换的复杂组合&#xff0c;从而试图破坏敌人的破译企图 6.1.3 Ultra与…

【Git】Git版本控制工具使用详解

1、版本控制 特点 协同修改: 多人可以并行修改服务器端的同一个文件 数据备份: 不仅保存目录和文件的当前状态,还可以保存每一个提交过的文件的历史状态 2、版本管理: 在保存每一个版本的文件信息时要做到不保存重复数据以节约存储空间 提高运行效率 SVN采用增量式更新 Git采用…

《2023直播电商数字化引领者》《2023最受欢迎直播电商消费品牌TOP100 》榜单征集正式启动!

过去几年&#xff0c;直播电商以低成本、高转化率等优势备受商家青睐&#xff0c;市场规模增长显著&#xff0c;仅用4年时间就完成了万亿增长。 直播电商市场规模数百倍爆发。数据显示&#xff0c;2022年我国直播电商市场规模为34879亿元&#xff0c;较2017年的196.4亿元增长…

分享10篇优秀论文,涉及图神经网络、大模型优化、表格分析

引言 第38届AAAI人工智能年度会议将于2024年2月在加拿大温哥华举行。今天给大家分享十篇AAAI2024论文&#xff0c;主要涉及图神经网络&#xff0c;大模型幻觉、中文书法文字生成、表格数据分析、KGs错误检测、多模态Prompt、思维图生成等。 论文获取方式&#xff0c;回复&am…

高效分割视频:批量剪辑,轻松提取m3u8视频技巧

在数字媒体时代&#xff0c;视频分割是一项常见的需求。无论是为了编辑、分享还是其他要求&#xff0c;经常要将长视频分割成多个短片。传统的视频分割方法往往需要手动操作&#xff0c;既耗时又容易出错。现在来看云炫AI智剪高效分割视频的方法&#xff0c;批量剪辑并轻松提取…

LRU的设计与实现(算法村第五关黄金挑战)

146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09; 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存…

【RF 计算公式】计算自由空间损耗

1、 电信链路的基本公式 自由空间传播可使用两种不同的方法计算&#xff0c;每种方法均适用于一种特定类型的业务。 1. 1 点到区链路 如果发射机服务于若干随机分布的接收机&#xff08;广播、移动业务&#xff09;&#xff0c;则电场强的计算应在与发射机有适当距离的位置进…

手机流量卡推广分销网站php源码,多功能的号卡推广分销管理系统

源码简介 拥有多个接口&#xff0c;包括运营商接口&#xff0c;并支持无限三级代理。 最简单易用的PHP系统&#xff0c;它自带自动安装向导&#xff0c;可以让你轻松安装和部署。 该系统集成了多个第三方接口资源&#xff0c;能够满足你的不同需求。采用全系统双色主题&…

jmeter自动录制脚本功能

问题排查&#xff1a; 建议用 google浏览器&#xff1b; 重启一下jmeter&#xff1b; 过滤规则重新检查下&#xff1b; 看下代理设置是否正常&#xff1b; 注意&#xff1a;下面的的过滤设置中 用的都是正则表达式的规则。

Scikit-Learn线性回归(五)

Scikit-Learn线性回归五&#xff1a;岭回归与Lasso回归 1、误差与模型复杂度2、正则化3、Scikit-Learn岭&#xff08;Ridge&#xff09;回归4、Scikit-Learn Lasso回归 1、误差与模型复杂度 在第二篇文章 Scikit-Learn线性回归(二) 中&#xff0c;我们已经给出了过拟合与模型泛…

【解决复杂链式任务,打造全能助手】LangChain 大模型 打造 钢铁侠的全能助理 Jarvis

LangChain 大模型 结合 做 AutoGPT、ChatPDF 思维链 CoTLangChain模型IO&#xff1a;和大模型交互、提示词模版数据连接&#xff1a;从数据的接入、分割&#xff0c;到向量的构建、存储、搜索链&#xff1a;串联和组织&#xff0c;多个语言模型、组件记忆&#xff1a;灵魂伴侣&…

Java Review - Spring BeanUtils 踩坑记

文章目录 概述Spring BeanUtils基本使用Code忽略了属性类型导致拷贝失败同一字段在不同的类中定义的类型不一致同一个字段分别使用包装类和基本类型且没有传递实际值布尔类型的属性分别使用了基本类型和包装类型且属性名使用is开头 null值覆盖导致数据异常内部类数据无法成功拷…