Agarra la fuente del comando de archivo. La mayoría, si no todas las unidades de código abierto usan esta . El filecomando viene con la magicbase de datos, llamada así por los números mágicos que describe. (Esta base de datos también está instalada en su sistema en vivo, pero en forma compilada). Busque el archivo que contiene el texto descriptivo que ve:
grep 'Berkeley DB' magic/Magdir/*
La magicpágina del manual describe el formato del archivo. Las líneas de activación para "Berkeley DB" son
0 long 0x00061561 Berkeley DB
0 belong 0x00061561 Berkeley DB
12 long 0x00061561 Berkeley DB
12 belong 0x00061561 Berkeley DB
12 lelong 0x00061561 Berkeley DB
12 long 0x00053162 Berkeley DB
12 belong 0x00053162 Berkeley DB
12 lelong 0x00053162 Berkeley DB
12 long 0x00042253 Berkeley DB
12 belong 0x00042253 Berkeley DB
12 lelong 0x00042253 Berkeley DB
12 long 0x00040988 Berkeley DB
12 belong 0x00040988 Berkeley DB
12 lelong 0x00040988 Berkeley DB
La primera columna especifica el desplazamiento en el que se encuentra una determinada secuencia de bytes. La tercera columna contiene la secuencia de bytes. La segunda columna describe el tipo de secuencia de bytes: longsignifica 4 bytes en el endianness de la plataforma ; lelongy belongsignifica 4 bytes en orden little-endian y big-endian respectivamente.
En lugar de replicar las reglas, puede llamar a la fileutilidad; POSIX lo especifica , pero los formatos que reconoce y las descripciones que genera no lo son. Alternativamente, puede vincular libmagicy llamar a la función magic_fileo magic_buffer.