Você pode usar dd
para gravar em um deslocamento igual à dimensão "A" em bytes.
Supondo "C" = 5 KB ("A" = 1 KB e "B" = 4KB);
Para zerar "B":
dd if=/dev/zero of=C iflag=fullblock oflag=seek_bytes seek=1000 bs=1000 count=4
Para substituir "B" por outro arquivo "new_B" (se "new_B" for maior que "B", "C" crescerá de tamanho igual à diferença de "new_B" e "B"):
dd if=new_B of=C oflag=seek_bytes seek=1000
Se os dados a serem gravados forem a saída de outro comando, outra opção será canalizar os dados diretamente para dd
:
[...] | dd of=C oflag=seek_bytes seek=1000