从一个文件中读取数据到内存,然后再把内存中的数据写入另外一个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从一个文件中读取数据到内存,然后再把内存中的数据写入另外一个文件相关的知识,希望对你有一定的参考价值。

//从一个文件中读取数据到内存,然后再把内存中的数据写入另外一个文件

#include "stdafx.h"
#include "stdlib.h"

int main(int argc, char* argv[])
{

FILE* fp;
FILE* fp2;
fp = fopen("C:/notepad.exe","rb");
fp2 = fopen("C:/aa.exe","wb");
fseek(fp,0,SEEK_END);
int size = ftell(fp);
fseek(fp,0,SEEK_SET);
unsigned char* buffer = (unsigned char*)malloc(size);
fread(buffer,size,1,fp);

fwrite(buffer, size, 1, fp2);
free(buffer);
fclose(fp);
fclose(fp2);
return 0;

}

//fopen 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。
//fseek int fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置
//ftell 函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数。
//fclose 使用fclose()函数就可以把缓冲区内最后剩余的数据输出到内核缓冲区,并释放文件指针和有关的缓冲区。

以上是关于从一个文件中读取数据到内存,然后再把内存中的数据写入另外一个文件的主要内容,如果未能解决你的问题,请参考以下文章

IO流之File类

在C语言中如果已经知道了一个数据的内存地址,怎样直接从内存中读取出该数据?

82.管道实现cgi内存多线程查询

流概述与字节流输入输出

java怎么将生成的文件放入内存?

玩转 ByteBuffer