day4 2/21

这篇具有很好参考价值的文章主要介绍了day4 2/21。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 1>使用多线程完成两个文件的拷贝,第一个线程拷贝前一半,第二个线程拷贝后一半,主线程回收两个线程的资源

#include<myhead.h>	
typedef struct Inof
{
	const char*srcfile;
	const char*destfile;
	int start;
	int len;
}inof;


int do_len(const char*srcfile)
{
	FILE*fa=NULL;
	if((fa=fopen(srcfile,"r"))==NULL)
	{
		perror("fa fopen error");
		return -1;
	}
	fseek(fa,0,SEEK_END);
	int len=ftell(fa);
	fseek(fa,0,SEEK_SET);
	fclose(fa);
	return len;
}
int do_copy(const  char*srcfile,const char* destfile,int start,int len)
{
	FILE*fa=NULL;
	FILE*fb=NULL;
	if((fa=fopen(srcfile,"r"))==NULL)
	{
		perror("fa fopen error");
		return -1;
	}
	if((fb=fopen(destfile,"w"))==NULL)
	{
		perror("fb fopen error");
		return -1;
	}
	char buf;
	int num=0;
	fseek(fa,start,SEEK_SET);
	fseek(fb,start,SEEK_SET);
	while(1)
	{
		int rew=fread(&buf,1,sizeof(buf),fa);
		num+=rew;
		if( rew==0)
		{
			//fwrite(&buf,1,rew-(num-len),fb);
			break;
		}
		fwrite(&buf,1,rew,fb);
	}
	fclose(fa);
	fclose(fb);
	return 0;
}
void* task1(void*arg)
{
	inof buf=*((inof*)arg);
	do_copy(buf.srcfile,buf.destfile,buf.start,buf.len);
	

}
void* task2(void*arg)
{
	inof buf=*((inof*)arg);
	do_copy(buf.srcfile,buf.destfile,buf.start,buf.len);

}

int main(int argc, const char *argv[])
{
	if(argc!=3)
	{
		puts("enter file error");
		return -1;
	}
	//源文件的文件大小
	int len=do_len(argv[1]);
	printf("len=%d\n",len);
	inof sql1={argv[1],argv[2],0,len/2};
	//线程1
	pthread_t tid1=-1;
	if(pthread_create(&tid1,NULL,task1,&sql1)!=0)
	{
		puts("tid1 pthread_create error");
		return -1;
	}
	//线程2
	pthread_t tid2=-1;
	inof sql2={argv[1],argv[2],len-(len/2),len};
	if(pthread_create(&tid2,NULL,task2,&sql2)!=0)
	{
		puts("tid2 pthread_create error");
		return -1;
	}

	pthread_join(tid1,NULL);
	pthread_join(tid2,NULL);
	return 0;
}

2>思维导图

day4 2/21,java,linux,服务器文章来源地址https://www.toymoban.com/news/detail-834344.html

到了这里,关于day4 2/21的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ioGame21发布,史诗级增强,Java Netty 轻量级网络游戏服务器框架

    标题:ioGame21 发布:史诗级增强,Java Netty 轻量级网络游戏服务器框架 引言 近日,一款名为 ioGame21 的轻量级网络游戏服务器框架在 GitHub 上正式发布。这款框架基于 Java Netty 构建,具有高性能、高可扩展性和易于使用的特点。ioGame21 的发布将为游戏开发者提供一个强大的工

    2024年02月19日
    浏览(50)
  • C++linux高并发服务器项目实践 day5

    程序 是包含一系列信息的文件,这些信息描述了如何在运行时创建一个进程: 程序是文件,只占用硬盘的大小;进程会占用cpu和内存资源 进程 是正在运行的程序的实例。是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。他是操作系统动态执行的基本单元,

    2023年04月17日
    浏览(39)
  • C++linux高并发服务器项目实践 day2

    库的定义和特点详情请看隔壁c++阶段学习的day10查看 Linux: libxxx.a lib:固定前缀 xxx:库的名字,自定义 .a:固定后缀 windows:libxxx.lib gcc获得.o文件 将.o文件打包,使用ar工具(archive) ar rcs libxxx.a xxx.o xxx.o r- 将文件插入备存文件中 c-建立备存文件 s-索引 sudo apt install tree 安装tree插件,用

    2023年04月20日
    浏览(37)
  • linux 15day apache apache服务安装 httpd服务器 安装虚拟主机系统 一个主机 多个域名如何绑定

    1.apache目录介绍 1.准备测试页面 2.访问控制测试 可以直接编辑apache主配置文件 修改默认网站发布目录 配置域名解析: 测试访问 基于端口 访问:www.soso666.com 访问: test.soso666.com:81 可以配置域名解析,也可以不用配域名解析

    2024年02月04日
    浏览(49)
  • linux 17day 堡垒机 堡垒机下载 堡垒机安装 堡垒机使用 堡垒机管理服务器 堡垒机管理数据库

    https://jumpserver.org/ 没有注册的需要注册一个账号 即可下载 配置站点url 配置邮箱 创建要管理的服务器 现在还不能 管理 因为还没有配置用户名和密码 创建 特权用户用于管理 创建普通用户 添加命令过滤 命令过滤创建好 之后就需要 给用户名 和管理添加 管理用户也是一样的

    2024年02月20日
    浏览(43)
  • Java中将本服务器的文件拷贝到另一个服务器(Linux to Linux)

    在Java中,将文件从一个服务器复制到另一个服务器,你可以使用Secure Copy(SCP)进行操作。Java中的 JSch 库可以进行此操作。 首先,需要添加 JSch 库依赖到你的项目中。如果你使用的是Maven,可以添加以下依赖: 以下是一个使用 JSch 进行SCP操作的示例: 这段代码首先创建了一

    2024年02月13日
    浏览(60)
  • 21.12 Python 实现网站服务器

    Web服务器本质上是一个提供Web服务的应用程序,运行在服务器上,用于处理HTTP请求和响应。它接收来自客户端(通常是浏览器)的HTTP请求,根据请求的URL、参数等信息生成HTTP响应,并将响应返回给客户端,完成客户端的请求。Web服务器可以使用多种编程语言和技术实现,通

    2024年02月06日
    浏览(33)
  • day-08 基于Linux的网络编程(套接字和标准I/O、分离I/O流、epoll、多线程服务器)

    标准I/O函数(stdio)是在C语言中用于进行输入和输出操作的库函数 。它们包括了一组标准的输入和输出函数,如printf、scanf、fopen、fclose等。标准I/O函数具有以下优点: 简单易用 :标准I/O函数提供了简洁的接口,使得输入和输出操作变得简单易用。开发人员无需自行处理底层

    2024年02月09日
    浏览(59)
  • Java中将本服务器的文件拷贝到另一个服务器(Windows to Linux)

    在Java中,将文件从Windows服务器复制到Linux服务器,常用的方式是使用SSH进行安全的文件传输。Java有一个名为 JSch 的库,可以用于SSH连接和操作。 首先,你需要将 JSch 添加到你的项目依赖中。如果你使用的是Maven,你可以添加以下依赖: 然后,你可以使用以下代码将文件从

    2024年02月11日
    浏览(46)
  • java根据服务器(linux)端ip+文件路径将服务器端文件下载到本地

    jsch:Maven Repository: com.jcraft » jsch » 0.1.55 (mvnrepository.com)​​​​​  

    2024年02月11日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包