Como faço para criar um arquivo binário?

Como faço para criar um arquivo binário?

Escrevi algo que acho que analisa bits de um arquivo, mas agora preciso testá-lo. Eu gostaria de criar um arquivo que eusabertem bits em uma determinada ordem. Algo como:

000010000000000000000000000100000

Então posso usar esse arquivo para testar pelo analisador de bits, para que eu possa dizer a ele para capturar os bits 0-4 (ordenados da esquerda para a direita) e esperar que ele retorne 00001e, em seguida, capturar os bits 26-31 e esperar que ele retorne100000

Como posso criar um arquivo como este no osx?

Responder1

Você pode usar o printfcomando para isso.

Para obter seu exemplo 0000 1000 0000 0000 0000 0000 0001 0000, faça:

$ printf "\x08\x00\x00\x10" > file1
$ hexdump file1
00000000  08 00 00 10                                   |....|
00000004

Observe que seu exemplo tem 33 bits, usei os primeiros 32 bits dele.

Se você quiser um pouco mais de variação, tente:

$ echo -n "aC3@hLp-" > file2
$ hexdump -C file2
00000000  61 43 33 40 68 4c 70 2d                           |aC3@hLp-|
00000008

Cada arquivo é um arquivo 'binário'. A única diferença entre, por exemplo, um arquivo de texto ASCII e um arquivo binário é que o intervalo de valores dos bytes em um arquivo de texto é limitado aos caracteres ASCII. O mesmo se aplica a qualquer outra codificação (por exemplo, Unicode UTF-8 ou UTF-16).

informação relacionada