day3 2/20

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

#include<myhead.h>
int main(int argc, const char *argv[])
{
	int fd1=-1,fd2=-1;
	if((fd1=open("./ggb.bmp",O_RDONLY,0664))==-1)
	{
		perror("open error");
		return -1;
	}

	if((fd2=open("./ggb1.bmp",O_WRONLY|O_CREAT|O_TRUNC,0664))==-1)
	{
		perror("open error");
		return -1;
	}
	int maxsize=lseek(fd1,0,SEEK_END);//fd1的光标最大值
	char buf[5];
	pid_t pid=-1;
	pid=fork();
	if(pid>0)
	{
		int loca=0;
		lseek(fd1,loca,SEEK_SET);
		lseek(fd2,loca,SEEK_SET);

		while(loca<(maxsize/2))
		{
			int rew=read(fd1,buf,sizeof(buf));
			if(rew<=0)
				break;

			write(fd2,buf,rew);
			loca=lseek(fd1,0,SEEK_CUR);
		}

	}
	else if(pid==0)
	{
		lseek(fd1,0,SEEK_SET);
		lseek(fd2,0,SEEK_SET);
		int loca=maxsize/2;
		while(loca<maxsize)
		{
			int rew=read(fd1,buf,sizeof(buf));
			if(rew<0)
				break;

			write(fd2,buf,rew);
			loca=lseek(fd1,0,SEEK_CUR);

		}
		exit(EXIT_SUCCESS);
	}
	else if(pid<0)
	{
		perror("fork error");
		return -1;
	}
	int loca=maxsize/2;
	lseek(fd1,loca,SEEK_SET);

	while(loca<maxsize)
	{
		int rew=read(fd1,buf,sizeof(buf));
		if(rew<=0)
			break;
		write(fd2,buf,rew);
		loca=lseek(fd1,0,SEEK_CUR);
	}

	wait(NULL);

	close(fd1);
	close(fd2);
	return 0;
}

 

2>思维导图

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-21 01:04:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-21 01:04:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-21 01:04:01       87 阅读
  4. Python语言-面向对象

    2024-02-21 01:04:01       96 阅读

热门阅读

  1. git----->git pull和git fetch区别

    2024-02-21 01:04:01       46 阅读
  2. vue3+ts实现表格的增删改查(一)

    2024-02-21 01:04:01       50 阅读
  3. 我的创作纪念日

    2024-02-21 01:04:01       54 阅读
  4. 前端开发框架推荐总结二

    2024-02-21 01:04:01       42 阅读
  5. Nginx是什么?怎么用?

    2024-02-21 01:04:01       59 阅读
  6. rust-learn

    2024-02-21 01:04:01       52 阅读
  7. 数据结构——时间复杂度

    2024-02-21 01:04:01       51 阅读
  8. 【前端】Vue中引入excel模板并下载以及XLSX使用

    2024-02-21 01:04:01       49 阅读
  9. KeepAlived搭建高可用的HAproxy负载均衡集群系统

    2024-02-21 01:04:01       56 阅读
  10. 有一台阿里云轻量应用服务器可以用来做什么?

    2024-02-21 01:04:01       70 阅读
  11. linux部署File Browser文件管理系统

    2024-02-21 01:04:01       44 阅读