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

IO基础练习4

一、思维导图

二、练习

#include <head.h>
int main(int argc, const char *argv[])
{
	FILE *p=fopen("./1.png","r+");
	FILE *q=fopen("./2.png","w+");
	if(q==NULL||p==NULL)
		PRINT_ERROR("fopen");
	char arr[128]={0};
	//获得图片文件的大小,取一半
	fseek(p,0,SEEK_END);
	long size=ftell(p);
	long middle_size=size/2;
	printf("%ld\n",size);
	printf("%ld\n",middle_size);
	//创建父子进程
	pid_t fo=fork();
	int i=0;
	rewind(p);
	if (fo>0)
	{
		while(fread(arr,sizeof(char),1,p)>0)
		{
			if( fwrite(arr,sizeof(char),1,q)==0||i==middle_size)
				break;
			i++;
		}
		printf("%d\n",i);
	}
//	fseek(0,middle_size,SEEK_SET);
	//子进程(返回值为0)
	if (fo==0)
	{
		sleep(2);
		while(fread(arr,sizeof(char),1,p)>0)
		{
			if( fwrite(arr,sizeof(char),1,q)==0||i==size)
				break;
			i++;
		}
		printf("%d\n",i);

	}
	//失败返回值为-1
	if(fo<0)
		PRINT_ERROR("fork");
	fclose(p);
	fclose(q);
	return 0;
}

相关文章:

  • CogToolBlock和CogIDTool工具
  • ES时序数据库的性能优化
  • C++ Primer 拷贝、赋值与销毁
  • 如何改变怂怂懦弱的气质(2)
  • 记录一次利用条件索引优化接口性能的实践
  • golang并发编程如何学习
  • unsloth-llama3-8b.py 中文备注版
  • 汽车零部件厂如何选择最适合的安灯系统解决方案
  • ESLint 深度解析:原理、规则与插件开发实践
  • C# Unity 面向对象补全计划 之 索引器与迭代器
  • Spring AI 1.0.0-M6 快速开始(一)
  • MySQL批量生成建表语句
  • 解决CentOS 8.5被恶意扫描的问题
  • 美国国家航空航天局(NASA)的PUNCH任务
  • 第十章,防火墙带宽管理
  • Flink深入浅出之02
  • 软件系统属性
  • Java集合面试篇
  • 视觉-语言模型-出发点CLIP--(精读论文)
  • *图论基础(5)
  • 墨西哥海军帆船纽约撞桥事故已致2人死亡19人受伤
  • 中国旅马大熊猫“福娃”和“凤仪”启程回国
  • 上海市第二十届青少年科技节启动:为期半年,推出百余项活动
  • 中国纪检监察刊文:力戒形式主义官僚主义关键是要坚持实事求是
  • 外交部部长助理兼礼宾司司长洪磊接受美国新任驻华大使递交国书副本
  • 中国首艘海洋级智能科考船“同济”号试航成功,可搭载水下遥控机器人