如何向二进制文件的开头添加字符串

问题描述

我有一个二进制文件。

我想在二进制文件的开头添加二进制大小。

但我找不到路。

所以我决定创建一个新文件,其大小为二进制文件+原始二进制文件。

但是尝试失败:

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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...