numero magico
Aplicação em formato de arquivos[editar | editar código-fonte]
Números mágicos são usados em arquivos para que o formato de seu conteúdo possa ser reconhecido independente de formas externas. Cada sistema operacional tenta identificar o tipo dos arquivos de formas diferentes. O Windows utiliza extensões, enquanto os sistemas operacionais Mac OS usam meta-dados, que são gravados de forma independente.
Os sistemas baseados no UNIX, normalmente usam o próprio conteúdo do arquivo para determinar o tipo. Para isso foi convencionado que os dois primeiros bytes dos arquivos devem trazer um número mágico que identifica seu formato. Inicialmente o comando file era usado para determinar o tipo, porém em ambientes gráficos modernos estes números mágicos ainda são usados para determinar os tipos e conseqüentemente a forma mais adequada de representá-los graficamente.
Mesmo arquivos criados por programas em sistemas operacionais que usam outros métodos para determinar o tipo de arquivo possuem números especiais para que seja possível distinguí-los de outros tipos de arquivo apenas por seu conteúdo. Esses identificadores, apesar de não seguirem a convenção inicial dos sistemas UNIX, também podem ser considerados números mágicos. Alguns exemplos incluem:
Arquivos de código compilado para bytecode Java tem no início o número 0xCAFEBABE (hexadecimal) nos sistemas do tipo big endian.
Imagens do tipo GIF tem no seu início a string ASCII GIF89a ou GIF87a.
Imagens PNG iniciam com uma assinatura de 8 bytes