Операции в C над двоичным файлом - PullRequest
0 голосов
/ 08 января 2012

Мне нужно выполнить операции над двоичным файлом, например, отредактировать количество байтов в начале файла или выполнить операции записи, перепрыгивая через «X кратный размер (int) областей». Я не заинтересован в реальных фрагментах кода, какие функции я должен использовать, и если это возможно. Это работа для fseek? Важно, чтобы я не загружал какие-либо данные из файла в мою память.

Ответы [ 2 ]

2 голосов
/ 08 января 2012

Да, это работа для fseek().

Запись в середине файла перезапишет существующие данные. Вам нужно переместить все последующие данные на сумму, которую вы собираетесь добавить.

1 голос
/ 08 января 2012

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

Проблема, однако: нет mmap() для Windows,И если вы хотите вставить данные, это не лучший выбор.

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