Чтение фрагментов данных из файла (C) - PullRequest
0 голосов
/ 06 мая 2020

Мой двоичный файл содержит фрагменты данных в следующем формате:

0xAA ... переменная длина байтов ... 0XFF

Есть хороший способ читать эти фрагменты данных непосредственно в буфер вместо того, чтобы читать файл по одному байту за раз?

1 Ответ

0 голосов
/ 06 мая 2020

Вы можете использовать «fopen», чтобы открыть файл. «Rb» означает чтение двоичного файла,

 FILE* fileptr;
    unsigned char* buffer;
    fileptr = fopen("file_name", "rb");  // r for read, b for binary

        fseek(fileptr, 0, SEEK_END); // fseek will take fileptr to end of file (SEEK_END)

        filelen = ftell(fileptr); //here we get filelen
        printf("file len =%d\n", filelen);
        rewind(fileptr);

        buffer = (unsigned char*)malloc(filelen * sizeof(unsigned char));
        fread(buffer, filelen, 1, fileptr);
        fclose(fileptr);

наконец, вы получите все содержимое вашего двоичного файла в указателе буфера.

Don Не забываем освободить буфер после использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...