Перейти к определенной точке двоичного файла в C (используя fseek), а затем прочитать из этого места (используя fread)

Мне интересно, лучший ли это способ решения моей проблемы .

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

После использования google я пришел к выводу, что лучше всего использовать fseek() для перемещения к позиции смещения, а затем использовать fread() для чтения количества байтов из этой позиции.

Правильно ли я думаю об этом? И если да, то как лучше поступить? то есть как объединить их вместе.

Если я не прав, что бы вы посоветовали мне сделать вместо этого?

Заранее благодарим за помощь.

Мэтт

Изменить:

Я следовал руководству по fread() и изменил его следующим образом:

    `#include <stdio.h>
    int main()
    {
      FILE *f;
      char buffer[11];
      if (f = fopen("comm_array2.img", "rt"))
      {
        fread(buffer, 1, 10, f);
        buffer[10] = 0;
        fclose(f);
        printf("first 10 characters of the file:\n%s\n", buffer);
      }
      return 0;
    }`

Поэтому я использовал файл 'comm_array2.img' и прочитал первые 10 символов из файл.

Но насколько я понимаю, это идет от начала файла, я хочу перейти от некоторого места в файле (смещение)

Имеет ли это больше смысла?

Редактировать номер 2:

Похоже, что я был немного туп, и все, что нужно (кажется из моей попытки), это поместить fseek() перед fread(), который у меня есть в код выше, и он ищет это место, а затем читает оттуда.

7
задан user1291631 25 March 2012 в 19:17
поделиться