在C中读取大bin文件(〜2mb)

试错法

我想读取一个大小小于2mb的bin文件。

目前,我用于读取bin文件的代码如下所示:

编辑:

#define MAX_BYTES_IN_FILE 500000         // ~ 2mb
#define ERROR_FILE 1

int get_byte_from_file(FILE *stream, unsigned char *dataarray) {
    int counter = 0;
                               
    while ((dataarray[counter] = fgetc(stream)) != EOF) {
        counter += 1;
    }
    return counter;
}

Main对于该函数的示例用法如下所示。

int main(int argc, char **argv) {
    FILE *datei;
   
    unsigned int number_of_bytes;
    unsigned char *dataarray;

    dataarray = (unsigned char *)malloc(sizeof(unsigned char) * MAX_BYTES_IN_FILE);

    datei = fopen(argv[1], "rb");
   
    number_of_bytes = get_byte_from_file(datei, dataarray);
   
    for (int i = 0; i < number_of_bytes; i++)
        printf("%x ", dataarray[i]);
   
    return 0;
}

也许我犯了一个简单的错误,但是看不到错误仍然存​​在: Segmentation fault (core dumped)

P__J支持波兰的妇女

也许是这样的。

void *readfile(FILE *fi, long *filesize)
{
    void *buff;
    fseek(fi, 0, SEEK_END);
    *filesize = ftell(fi);
    fseek(fi, 0, SEEK_SET);
    buff = malloc(*filesize);
    if(buff)
    {
        fread(buff, 1, *filesize, fi);
    }
    return buff;
}

您需要添加错误检查-我不是,因为这仅仅是个主意。

和您的用法:

int main(int argc, char **argv) {
 
   FILE *datei;
   
   long number_of_bytes;
   unsigned char *dataarray;

   datei=fopen(argv[1],"rb");
   
   dataarray = readfile(datei, &number_of_bytes);
   
   for (int i=0;dataarray && i<number_of_bytes;i++)
       printf("%hhx ",dataarray[i]);
   
   return 0;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在LONGBLOB中存储大型(2MB)音频文件时,MySQL服务器消失了

来自分类Dev

照片上传不上传大于2MB的文件

来自分类Dev

在Redis Azure中存储更大(2MB)的对象

来自分类Dev

在C ++中读取“大”数据文件

来自分类Dev

AWS Lambda next.js-无法将2MB文件发布到api路由

来自分类Dev

如何在C中读取bin文件的结构数组

来自分类Dev

读取C中的bin文件无法正常工作

来自分类Dev

如何在C中读取bin文件的结构数组

来自分类Dev

在 C 中打开和读取“大”gzip 压缩文件

来自分类Dev

我遇到了“无法将文件写入磁盘”。文件大于等于2MB的ExpressionEngine中出现错误

来自分类Dev

读取250MB文件时C中的代码被杀死

来自分类Dev

通过使用大约2MB的内存来耗尽内存

来自分类Dev

pmyAdmin如何克服2Mb导入限制?

来自分类Dev

在R中读取大xslx文件

来自分类Dev

在R中读取大的csv文件

来自分类Dev

C ++从文件中读取

来自分类Dev

从C ++文件中读取

来自分类Dev

C ++从文件中读取

来自分类Dev

将 tflite 图从 8mb 压缩到 2mb

来自分类Dev

如何读取非常大的文本文件的最后MB

来自分类Dev

当 jwilder/nginx-proxy 时,Laravel POST TokenMismatchException 对于大于 8kb/16KB(和 2MB)的文件

来自分类Dev

读取.bin文件NodeJS

来自分类Dev

C# 错误:OutOfMemoryException - 读取大文本文件并从字典中替换

来自分类Dev

在C中通过stdin读取大列表

来自分类Dev

如何读取大输入-C中的8MB数据

来自分类Dev

使用TinyXML2在C ++中读取XML文件

来自分类Dev

读取大的xml文件

来自分类Dev

在Linux环境中的android eclipse中从Assests文件夹读取.mb文件的大小为1mb

来自分类Dev

在C中读取未读取完整文件

Related 相关文章

热门标签

归档