Переписать несколько байт по центру файла
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 29.01.04 12:11
Оценка:
Сорри, если вопрос избитый... Что-то сегодня фаза Луны неблагоприятная Туплю...


В общем, задача проста, как три копейки: перезаписать по центр файла пару байт. Делаю так:


 FILE* fIn = fopen(filename,"a+b");

  if(!fIn)
      return;

    fseek(fIn,offset,SEEK_SET);
    fwrite(&is_active,1,1,fIn);
    fwrite(&is_blocked,1,1,fIn);

fclose(fIn);


Эта сволочь дописывает в конец, что, в общем-то, очевидно. Если открыть файл в режиме "wb", то файл усекается. Очень не хочется из-за пары байт перечитывать весь файл на новое место... Как добиться нужного поведения?

З.Ы. Желательно бы обойтись указанными функциями, т.к. данный код будет портироваться на PHP. Заранее благодарен всем. И еще раз извинения за тупой вопрос
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.