wei 老师的 文件复制

本文介绍了一个使用C语言编写的简单文件拷贝程序。该程序通过命令行参数指定源文件和目标文件,并实现了文件的逐块读取与写入。程序首先检查参数的有效性,然后打开文件并获取源文件的大小,接着开始执行复制过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <string.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 1024 


int main(int argc,char **argv) 

FILE *from_fd;
FILE *to_fd; 
long file_len=0;
char buffer[BUFFER_SIZE]; 
char *ptr; 

/*判断入参*/
if(argc!=3) 

printf("Usage:%s fromfile tofile\n",argv[0]); 
exit(1); 



/* 打开源文件 */ 
if((from_fd=fopen(argv[1],"rb"))==NULL) 

printf("Open %s Error\n",argv[1]); 
exit(1); 



/* 创建目的文件 */ 
if((to_fd=fopen(argv[2],"wb"))==NULL) 

printf("Open %s Error\n",argv[2]); 
exit(1); 



/*测得文件大小*/
fseek(from_fd,0L,SEEK_END);
file_len=ftell(from_fd);
fseek(from_fd,0L,SEEK_SET);
printf("from file size is=%d\n",file_len);


/*进行文件拷贝*/
while(!feof(from_fd)) 

fread(buffer,BUFFER_SIZE,1,from_fd);
if(BUFFER_SIZE>=file_len)
{
fwrite(buffer,file_len,1,to_fd);
}
else 
{
fwrite(buffer,BUFFER_SIZE,1,to_fd);
file_len=file_len-BUFFER_SIZE;
}
memset(buffer, 0, BUFFER_SIZE);
// bzero(buffer,BUFFER_SIZE); //清零

fclose(from_fd); 
fclose(to_fd); 
exit(0); 
在Java程序打包发布为.exe文件的过程中,通常需要使用一些工具来将Java字节码转换为本地可执行文件。以下是一个常见的方法,使用的是Launch4j工具: ### 步骤一:准备Java程序 确保你的Java程序已经编译并且可以正常运行。你可以使用以下命令来编译你的Java程序: ```sh javac YourProgram.java ``` ### 步骤二:下载并安装Launch4j 1. 访问Launch4j的官方网站(http://launch4j.sourceforge.net/)并下载最新版本的Launch4j。 2. 解压下载的文件并运行`launch4j.exe`。 ### 步骤三:配置Launch4j 1. 打开Launch4j后,点击“New Configuration”按钮创建一个新的配置文件。 2. 在“Output file”选项中,选择你要生成的.exe文件的路径和名称。 3. 在“Bundled JRE path”选项中,选择你的Java运行环境(JRE)的路径。如果你希望你的程序包含JRE,可以将JRE文件放在一个目录下,并在该选项中选择该目录。 4. 在“Jar”选项中,选择你的Java程序的.jar文件路径。 5. 配置其他选项,如程序图标(Icon)、版本信息(Version info)等。 ### 步骤四:生成.exe文件 配置完成后,点击“Build Wrapper”按钮。Launch4j会生成一个.exe文件。 ### 步骤五:测试.exe文件 生成完成后,双击生成的.exe文件,确保你的Java程序可以正常运行。 ### 步骤六:发布 将生成的.exe文件和相关资源文件(如JRE文件夹)一起打包发布。 通过以上步骤,你可以将Java程序打包发布为.exe文件,使其在Windows系统上运行更加方便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值