C++ 读取一个文件复制到另一个文件

int main(int argc, char* argv[])		
{
	
	// 定义一个文件指针
	FILE *fp1;
	FILE *fp2 = NULL;
	int len;
	char* ptr;

	// 打开文件(读)
	fp1 = fopen("C:\\project\\ipmsg.exe","rb");
	fp2 = fopen("C:\\project\\ipmsg2.exe","wb");
	if (fp1 == NULL)
    {
        perror("打开文件错误");
        return(-1);
    }
	//获取大小
    fseek(fp1, 0, SEEK_END);
    len = ftell(fp1);
    printf("ipmsg.exe 的总大小 = %d 字节\n", len);
	//申请内存
	ptr = (char *)malloc(len);	
	if(ptr == NULL)								
	{										
		return 0;								
	}										
	//初始化分配的内存空间										
	memset(ptr,0,len);	
	 fseek(fp1, 0, SEEK_SET);
	if(ptr != NULL)
	{
		//读取数据到file1 ptr
		fread(ptr,len,1,fp1);
		//写入数据到新的文件
		fwrite(ptr,len,1,fp2); 
	}
	// 返回内存编号
	int addr = (int)ptr;
	printf("%x",ptr);
								
	
	//使用完毕 释放申请的堆空间										
	free(ptr);										
	
	//将指针设置为NULL										
	ptr = NULL;		
	fclose(fp1);




	return 0;	
}		

发表评论 / Comment

用心评论~