关于文件大小的疑惑
有一个题目,将记事本的.exe文件读取到内存,并返回读取后在内存中的地址,并且将内存中的数据存储到另一个文件中,(.exe格式),然后双击打开,看是否能够使用.本人写出来这个代码,将记事本读到内存中,然后再将内存的数据在读取到文件中
代码如下
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
int main(int argc, char* argv[])
{
unsigned int num=0;
void* pf;
FILE* p=fopen("C:\\Windows\\system32\\notepad.exe","rb");
if (p==NULL)
{
printf("error!\n");
}
printf("ok!\n");
fseek(p,0,SEEK_END);
num=ftell(p);
fseek(p,0,SEEK_SET);
pf=malloc(num);
if(pf==NULL)
{
printf("error!\n");
}
unsigned int n=fread(pf,num,1,p);
fclose(p);
printf("%x\n",pf);
FILE* p1=fopen("c:\\note.exe","wb");
if(p1==NULL)
{
printf("error!\n");
}
else
{
unsigned int ret=fwrite(pf,num,1,p1);
}
fclose(p1);
free(pf);
return 0;
}
问题是自己存盘后的大小和系统本身记事本的大小不一致,但是功能和其他都是一样的,大小不一样这是什么原因呢??求指教 1T硬盘为例
厂商计算方式
1T=1,000G=1,000,000MB=1,000,000,000KB=1,000,000,000,000Byte(字节)
电脑计算方式
1,000,000,000,000字节=976,562,500KB≈953,674.316MB≈931.323GB 他们的计算方式是不同的,硬盘也是同理
页:
[1]