Как читать в двоичном файле и хранить данные по указателю в C - PullRequest
0 голосов
/ 23 сентября 2018

Итак, я работаю над проектом, и мне не удается собрать все части вместе, чтобы сделать эту работу.Нам нужно прочитать в заголовке двоичного файла и сохранить их по указанному указателю.

функция, в которой я работаю:

int read_header (FILE *file, elf_hdr_t *hdr);

Я понимаю, как передать информацию вфункция, но я не понимаю, как читать в указанный указатель.Я пытался найти информацию об этом весь день, но не могу понять, с чего начать ... Спасибо за любое направление, которое вы можете предоставить.

Мой код:

int read_header (FILE *file, elf_hdr_t *hdr)    
{
    int read;
    read = fread(hdr, 1, sizeof(hdr), file);
    fclose(file);
}

Я хочу знать, делаю ли я то, что пытаюсь здесь, в основном хочу читать по одному байту за раз по указанному указателю.

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Поскольку hdr является указателем, sizeof(hdr) будет просто размером указателя.Вы хотите, чтобы sizeof(*hdr) или sizeof(elf_hdr_t) получили размер структуры заголовка эльфа, на которую указывает указатель ...

0 голосов
/ 23 сентября 2018

пожалуйста, перечитайте страницу MAN для fread()

Эти два параметра: 1, sizeof(hdr), говорят, что нужно читать в sizeof(hdr) байтах, а не читать в 1 байте

...