手机如何打开bin文件格式(教你手机bin合并完整视频方法)

 bin 文件的存取在调试网络推理定位问题的时候可能会经常用到,如在这个框架里网络输出和预期对不上,经常需要把这个网络里的前处理输出、网络推理输出搬到另外的框架里走一遍,来确定是前处理有问题,还是网络推理有问题,还是后处理有问题。这里分享一下 C 语言和 C++ 读取和保存特征数据为 bin 文件的方法。其实大部分情况可以用 C++ 搞定,但如 darknet 这种纯 C 框架可能就需要用 C 实现。

1、C 读取和保存 bin 文件

1.1 C 读取

/// C 读取bin文件
int getBinSize(char *path)
{
    int  size = 0;
    FILE  *fp = fopen(path, "rb");
    if (fp)
    {
        fseek(fp, 0, SEEK_END);
        size = ftell(fp);
        fclose(fp);
    }
    printf("\npath=%s,size=%d \n", path, size);
    return size;
}

void readBin(char *path, char *buf, int size)
{
    FILE *infile;

    if ((infile = fopen(path, "rb")) == NULL)
    {
        printf("\nCan not open the path: %s \n", path);
        exit(-1);
    }
    fread(buf, sizeof(char), size, infile);
    fclose(infile);
}

1.2 C 保存

/// C 保存bin文件
void writeBin(char *path, char *buf, int size)
{
    FILE *outfile;

    if ((outfile = fopen(path, "wb")) == NULL)
    {
        printf("\nCan not open the path: %s \n", path);
        exit(-1);
    }
    fwrite(buf, sizeof(char), size, outfile);
    fclose(outfile);
}

1.3 C 调用

// read binFile
char filePath[] = "./demo.bin";
int size = GetBinSize(filePath);
char *buf = (char*)malloc(size);
readBin(filePath, buf, size);
float *fbuf = (float*)buf;

// write binFile
char saveFilePath[] = "./demo_saved.bin"
writeBin(saveFilePath, buf, size)

free(buf)

2、C++ 读取和保存 bin 文件

2.1 C++ 读取

/// C++ 读取bin文件
void getBinSize(std::string path)
{
    int size = 0;
    std::ifstream infile(path, std::ifstream::binary);
    
    infile.seekg(0, infile.end);
    int size= infile.tellg();
    infile.seekg(0, infile.beg);
    
    infile.close();
    printf("\npath=%s,size=%d \n", path, size);
    return size;
}

void readBin(std::string path, char *buf, int size)
{
  std::ifstream infile(path, std::ifstream::binary);

  infile.read(static_cast<char *>(buf), size);
  infile.close();
}

2.2 C++ 保存

/// C++ 保存bin文件
void writeBin(std::string path, char *buf, int size)
{
  std::ofstream outfile(path, std::ifstream::binary);

  outfile.write((char *)(buf), size);

  outfile.close();
}

2.3 C++ 调用

// read binFile
std::string filePath= "./demo.bin";
int size = GetBinSize(filePath);
char *buf= new char[size];
readBin(filePath, buf, size);
float *fbuf = reinterpret_cast<float *>(buf);

// write binFile
std::string saveFilePath= "./demo_saved.bin";
writeBin(saveFilePath, buf, size);

delete buf;

  以上介绍了 C 语言和 C++ 读、存 bin 文件的方法,有需要的同学可以拿去使用。

本文内容来自网友供稿,文章观点仅代表作者本人,本站非盈利且无偿提供信息存储空间服务,不拥有所有权,如有文章有不实信息或侵犯了您的权益,请发送邮件至 cfseo1997@163.com 反馈核实,如需转载请注明出处:https://www.taobobolive.com/153997.html

(0)
上一篇 2023年8月6日 11:38:52
下一篇 2023年8月6日 11:38:58

相关推荐