问题描述
我有一个二进制文件。
我想在二进制文件的开头添加二进制大小。
但我找不到路。
所以我决定创建一个新文件,其大小为二进制文件+原始二进制文件。
但是尝试失败:
void addSizeToHeader(char file_name[],off_t size)
{
// add size of file to beginning of the new file created
FILE *fp = fopen(file_name,"rb");
FILE *fp2 = fopen("{new file}","ab");
fseek(fp2,0L,SEEK_SET);
fprintf(fp2,"%ld",size);
// add origin file to new the file.
fseek(fp,SEEK_END);
long int size_file = ftell(fp);
fseek(fp,SEEK_SET);
char *buffer = (char *)malloc(sizeof(char)*size_file+1);
memset(buffer,size_file+1);
printf("%d\n",size_file);
fread(buffer,size_file,1,fp)
fprintf(fp2,"%s",buffer);
printf("%s\n",buffer);
fclose(fp);
fclose(fp2);
free(buffer);
}
该函数收到两个参数。一个是文件名,另一个是该文件的大小。
我想创建一个新文件,将两件事串联在一起。
请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)