Diferença entre arquivos de texto

Um arquivo de texto contém bytes que possuem valores entre 0 e 127 decimal. Um arquivo binário pode conter bytes com valores entre 0 e 255 decimal.

Se você despejar um arquivo de texto na tela usando o comando type (windows) ou cat (unix / linux / MacOS), sua tela tentará exibir o caractere ASCII correspondente ao valor de cada byte. Para valores entre 32 e 127, isso não causará problemas. Valores entre 0 e 31 são caracteres de controle. Sua tela pode ou não lidar com eles corretamente.

Quando você despeja um arquivo binário na tela, todas as apostas estão desativadas. Valores maiores que 127 podem corresponder aos caracteres de controle usados ​​pelo seu terminal e sua exibição pode acabar sendo permanentemente ilegível. (use stty sane para restaurá-lo à normalidade).

Em geral, os arquivos binários são usados ​​para armazenar itens como gráficos (jpeg, png, etc) e programas executáveis ​​compilados (arquivos .exe no Windows). O conteúdo bruto do arquivo não deve ser exibido na tela. Observe que às vezes pode haver ilhas de texto em arquivos binários. O comando unix strings mostrará qualquer teste em um arquivo binário.

Outra maneira de observar a diferença é que os arquivos de texto usam apenas 7 bits dos 8 bits em um byte. O bit 8 é sempre 0. Arquivos binários podem usar o 8º bit. O oitavo bit em um arquivo binário pode ser 0 ou 1.