Re: lug-bg: file types
- Subject: Re: lug-bg: file types
- From: Peter Pentchev <roam@xxxxxxxxxxx>
- Date: Thu, 7 Apr 2005 15:33:14 +0300
On Thu, Apr 07, 2005 at 03:08:49PM +0300, Aleksandar Valchev wrote:
> Здравейте,
> преди известно време ми трябваше да проверя програмно дали даден файл е elf
> executable. Тук ми дадоха едно решение, което върши работа, но сега ми трябва
> да определя програмно и други видове файлове като mp3, bash script и т.н.
> Специално за bash и perl скриптове може да се напише функция, но за
> останалите...
> Прегледах libmagic(1) библиотеката и file(1), но при нея единствено функцията
> magic_file() ми върши работа, но тя връща като резултат стринг (textual
> description of the contents of the filename argument...).
>
> Знаете ли някоя библиотека за тази цел или поне как мога да използвам по
> ефективно libmagic библиотеката.
Най-доброто решение наистина е libmagic. Christos Zoulas се грижи за
това да поддържа базата данни magic така, че връщаното описание да има
някакви предвидими характеристики - примерно това, че в описанието на
всеки файл има точно една от думите 'text', 'executable' или 'data', или
че още от първите една-две думи можеш да разбереш дали това е файл от
тип, който ти трябва, особено при положение, че породата на файла я пише
преди първата запетайка, а оттам нататък са доуточнения за формата.
Това май е най-доброто - пускаш го през libmagic и после сравняваш
началото на низа с няколко предварително дефинирани, за които знаеш, че
описват форматите, които ти трябват.
Поздрави,
Петър
--
Peter Pentchev roam@xxxxxxxxxxx roam@xxxxxxxx roam@xxxxxxxxxxx
PGP key: http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553
This sentence contradicts itself - or rather - well, no, actually it doesn't!
Attachment:
pgphUinsYQg1_.pgp
Description: PGP signature
|