Я пытаюсь создать волшебный файл базы данных для инструмента UNIX «файл» для определенного формата файла. Я прочитал все руководство (man magic
и man file
), но не нашел способ вывода 24-битного целочисленного целого числа. Я только нашел 8 бит (байт), 16 бит (бештор), 32 бит (принадлежность) и 64 бит (bequad).magic file: печать 3-байтного значения большого эндиана?
Есть ли способ распечатать 24-битное (3-байтовое) целое число из числа файлов из файла с определенной «магической файловой командой»?
Просто рассчитайте три байта и поместите их в файл в соответствующем порядке в виде 1-байтовых целых чисел. – CiaPan
Что вы подразумеваете под словом «положить их в файл»? У меня нет собственной программы, но я пишу «волшебный» файл для инструмента unix «файл» (http://linux.die.net/man/5/magic). «file» использует волшебный файл для идентификации типов файлов. Я могу сказать инструмент «если файл начинается с ABCD, распечатывает строку« ABCD-файл », а затем печатает« длинное »значение, найденное со смещением 4.». Но я хочу печатать 24 бита, и я не могу «рассчитать», как «Multiply 0x01 с 65536 и 0x02 с 256 и добавить эти три значения». –
Я потерян. Вы пытаетесь * прочитать * 3-байтовое целое из файла или * записать * его в файл? Ваш вопрос и ваш комментарий, кажется, указывают на противоположные действия для меня (но это возможно из-за моего слабого английского). Что такое «инструмент», который вы используете? Нужно ли «печатать» значение как двоично-кодированное или как считываемое человеком ASCII-строку? .... – CiaPan