FILE(1) General Commands Manual FILE(1) NAZWA file - okresla typ pliku SKLADNIA file [-bcdEhiklLNnprsSvzZ0] [--apple] [--exclude-quiet] [--extension] [--mime-encoding] [--mime-type] [-e nazwa-testu] [-F separator] [-f nazwa-pliku] [-m pliki-magiczne] [-P nazwa=wartosc] file ... file -C [-m pliki-magiczne] file [--help] OPIS Niniejsza strona podrecznika dokumentuje wersje 5.46 polecenia file. file sprawdza kazdy ze swoich argumentow, probujac go sklasyfikowac. Istnieja trzy zestawy testow, ktore sa wykonywane w nastepujacej kolejnosci: testy systemu plikow, testy liczb magicznych i testy jezyka. Pierwszy test zakonczony powodzeniem powoduje wypisanie typu pliku. Wypisany typ bedzie zwykle zawieral jedno ze slow text (plik zawiera tylko znaki drukowalne i kilka sposrod znakow sterujacych oraz prawdopodobnie mozna go bezpiecznie czytac na terminalu ASCII), executable (wykonywalny -- plik zawiera wyniki kompilacji w formacie zrozumialym dla jadra pewnego Uniksa lub innego systemu) lub data (dane) oznaczajace cokolwiek innego (zwykle jest to binarny, niedrukowalny plik). Wyjatkami sa ogolnie znane formaty plikow (pliki core, archiwa tar), o ktorych wiadomo, ze zawieraja dane binarne. Podczas modyfikacji plikow magicznych lub samego programu, prosze zachowac te slowa kluczowe. Wielu polega na tym, ze dla wszystkich czytelnych plikow wypisywane jest slowo ,,text". Nie nalezy wiec robic tego, co zrobiono w Berkeley - zmieniono tam ,,shell commands text" na ,,shell script". Testy systemu plikow sa oparte o sprawdzanie wartosci zwracanej przez funkcje systemowa stat(2). Program sprawdza, czy plik jest pusty oraz czy jest jakiegos rodzaju plikiem specjalnym. Powinno sie dac rozpoznac wszystkie rodzaje plikow wystepujace w danym systemie (gniazda, dowiazania symboliczne lub nazwane potoki (FIFO), w systemach ktore je zaimplementowaly), o ile te rodzaje plikow beda zdefiniowane w systemowym pliku naglowkowym Testy liczb magicznych sluza do sprawdzania plikow, ktore zawieraja dane w okreslonym formacie. Dobrym tego przykladem jest wykonywalny plik binarny (skompilowany program) a.out, ktorego format jest zdefiniowany w i prawdopodobnie w standardowym katalogu plikow naglowkowych. Pliki te zawieraja ,,liczby magiczne" w okreslonym miejscu, w poblizu poczatku pliku. Liczby te informuja uniksowy system operacyjny o tym, ze plik jest wykonywalnym plikiem binarnym oraz ktory z mozliwych typow reprezentuje. Koncepcja ,,liczb magicznych" zostala jako rozszerzenie zastosowana rowniez do plikow z danymi. Mozna tak opisac kazdy plik posiadajacy niezmienny identyfikator przy malym i okreslonym przesunieciu wzgledem poczatku pliku. Informacje identyfikujace te pliki sa odczytywane ze skompilowanego pliku liczb magicznych /usr/share/file/misc/magic.mgc lub z katalogu /usr/share/file/misc/magic, gdy skompilowany plik nie istnieje. Dodatkowo, pliki $HOME/.magic.mgc lub $HOME/.magic, jesli beda istnialy, zostana uzyte z pierwszenstwem w stosunku do systemowych plikow magicznych. Jesli plik nie pasuje do zadnego z wpisow w pliku liczb magicznych, dokonywane jest sprawdzenie czy jest to plik tekstowy. Rozpoznawane sa zestawy znakow: ASCII, ISO-8859-x, 8-bitowe rozszerzenia ASCII niezgodne z ISO (uzywane w systemach Macintosh i IBM PC), Unicode w kodowaniu UTF-8, Unicode w kodowaniu UTF-16 oraz EBCDIC. Sprawdzane sa zakresy i ciagi bajtow, ktore stanowia drukowalny tekst w kazdym z tych zestawow znakow. Jesli plik przejdzie ktorys z tych testow, zglaszany jest odpowiadajacy mu zestaw znakow. Pliki w ASCII, ISO-8859-x, UTF-8 oraz w rozszerzeniach ASCII sa identyfikowane jako ,,text", gdyz moga byc one na ogol czytane na dowolnym terminalu; pliki w UTF-16 i EBCDIC stanowia jedynie ,,character data" (dane znakowe), gdyz jesli zawieraja one tekst, tekst ten wymaga przed przeczytaniem konwersji. Dodatkowo, file bedzie probowal okreslic inne charakterystyki plikow tekstowych. Jesli wiersze sa zakonczone znakami CR, CRLF lub NEL, zamiast standardowego uniksowego LF, zostanie to zgloszone. Zostana rowniez zidentyfikowane pliki zawierajace wbudowane sekwencje unikowe lub wielokrotnego drukowania. Po okresleniu przez file zestawu znakow uzywanego w pliku tekstowym, sprobuje on odgadnac w jakim jezyku plik zostal napisany. Testy jezykowe skladaja sie z poszukiwan okreslonych lancuchow znakowych (por. , ktore moga pojawic sie gdziekolwiek w kilku pierwszych blokach pliku. Na przyklad slowo kluczowe .br wskazuje, ze plik jest najprawdopodobniej plikiem wejsciowym dla programu troff(1) podobnie, jak struct wskazuje na program w C. Testy te sa mniej godne zaufania niz poprzednie dwie grupy, wiec sa wykonywane na koncu. Testy jezykowe testuja rowniez niektore pliki zbiorcze (jak archiwa tar(1), pliki JSON). Plik, ktory nie moze zostac okreslony jako jako zapisany w jednym z powyzszych zestawow znakow, jest po prostu okreslany jako ,,data" (dane). OPCJE --apple Powoduje, ze polecenie file wypisuje typ pliku i kod tworcy zgodnie z zapisem uzywanym w starszych wersjach MacOS. Kod sklada sie z osmiu liter, pierwsza opisuje typ pliku, ostatnia tworce. Opcja ta dziala poprawnie jedynie dla formatow plikow ze wyjsciem zdefiniowanym w niniejszym zapisie. -b, --brief Nie podaje nazw plikow na poczatku wierszy wynikowych (tryb skrocony). -C, --compile Zapisuje plik wynikowy magic.mgc, ktory zawiera wstepnie przetworzona wersje pliku lub katalogu. -c, --checking-printout Powoduje sprawdzenie wydruku przetworzonej postaci pliku magicznego. Jest to zwykle uzywane w polaczeniu z opcja -m, aby odpluskwic nowy plik liczb magicznych przed jego zainstalowaniem. -d Wypisuje wewnetrzne informacje debugowania na standardowe wyjscie bledow. -E W przypadku bledow systemu plikow (np. nie znaleziono pliku) nie obsluguje bledu jako normalnego wyniku i nie kontynuuje dzialania, jak wymaga norma POSIX, lecz wyswietla blad i wychodzi. -e, --exclude nazwa-testu Wylacza test o nazwie nazwa-testu z listy testow, przeprowadzanych w celu okreslenia typu pliku. Poprawne nazwy testow to: apptype Typ aplikacji EMX (tylko na EMX). ascii Rozne typy plikow tekstowych (ten test stara sie odgadnac kodowanie tekstu, niezaleznie od opcji ,,encoding"). encoding Rozne kodowania tekstowe do testow magicznych soft. tokens Ignorowane w celu zachowania kompatybilnosci wstecznej. cdf Wypisuje szczegoly plikow Compound Document File. compress Wyszukuje i zaglebia sie w pliki skompresowane. csv Wyszukuje plikow z wartosciami rozdzielonymi przecinkiem (ang. Comma Separated Value - CSV) elf Wypisuje szczegoly pliku ELF, zakladajac ze wlaczone sa testy magiczne soft i odszukano magiczne elf. json Sprawdza pliki JSON (RFC-7159) pod katem poprawnosci. soft Sprawdza z plikami magicznymi. simh Sprawdza pliki tasm SIMH. tar Sprawdza pliki tar weryfikujac sume kontrolna 512-bajtowego naglowka archiwum. Wylaczenie tego testu moze dac bardziej szczegolowy opis zawartosci, przy uzyciu metody soft. text Synonim ,,ascii". --exclude-quiet Podobnie jak --exclude lecz ignoruje testy, ktorych nie zna file. Zapewnia to kompatybilnosc ze starszymi wersjami programu file. --extension Wyswietla liste prawidlowych rozszerzen dla znalezionego typu pliku, rozdzielonych ukosnikiem. -F, --separator separator Uzywa podanego lancucha jako separatora miedzy nazwa pliku a zwroconym wynikiem pliku. Domyslnie jest to ,,:". -f, --files-from nazwa-pliku Odczytuje nazwy testowanych plikow z nazwa-pliku (po jednym w wierszu) przed lista argumentow. Obecna musi byc albo nazwa-pliku albo przynajmniej jeden argument bedacy nazwa pliku; aby testowac standardowe wejscie, nalezy uzyc argumentu ,,-" jako nazwy pliku. Prosze zauwazyc, ze nazwa-pliku nie jest rozwijana, a nazwy plikow sa przetwarzane przy wystapieniu tej opcji przed wszystkimi innymi opcjami. Pozwala to na przetworzenie wielu list plikow z roznymi argumentami wiersza polecenia, w tym samym wywolaniu file. Z tego powodu, jesli chce sie ustawic ogranicznik, konieczne jest zrobienie tego przed podaniem listy plikow, np. ,, -F @ -f nazwa-pliku ", zamiast: ,, -f nazwa-pliku -F @ ". -h, --no-dereference Opcja powoduje, ze nie zachodzi podazanie za dowiazaniami symbolicznymi (w systemach, ktore obsluguja dowiazania symboliczne). Jest to domyslne zachowanie, jesli nie zdefiniowano zmiennej srodowiskowej POSIXLY_CORRECT. -i, --mime Powoduje, ze polecenie file wypisuje lancuchy typow mime, zamiast tradycyjnych nazw czytelnych dla uzytkownika. Stad, pojawic sie moze ,,text/plain; charset=us-ascii", zamiast ,,ASCII text". --mime-type, --mime-encoding Jak -i, lecz wypisuje jedynie okreslone element(y). -k, --keep-going Nie zatrzymuje sie po pierwszym dopasowaniu. Kolejne dopasowania beda poprzedzone lancuchem ,,\012- " (aby osiagnac znak nowego wiersza, prosze skorzystac z opcji -r). Wygrywa najsilniejszy wzor magiczny (patrz opcja -l). -l, --list Pokazuje liste wzorcow i ich sile posortowanych malejaca wedlug sily magic(5), ktora jest uzywana do dopasowania (zobacz tez opcje -k). -L, --dereference Opcja powoduje, ze program podaza za dowiazaniami symbolicznymi, tak jak w przypadku opcji ls(1) (w systemach obslugujacych dowiazania symboliczne) o identycznej nazwie. Jest to domyslne zachowanie, jesli zdefiniowano zmienna srodowiskowa POSIXLY_CORRECT. -m, --magic-file pliki-magiczne Podaje alternatywna liste plikow i katalogow zawierajacych magie. Moze byc to pojedynczy plik lub rozdzielona dwukropkami lista plikow. Jesli razem z plikiem lub katalogiem zostanie znaleziony skompilowany plik magiczny, zostanie uzyty zamiast pliku lub katalogu. -N, --no-pad Nie wyrownuje nazw plikow tak, aby wynik wygladal lepiej. -n, --no-buffer Wymusza oproznienie standardowego wyjscia po sprawdzeniu kazdego pliku. Jest to przydatne wylacznie przy sprawdzaniu listy plikow. Opcja jest przeznaczona do programow oczekujacych wyniku z typem plikow, pozyskanego z potoku. -p, --preserve-date W systemach obslugujacych utime(3) lub utimes(2), stara sie zachowac czas dostepu analizowanych plikow, aby udac, ze file nigdy ich nie odczytalo. -P, --parameter nazwa=wartosc Ustawia rozne limity parametrow. Nazwa Domyslnie Opis bytes 1M maks. liczba bajtow do odczytu z pliku elf_notes 256 maks. liczba przetw. wezlow ELF elf_phnum 2K maks. liczba przetw. sekcji programu ELF elf_shnum 32K maks. liczba przetw. sekcji ELF elf_shsize 128MB maks. liczba przetw. rozm. sekcji ELF encoding 65K maks. liczba bajtow do rozpozn. kodowania indir 50 limit rekurencji dla magii niebezposr. name 100 limit dla name/use magii regex 8K limit dlugosci dla przeszukiwan wyr. reg. -r, --raw Nie tlumaczy niedrukowalnych znakow na \ooo. Zwykle file tlumaczy znaki niedrukowalne na ich postac osemkowa. -s, --special-files Normalnie, file probuje czytac i okreslac rodzaj pliku jedynie dla tych argumentow, ktore sa plikami zgloszonymi przez stat(2) jako zwykle pliki. Pozwala to uniknac problemow, gdyz czytanie plikow specjalnych moze miec nieprzyjemne konsekwencje. Podanie opcji -s powoduje, ze file czyta rowniez argumenty bedace plikami specjalnymi urzadzen blokowych i znakowych. Jest to przydatne do okreslania rodzaju systemu plikow w przypadku danych na surowych partycjach dyskow, stanowiacych pliki specjalne urzadzen blokowych. Opcja ta powoduje rowniez, ze file nie zwaza na zglaszany przez stat(2) rozmiar pliku, gdyz w niektorych systemach funkcja ta zglasza zero dla surowych partycji dyskow. -S, --no-sandbox W systemach, w ktorych dostepna jest biblioteka libseccomp (https://github.com/seccomp/libseccomp), opcja -S wylacza piaskownice, ktora domyslnie jest wlaczona. Opcja ta jest wymagana, aby file wykonywal zewnetrzne programy dekompresujace tj. gdy poda sie opcje -z, a wbudowane dekompresory sa niedostepne. W systemach, w ktorych piaskownica jest niedostepna, opcja ta nie ma znaczenia. -v, --version Wyswietla informacje o wersji i konczy dzialanie. -z, --uncompress Probuje zagladac do plikow skompresowanych. -Z, --uncompress-noreport Probuje zagladac do plikow skompresowanych, ale informuje tylko o zawartosci, nie o kompresji. -0, --print0 Wypisuje znak null ,,\0" po koncu nazwy plikow. Przydatne do zastosowania cut(1) na wyniku. Opcja nie wplywa na separator, ktory jest w dalszym ciagu wypisywany. Jesli opcje te poda sie wiecej niz raz, file wypisze dla kazdego wpisu jedynie: nazwe pliku, nastepnie NUL, nastepnie opis (lub tekst ERROR:), nastepnie drugi NUL. --help Wyswietla komunikat pomocy i wychodzi. SRODOWISKO Zmienna srodowiskowa MAGIC moze byc wykorzystana do ustawienia domyslnej nazwy pliku magicznego. Jesli zmienna ta jest ustawiona, to file nie probuje otworzyc $HOME/.magic. file dodaje ,,.mgc" do wartosci tej zmiennej, jesli to konieczne. Zmienna srodowiskowa POSIXLY_CORRECT kontroluje (w systemach, ktore obsluguje dowiazania srodowiskowe), czy file bedzie probowal podazac za dowiazaniami symbolicznymi. Jesli jest ustawiona, to file podaza za nimi, w przeciwnym wypadku - nie. Za dowiazania odpowiadaja rowniez opcje -L i -h. PLIKI /usr/share/file/misc/magic.mgc Domyslna skompilowana lista liczb magicznych. /usr/share/file/misc/magic Katalog zawierajacy domyslne pliki magiczne. STATUS ZAKONCZENIA file wyjdzie z 0, jesli operacja byla pomyslna lub >0, gdy wystapil blad. Nastepujace bledy powoduja wyswietlenie komunikatow diagnostycznych, jednak nie zmieniaja kodu zakonczenia programu (jak wymaga tego POSIX), chyba ze podano -E: o Nie mozna odnalezc pliku o Brak uprawnien do odczytu pliku o Nie mozna rozpoznac typu pliku PRZYKLADY $ file file.c file /dev/{wd0a,hda} file.c: C program text file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped /dev/wd0a: block special (0/0) /dev/hda: block special (3/0) $ file -s /dev/wd0{b,d} /dev/wd0b: data /dev/wd0d: x86 boot sector $ file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10} /dev/hda: x86 boot sector /dev/hda1: Linux/i386 ext2 filesystem /dev/hda2: x86 boot sector /dev/hda3: x86 boot sector, extended partition table /dev/hda4: Linux/i386 ext2 filesystem /dev/hda5: Linux/i386 swap file /dev/hda6: Linux/i386 swap file /dev/hda7: Linux/i386 swap file /dev/hda8: Linux/i386 swap file /dev/hda9: empty /dev/hda10: empty $ file -i file.c file /dev/{wd0a,hda} file.c: text/x-c file: application/x-executable /dev/hda: application/x-not-regular-file /dev/wd0a: application/x-not-regular-file ZOBACZ TAKZE hexdump(1), od(1), strings(1), magic(5) ZGODNOSC ZE STANDARDAMI Program ten prawdopodobnie wykracza poza definicje FILE(CMD) z definicji interfejsu Systemu V (System V Interface Definition). Wydaje sie tak przynajmniej z tego, co mozna zrozumiec z tamtejszego niejasnego jezyka... Zachowanie programu jest w wiekszosci zgodne z zachowaniem programu z Systemu V o tej samej nazwie. Wersja niniejsza zna wiecej magii, wiec bedzie dawala w wielu wypadkach inne (dokladniejsze) wyniki. Jedna z istotnych roznic miedzy ta wersja i wersja z Systemu V, jest to, ze niniejsza wersja traktuje biale znaki jako separatory, wiec spacje w lancuchach wzorcow musza byc chronione. Na przyklad, >10 string language impress (imPRESS data) w istniejacym pliku magicznym bedzie musialo byc zamienione na >10 string language\ impress (imPRESS data) Dodatkowo, w tej wersji, jesli lancuch wzorca zawiera odwrotny ukosnik, to musi byc on chroniony. Na przyklad 0 string \begindata Andrew Toolkit document w istniejacym pliku magicznym bedzie musialo byc zamienione na 0 string \\begindata Andrew Toolkit document Wersja 3.2 SunOS i pozniejsze pochodzace z Sun Microsystems zawieraja polecenie file, wywodzace sie z polecenia z System V, lecz z pewnymi rozszerzeniami. Ta wersja rozni sie od Sun-owskiej tylko malymi szczegolami. Zawiera ona rozszerzenie operatora ,,&", uzywanego jako np. >16 long&0x7fffffff >0 not stripped BEZPIECZENSTWO W systemach, w ktorych dostepna jest biblioteka libseccomp (https://github.com/seccomp/libseccomp), file ogranicza wywolania systemowe tylko do scisle niezbednych do dzialania programu. Gdy file ma rozpakowac pliki wejsciowe za pomoca zewnetrznych programow, po podaniu opcji -z, to ograniczenie nie daje zadnych korzysci zwiazanych z bezpieczenstwem. Aby pozwolic na wykonywanie zewnetrznych dekompresorow, konieczne jest wylaczenie piaskownicy za pomoca opcji -S. KATALOG MAGICZNY Wpisy w pliku liczb magicznych pochodza z wielu zrodel, glownie z USENET- u i zgloszone przez roznych autorow. Christos Zoulas (adres ponizej) bedzie zbieral dodatkowe lub poprawione wpisy pliku liczb magicznych. Zebrane wpisy beda okresowo dystrybuowane. Kolejnosc wpisow w pliku magicznym jest istotna. Zaleznie od uzywanego systemu, kolejnosc, w ktorej sa ulozone, moze byc nieprawidlowa. Jest stare polecenie file korzystalo z pliku magicznego, nalezy go zachowac do celow porownawczych (prosze zmienic jego nazwe na /usr/share/file/misc/magic.orig). HISTORIA Polecenie file istnialo w kazdym systemie UNIX od przynajmniej wersji Research Version 4 (strona podrecznika man z listopada 1973). Wersja z Systemu V wprowadzila jedna istotna glowna zmiane: zewnetrzna liste typow liczb magicznych. Spowolnilo to troche program, lecz uczynilo go bardziej elastycznym. Program ten, oparty na wersji z Systemu V, zostal napisany przez Iana Darwina bez zagladania do innych zrodel. John Gilmore przerobil mocno ten kod, czyniac go lepszym niz pierwsza wersja. Geoff Collyer znalazl kilka nietrafnosci i dostarczyl troche wpisow w pliku liczb magicznych. Zmiana obslugi operatora ,,&" przez Roba McMahona, , w 1989. Guy Harris, guy@netapp.com, wykonal wiele zmian w okresie od 1993 do dzisiaj. Podstawowy rozwoj i konserwacje w okresie od 1990 do dzisiaj prowadzi Christos Zoulas ( ). Zmodyfikowany przez Chrisa Lowtha, , w 2000: Obsluga opcji -i powodujacej wyprowadzanie lancuchow typow MIME oraz korzystajacej z alternatywnego pliku liczb magicznych i wbudowanej logiki. Zmodyfikowany przez Erica Fischera ( ), w lipcu 2000, aby rozpoznawal kody znakow i probowal zidentyfikowac jezyk plikow nie-ASCII. Zmodyfikowany przez Reubena Thomasa , w latach 2007-2011, w celu poprawy obslugi MIME, polaczenia magii MIME i nie MIME, obslugi zarowno katalogow jak i plikow magicznych, zaaplikowania wielu poprawek bledow, zaktualizowania i poprawienia sporej czesci magii, poprawienia systemu budowania, dokumentacji i przepisania podpiec Pythona w czystym Pythonie. Lista osob, ktore wniosly wklad do katalogu ,,magic" (pliki magiczne) jest za dluga, aby ja tu przytaczac. Wiecie kim jestescie; dziekujemy. Wiele osob jest wspomnianych w plikach zrodlowych. NOTKA PRAWNA Copyright (c) Ian F. Darwin, Toronto, Canada, 1986-1999. Na standardowej licencji Berkeley Software Distribution, znajduje sie ona w pliku COPYING, w katalogu zrodel. Pliki tar.h i is_tar.c zostaly napisane przez Johna Gilmore'a, a pochodza z jego ogolnie dostepnego programu tar(1) i nie podlegaja powyzszej licencji. USTERKI Prosze zglaszac bledy i wysylac latki do systemu sledzenia bledow pod adresem http://bugs.astron.com/ lub na liste dyskusyjna (najpierw prosze sie zapisac na https://mailman.astron.com/mailman/listinfo/file). DO ZROBIENIA Naprawic wyjscie, dzieki czemu testy flag MIME i APPLE nie beda potrzebne wszedzie, a rzeczywiste wyjscie byloby tworzone tylko raz w jednym miejscu. Wymaga odpowiedniego projektu. Sugestia: wypychaj prawdopodobne wyniki na liste i uzyj ostatniej wartosci z listy (powinna byc najdokladniejsza) lub uzyj wartosci domyslnej, jesli lista jest pusta. Nie powinno to spowolnic obliczen. Obsluga MAGIC_CONTINUE i wypisywanie \012- pomiedzy pozycjami jest niezreczne i skomplikowane: dokonac refaktoryzacji i centralizacji. Czesc logiki kodowania jest zapisana na sztywno w encoding.c i moglaby byc przeniesiona do plikow magicznych, gdyby istniala notacja !:zestaw- znakow. Kontynuowac likwidacje wszystkich bledow. System BTS Debiana jest tu dobrym zrodlem. Przechowywac dowolnie dlugie lancuchy, np. dla %s wzorcow, dzieki czemu moglyby byc wypisywane. Naprawia blad Debiana #271672. Mozna to zrobic przydzielajac lancuchy do puli lancuchow, przechowujac pule lancuchow na koncu pliku magicznego i konwertujac wszystkie wskazniki lancuchow na wzgledne przesuniecia z puli lancuchow. Dodac skladnie do wzglednych przesuniec po biezacym poziomie (bug Debiana #466037). Sprawic, by dzialala opcja -ki, tzn. podawanie wielu typow MIME. Dodac biblioteke zip do zaglebienia sie w dokumenty Office2007, co umozliwiloby wypisanie wiekszej ilosci szczegolow na temat ich zawartosci. Dodac opcje do wypisywania URL-i zrodel opisow plikow. Polaczyc przeszukiwania skryptow i dodac metode na powiazanie nazw plikow wykonywalnych z typami MIME (wartosc magiczna do !:mime ktora spowodowalaby wyszukanie wynikowego lancucha w tabeli). Dzieki temu unikneloby sie dodawanie tych samych wartosci magicznych dla kazdego nowego interpretera hash-bang. Gdy dostepny jest deskryptor plikow, mozna by bylo pominac i dostosowac bufor, zamiast dokonywac prowizorycznego zarzadzania buforem, jak ma to miejsce obecnie. Naprawic ,,name" i ,,use" aby pilnowaly spojnosci w chwili kompilacji (zduplikowane ,,name", ,,use" wskazujace na niezdefiniowana ,,name"). ,,name" / ,,use" powinny byc efektywniejsze poprzez utrzymywanie posortowanej listy nazw. Wdrozyc i udokumentowac ^ jako specjalny przypadek do zmieniania kolejnosci bajtow w parserze, dzieki czemu nie wymagaloby to cytowania. Jesli przesuniecia okreslone wewnetrznie w pliku wykraczaja poza rozmiar bufora (zmienna HOWMANY w file.h), nie nalezy probowac tego przesuwania, lecz nalezy zaniechac operacji. Dzialaloby to lepiej, gdyby zarzadzanie buforem bylo dokonywane, gdy dostepny jest deskryptor pliku, dzieki czemu mozna by przemieszczac sie po pliku. Nalezy byc jednak ostroznym, poniewaz niesie to pewne konsekwencje dotyczace wydajnosci, a co za tym idzie bezpieczenstwa, poniewaz mozna spowolnic dzialanie dokonujac powtarzajacego sie przemieszczania. Obecnie istnieje obsluga utrzymywania oddzielnych buforow oraz przesuniec z konca pliku, lecz wewnetrzne zarzadzanie buforem wciaz wymaga przeprojektowania. DOSTEPNOSC Najnowsza oryginalna wersje programu tego autora mozna pobrac z anonimowego ftp z ftp.astron.com, z katalogu /pub/file/file-X.YZ.tar.gz. TLUMACZENIE Tlumaczenie niniejszej strony podrecznika: Przemek Borys , Andrzej Krzysztofowicz i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3: https://www.gnu.org/licenses/gpl-3.0.html lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net Linux 6.18.6-arch1-1 7 kwietnia 2024 r. Linux 6.18.6-arch1-1