Özet
file [-bcdDhiIkLnNprsvz] [--exclude-quiet] [--extension] [--mime-encoding] [--mime-type] [-f namefile] [-m magicfiles] [-P name=value] [-M magicfiles] file
file -C [-m magicfiles]
file [--help]
Açıklama
Bu kılavuz sayfası, file komutunun 5.41 sürümünü belgelemektedir.
file, her bir bağımsız değişkeni (argument) sınıflandırmak amacıyla test eder. Bu sırayla gerçekleştirilen üç test seti vardır: dosya sistemi testleri, sihirli (magic) testler ve dil testleri. Başarılı olan ilk test, dosya türünün yazdırılmasını sağlar.
Yazdırılan tür genellikle şu kelimelerden birini içerecektir: text (dosya yalnızca yazdırılabilir karakterler ile birkaç yaygın kontrol karakteri içerir ve muhtemelen bir ASCII terminalinde güvenle okunabilir), executable (dosya, bir programın derlenmesi sonucu elde edilmiş ve herhangi bir UNIX çekirdeği tarafından anlaşılabilecek biçimdedir) veya diğer her şey anlamına gelen data (veri genellikle "ikili" [binary] veya yazdırılamayan karakterlerden oluşur). İstisnalar, ikili (binary) veri içerdiği bilinen, iyi bilinen dosya biçimleridir (core dosyaları, tar arşivleri). Magic dosyalarını veya programın kendisini değiştirirken bu anahtar kelimeleri koruduğunuzdan emin olun. Kullanıcılar, bir dizindeki tüm okunabilir dosyaların çıktısında “text” kelimesinin yazmasına güvenirler.
Dosya sistemi testleri, bir stat(2) sistem çağrısından (system call) dönen değerin incelenmesine dayanır. Program, dosyanın boş olup olmadığını veya bir tür özel dosya olup olmadığını kontrol eder. Çalıştığınız sisteme uygun bilinen dosya türleri (bunları uygulayan sistemlerdeki soketler, sembolik bağlar veya adlandırılmış borular [named pipes - FIFO'lar]), sistem başlık dosyası <sys/stat.h> içinde tanımlanmışlarsa sezgisel olarak tespit edilir.
Sihirli (magic) testler, belirli sabit biçimlerde veriye sahip dosyaları kontrol etmek için kullanılır. Bunun kurala uygun (canonical) örneği, biçimi standart include dizinindeki <elf.h>, <a.out.h> ve muhtemelen <exec.h> dosyalarında tanımlanmış olan ikili yürütülebilir (derlenmiş program) a.out dosyasıdır. Bu dosyaların, dosya başlangıcına yakın belirli bir yerinde saklanan ve UNIX işletim sistemine dosyanın bir ikili yürütülebilir dosya olduğunu ve bunun hangi türden olduğunu belirten bir "sihirli sayı" (magic number) bulunur. "Sihirli sayı" kavramı, kapsamı genişletilerek veri dosyalarına da uygulanmıştır. Dosya içinde küçük, sabit bir kayma miktarında (offset) değişmeyen bir tanımlayıcıya sahip herhangi bir dosya genellikle bu şekilde tanımlanabilir. Bu dosyaları tanımlayan bilgiler, derlenmiş magic dosyası /usr/share/file/magic.mgc'den veya derlenmiş dosya mevcut değilse /usr/share/file/magic dizinindeki dosyalardan okunur.
Eğer bir dosya magic dosyasındaki girdilerden hiçbiriyle eşleşmezse, bir metin dosyası gibi görünüp görünmediğini anlamak için incelenir. ASCII, ISO-8859-x, ISO dışı 8 bitlik genişletilmiş ASCII karakter kümeleri (Macintosh ve IBM PC sistemlerinde kullanılanlar gibi), UTF-8-kodlu Unicode, UTF-16-kodlu Unicode ve EBCDIC karakter kümeleri, her bir kümede yazdırılabilir metni oluşturan baytların farklı aralıkları ve dizilimleri ile ayırt edilebilir. Eğer bir dosya bu testlerden herhangi birini geçerse, karakter kümesi rapor edilir. ASCII, ISO-8859-x, UTF-8 ve genişletilmiş ASCII dosyaları, neredeyse her terminalde çoğunlukla okunabilir olacakları için text (metin) olarak tanımlanır; UTF-16 ve EBCDIC ise yalnızca character data (karakter verisi) olarak kabul edilir, çünkü metin içermelerine rağmen bu metin okunmadan önce çeviri gerektirecektir. Buna ek olarak file, metin türündeki dosyaların diğer özelliklerini belirlemeye çalışacaktır. Bir dosyanın satırları Unix standardı olan LF yerine CR, CRLF veya NEL ile sonlandırılıyorsa, bu durum rapor edilecektir. Gömülü kaçış dizileri (escape sequences) veya üst üste bindirme (overstriking) içeren dosyalar da tanımlanacaktır.
file, bir metin türü dosyada kullanılan karakter kümesini belirledikten sonra, dosyanın hangi dilde yazıldığını belirlemeye çalışacaktır. Dil testleri, bir dosyanın ilk birkaç bloğunun herhangi bir yerinde görünebilecek belirli dizeleri arar. Örneğin, struct anahtar kelimesi bir C programını gösterirken, .br anahtar kelimesi dosyanın büyük olasılıkla bir troff(1) girdi dosyası olduğunu gösterir. Bu testler önceki iki gruba göre daha az güvenilirdir, bu nedenle en son gerçekleştirilir. Dil testi rutinleri ayrıca bazı karmaşık durumları da (tar(1) arşivleri, JSON dosyaları gibi) test eder.
Yukarıda listelenen karakter kümelerinden herhangi birinde yazıldığı tespit edilemeyen herhangi bir dosya kısaca data (veri) olarak adlandırılır.
Seçenekler
-b/--brief: Çıktı satırlarının başına dosya adlarını eklemez (kısa mod).-C/--compile: Magic dosyasının veya dizininin önceden ayrıştırılmış (pre-parsed) bir sürümünü içeren birmagic.mgcçıktı dosyası yazar.-c/--checking-printout: Magic dosyasının ayrıştırılmış biçiminin bir kontrol çıktısının verilmesini sağlar. Bu genellikle yeni bir magic dosyasını sisteme yüklemeden önce hata ayıklamak amacıyla-mseçeneği ile birlikte kullanılır.-d: Varsayılan sistem testlerini uygular;-Mbelirtilmediği sürece bu varsayılan davranıştır.-D: Hata ayıklama (debugging) mesajlarını yazdırır.-E: Dosya sistemi hatalarında (dosya bulunamadı vb.), POSIX'in emrettiği şekilde hatayı normal çıktı olarak ele alıp devam etmek yerine, bir hata mesajı verip çıkar.-e testname/--exclude testname: Dosya türünü belirlemek için yapılan testler listesindentestnameiçinde adı belirtilen testi hariç tutar. Geçerli test adları şunlardır:apptype:EMXuygulama türü (yalnızcaEMXüzerinde).ascii: Çeşitli metin dosyası türleri (bu test,encodingseçeneğinin ayarından bağımsız olarak metin kodlamasını tahmin etmeye çalışacaktır).encoding: Yumuşak (soft) magic testleri için farklı metin kodlamaları.tokens: Geriye dönük uyumluluk için yok sayılır.cdf: Bileşik Belge Dosyalarının (Compound Document Files) ayrıntılarını yazdırır.compress: Sıkıştırılmış dosyaları kontrol eder ve içlerine bakar.csv: Virgülle Ayrılmış Değer (Comma Separated Value -CSV) dosyalarını kontrol eder.elf: Yumuşak (soft) magic testleri etkinleştirilmişse veelfmagic bulunursaELFdosyası ayrıntılarını yazdırır.json:JSON(RFC-7159) dosyalarını uygunluk açısından ayrıştırarak inceler.soft: Magic dosyalarına başvurur.tar:tardosyalarını inceler.
--exclude-quiet:--excludegibidir ancakfilekomutunun bilmediği testleri yok sayar. Bu,filekomutunun eski sürümleriyle uyumluluk sağlamak amacıyla tasarlanmıştır.--extension: Bulunan dosya türü için geçerli uzantıların eğik çizgiyle ayrılmış bir listesini yazdırır.-F separator/--separator separator: Dosya adı ile döndürülen dosya sonucu arasında ayırıcı olarak belirtilen dizeyi kullanır. Varsayılan olarak:karakteridir.-f namefile/--files-from namefile: İncelenecek dosyaların adlarını argüman listesinden öncenamefiledosyasından (satır başına bir tane olacak şekilde) okur.namefileveya en az bir dosya adı argümanı mevcut olmalıdır; standart girdiyi test etmek için dosya adı argümanı olarak-kullanın. Bu seçenekle karşılaşıldığında ve başka herhangi bir seçenek işlemi yapılmadan öncenamefiledosyasının açıldığını ve içerdiği dosya adlarının işlendiğini lütfen unutmayın. Bu, aynıfileçağrısında farklı komut satırı argümanlarıyla birden fazla dosya listesinin işlenmesini sağlar. Bu nedenle, sınırlayıcıyı ayarlamak istiyorsanız, bunu dosya listesini belirtmeden önce yapmanız gerekir, örneğin:-f namefile -F @yerine-F @ -f namefileşeklinde.-h/--no-dereference: Bu seçenek, (sembolik bağları destekleyen sistemlerde) sembolik bağların (symlink) takip edilmemesini sağlar.-i: Eğer dosya normal bir dosyaysa, içeriğini sınıflandırmaz.-I/--mime:filekomutunun daha geleneksel insan tarafından okunabilir çıktılar yerine MIME türü dizeleri vermesini sağlar. Böylece “ASCII text” yerinetext/plain; charset=us-asciidiyebilir.--mime-type/--mime-encoding:-Iseçeneği gibidir, ancak yalnızca belirtilen bileşeni veya bileşenleri yazdırır.-k/--keep-going: İlk eşleşmede durmaz, devam eder. Sonraki eşleşmelerin başına\012-dizesi eklenecektir. Eşleştirme için en yüksek güce sahip magic şablonu (bkz.-lseçeneği) ilk sırada yer alır.-l/--list: Eşleştirme için kullanılan şablonların ve güçlerinin,magic(5)gücüne göre azalan düzende sıralanmış bir listesini gösterir (ayrıca-kseçeneğine de bakın).-L/--dereference: Bu seçenek,ls(1)içindeki benzer adlı seçenek gibi sembolik bağların takip edilmesini sağlar (sembolik bağları destekleyen sistemlerde). Bu varsayılan davranıştır.-m magicfiles/--magic-file magicfiles: Magic içeren dosyaların ve dizinlerin alternatif bir listesini belirtir. Bu tek bir öğe veya iki nokta üst üste ile ayrılmış bir liste olabilir. Bir dosya veya dizinin yanında derlenmiş bir magic dosyası bulunursa, bunun yerine o kullanılır.-M magicfiles:-mseçeneği gibidir, ancak-dbelirtilmedikçe varsayılan kurallar uygulanmaz.-n/--no-buffer: Her bir dosya kontrol edildikten sonrastdout'un temizlenmesini (flush) zorlar. Bu sadece bir dosya listesi kontrol ediliyorsa kullanışlıdır. Bir borudan (pipe) dosya türü çıktısı almak isteyen programlar tarafından kullanılmak üzere tasarlanmıştır.-p/--preserve-date:utime(3)veyautimes(2)destekleyen sistemlerde,filekomutunun dosyaları hiç okumamış gibi davranmasını sağlamak için analiz edilen dosyaların erişim zamanını korumaya çalışır.-P name=value/--parameter name=value: Çeşitli parametre sınırlarını ayarlar:Parametre Varsayılan Değer Açıklama bytes1048576dosyadan okunacak maksimum bayt sayısı elf_notes256işlenen maksimum ELF notu elf_phnum2048işlenen maksimum ELF program bölümü elf_shnum32768işlenen maksimum ELF bölümü encoding65536kodlama değerlendirmesi için taranacak maksimum bayt sayısı indir50dolaylı (indirect) magic için yineleme (recursion) sınırı name60name/usemagic için kullanım sayısı sınırıregex8192regex aramaları için uzunluk sınırı -r/--raw: Herhangi bir işlem yapmaz, geçmişe dönük uyumluluk için dahil edilmiştir.-s/--special-files: Normaldefile, yalnızcastat(2)çağrısının sıradan dosyalar olduğunu bildirdiği bağımsız değişken dosyalarını okumaya ve türlerini belirlemeye çalışır. Bu olası sorunları önler, çünkü özel dosyaları okumak garip sonuçlar doğurabilir.-sseçeneğinin belirtilmesi,filekomutunun blok veya karakter özel dosyaları olan bağımsız değişken dosyalarını da okumasını sağlar. Bu, blok özel dosyaları olan ham disk bölümlerindeki verilerin dosya sistemi türlerini belirlemek için kullanışlıdır. Bu seçenek ayrıca, bazı sistemlerde ham disk bölümleri için sıfır boyutu rapor edildiğinden,filekomutununstat(2)tarafından bildirilen dosya boyutunu dikkate almamasını sağlar.-v/--version: Programın sürümünü yazdırır ve çıkar.-z/--uncompress: Sıkıştırılmış dosyaların içine bakmaya çalışır.-Z/--uncompress-noreport: Sıkıştırılmış dosyaların içine bakmaya çalışır, ancak sıkıştırma hakkında değil, yalnızca içerik hakkında bilgi rapor eder.-0/--print0: Dosya adının bitiminden sonra bir null karakteri\0çıktılar. Çıktıyıcut(1)ile kesmek için kullanışlıdır. Bu durum, hala yazdırılan ayırıcıyı etkilemez.--help: Bir yardım mesajı yazdırır ve çıkar.
Dosyalar
/usr/share/file/magic.mgc: Varsayılan derlenmiş magic listesi./usr/share/file/magic: Varsayılan magic dosyalarını içeren dizin.
Çevre Değişkenleri
MAGIC:MAGICortam değişkeni, varsayılan magic dosya adını ayarlamak için kullanılabilir.file, uygun şekilde bu değişkenin değerine.mgcekler. Ancakfile.mimedosyasının dikkate alınması içinfiledosyasının mevcut olması gerekir.
Eski Sürüm Açıklaması
Eski modda (legacy mode) -D, -I ve -M seçenekleri mevcut değildir.
-d, -i ve -r seçenekleri farklı davranır. -d seçeneği hata ayıklama bilgisi sağlar (uyumluluk modundaki -D ile aynı). -i seçeneği MIME türü bilgisini görüntüler (uyumluluk modundaki -I ile aynı). -r seçeneği, yazdırılamayan karakterlerin çevirisini devre dışı bırakır (varsayılan olarak bu çeviri uyumluluk modunda zaten devre dışıdır).
Ayrıca, POSIXLY_CORRECT ayarlanmadığı sürece -h seçeneği varsayılan sembolik bağ davranışı (sembolik bağları takip etme) haline gelir.
Eski mod hakkında daha fazla bilgi için bkz. compat(5).
Ayrıca Bakınız
hexdump(1), od(1), strings(1), magic(5), otool(1), compat(5)
Standartlara Uyumluluk
Bu program, Single UNIX Specification sürüm 3 (“SUSv3”) ile uyumludur. Davranışı, çoğunlukla aynı adı taşıyan System V programı ile uyumludur. Ancak bu sürüm daha fazla magic bildiği için birçok durumda farklı (her ne kadar daha doğru olsa da) çıktılar üretecektir.
Bu sürüm ile System V arasındaki tek önemli fark, bu sürümün herhangi bir boşluk karakterini sınırlandırıcı (delimiter) olarak kabul etmesidir, bu nedenle şablon dizelerindeki boşluklardan kaçınılmalıdır (escaped). Örneğin,
>10 string language impress (imPRESS data)
mevcut bir magic dosyasındaki girdisinin şu şekilde değiştirilmesi gerekir:
>10 string language\ impress (imPRESS data)
Ayrıca bu sürümde, bir şablon dizesi ters eğik çizgi (backslash) içeriyorsa ondan kaçınılmalıdır. Örneğin,
0 string \begindata Andrew Toolkit document
mevcut bir magic dosyasındaki girdisinin şu şekilde değiştirilmesi gerekir:
0 string \\begindata Andrew Toolkit document
Sun Microsystems'ın SunOS 3.2 ve sonraki sürümleri, System V'ten türetilmiş ancak bazı uzantılara sahip bir file komutu içerir. Bu sürüm, Sun'ın sürümünden yalnızca küçük yönlerden farklılık gösterir. Örneğin şu şekilde kullanılan & operatörünün uzantısını içerir:
>16 long&0x7fffffff >0 not stripped
Magic Dizini
Magic dosyası girdileri, başta USENET olmak üzere çeşitli kaynaklardan toplanmış ve çeşitli yazarlar tarafından katkıda bulunulmuştur. Christos Zoulas ek veya düzeltilmiş magic dosyası girdilerini toplayacaktır. Magic dosyası girdilerinin birleştirilmiş bir hali periyodik olarak dağıtılacaktır.
Magic dosyasındaki girdilerin sırası önemlidir. Kullandığınız sisteme bağlı olarak, bir araya getirilme sıraları yanlış olabilir. Eski file komutunuz bir magic dosyası kullanıyorsa, karşılaştırma amacıyla eski magic dosyasını saklayın (adını /usr/share/file/magic.orig olarak değiştirin).
Örnekler
Aşağıdaki örnekler kabukta (shell) çalıştırılabilecek şekilde gösterilmiştir:
Çeşitli dosyaların ve özel aygıtların dosya türlerini belirleme:
file file.c file /dev/{wd0a,hda}Çıktı örneği:
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)Özel disk bölümleri / aygıtların içeriğini okuyup türünü belirleme (
-sseçeneği ile):file -s /dev/wd0{b,d}Çıktı örneği:
/dev/wd0b: data /dev/wd0d: x86 boot sectorBirden fazla diskin önyükleme ve dosya sistemi ayrıntılarını belirleme:
file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}Çıktı örneği:
/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: emptyDosyaların MIME türlerini belirleme (
-iseçeneği ile):file -i file.c file /dev/{wd0a,hda}Çıktı örneği:
file.c: text/x-c file: application/x-executable /dev/hda: application/x-not-regular-file /dev/wd0a: application/x-not-regular-file
Çıkış Durumu
file, başarı durumunda 0 ve hata durumunda sıfır dışı bir değer döndürür.
Tarihçe
En azından Research Version 4'ten (kılavuz sayfası Kasım 1973 tarihlidir) beri her UNIX sisteminde bir file komutu bulunmuştur. System V sürümü önemli bir büyük değişiklik getirdi: sihirli (magic) türlerin harici listesi. Bu durum programı biraz yavaşlattı ancak onu çok daha esnek hale getirdi.
System V sürümüne dayanan bu program, Ian Darwin ⟨ian@darwinsys.com⟩ tarafından başkalarının kaynak koduna bakılmadan yazılmıştır.
John Gilmore kodu kapsamlı bir şekilde gözden geçirerek ilk sürümden daha iyi hale getirdi. Geoff Collyer bazı yetersizlikler buldu ve bazı magic dosyası girdileri sağladı. & operatörünün Rob McMahon ⟨cudcv@warwick.ac.uk⟩ tarafından yapılan katkıları, 1989.
Guy Harris ⟨guy@netapp.com⟩, 1993'ten günümüze kadar birçok değişiklik yaptı.
1990'dan günümüze birincil geliştirme ve bakım işlemleri Christos Zoulas ⟨christos@astron.com⟩ tarafından yürütülmektedir.
Chris Lowth ⟨chris@lowth.com⟩ tarafından 2000 yılında değiştirildi: alternatif bir magic dosyası ve dahili mantık kullanarak mime türü dizelerini çıktı olarak veren -I seçeneğinin işlenmesi sağlandı.
Eric Fischer ⟨enf@pobox.com⟩ tarafından Temmuz 2000'de karakter kodlarını tanımlamak ve ASCII olmayan dosyaların dillerini belirlemeye çalışmak üzere değiştirildi.
Reuben Thomas ⟨rrt@sc3d.org⟩ tarafından 2007-2011 yılları arasında; MIME desteğini geliştirmek, MIME ve MIME olmayan magic'i birleştirmek, magic dosyalarının yanı sıra dizinleri de desteklemek, birçok hata düzeltmesi uygulamak, birçok magic girdisini güncellemek ve düzeltmek, derleme sistemini iyileştirmek, dokümantasyonu geliştirmek ve Python bağlamalarını saf Python dilinde yeniden yazmak üzere değiştirildi.
magic dizine (magic dosyalarına) katkıda bulunanlerin listesi buraya dahil edilemeyecek kadar uzundur. Kendinizi biliyorsunuz; teşekkür ederiz. Birçok katkıda bulunan kişi kaynak dosyalarda listelenmiştir.
Yasal Bildirim
Telif Hakkı (c) Ian F. Darwin, Toronto, Kanada, 1986-1999. Standart Berkeley Software Distribution telif hakkı kapsamındadır; kaynak dağıtımındaki COPYING dosyasına bakın.
tar.h ve is_tar.c dosyaları, John Gilmore tarafından kamu malı olan tar(1) programından yazılmıştır ve yukarıdaki lisans kapsamında değildir.
Hatalar
Lütfen hataları bildirin ve yamaları https://bugs.astron.com/ adresindeki hata takipçisine veya ⟨file@astron.com⟩ adresindeki e-posta listesine gönderin (abone olmak için önce https://mailman.astron.com/mailman/listinfo/file adresini ziyaret edin).
Yapılacaklar
- Çıktıyı düzelterek MIME ve APPLE bayrakları testlerinin her yerde gerekli olmamasını ve asıl çıktının yalnızca tek bir yerde yapılmasını sağlayın. Bu bir tasarım gerektirir. Öneri: olası çıktıları bir listeye ekleyin, ardından en sonda en son eklenen (umarız en spesifik olan) değeri seçin veya liste boşsa varsayılan bir değer kullanın. Bu durum değerlendirmeyi yavaşlatmamalıdır.
MAGIC_CONTINUEişlenmesi ve girdiler arasında\012-yazdırılması hantal ve karmaşıktır; yeniden yapılandırın (refactor) ve merkezileştirin.- Kodlama mantığının bir kısmı
encoding.ciçinde sabit olarak kodlanmıştır (hard-coded) ve bir!:charsetaçıklamasına (annotation) sahip olsaydık magic dosyalarına taşınabilirdi. - Tüm magic hatalarını gidermeye devam edin. İyi bir kaynak için Debian BTS'ye bakın.
- Yazdırılabilmeleri için, örneğin
%sşablonları gibi isteğe bağlı uzunluktaki dizeleri saklayın. Debian hatası #271672'yi düzeltir. Bu, dizeleri bir dize havuzunda (string pool) ayırarak, dize havuzunu magic dosyasının sonunda saklayarak ve tüm dize işaretçilerini dize havuzundan göreceli kayma miktarlarına (relative offsets) dönüştürerek yapılabilir. - Mevcut seviyeden sonraki göreceli kayma miktarları (relative offsets) için sözdizimi ekleyin (Debian hatası #466037).
file -kiseçeneğinin çalışmasını sağlayın, yani birden fazla MIME türü verin.- Office2007 belgelerinin içeriğini daha ayrıntılı yazdırmak üzere içlerine bakabilmemiz için bir
zipkütüphanesi ekleyin. - Dosya açıklamalarının kaynakları için URL'leri yazdıracak bir seçenek ekleyin.
- Betik aramalarını birleştirin ve yürütülebilir adlarını MIME türleriyle eşleştirecek bir yol ekleyin (örneğin
!:mimeiçin sonuç dizesinin bir tabloda aranmasını sağlayan sihirli bir değere sahip olmak). Bu, her yeni shebang (hash-bang) yorumlayıcısı için aynı magic'in tekrar tekrar eklenmesini önleyecektir. - Bir dosya tanımlayıcısı (file descriptor) mevcut olduğunda, şu anda yaptığımız geçici tampon yönetimi yerine tamponu atlayabilir ve ayarlayabiliriz.
- Derleme zamanında tutarlılığı kontrol etmek için “name” ve “use” anahtarlarını düzeltin (mükerrer “name”, tanımlanmamış “name” işaret eden “use”). Sıralı bir isim listesi tutarak “name” / “use” yapısını daha verimli hale getirin. Ayrıştırıcıda endianlık durumunu tersine çevirmek (flip endianness) için
^karakterine özel durum tanıyın, böylece kaçış karakteri ile yazılması gerekmez ve bunu belgeleyin. - Dosya içinde dahili olarak belirtilen kayma miktarları (offsets) tampon boyutunu (
file.hiçindekiHOWMANYdeğişkeni) aşarsa, o kayma miktarına gitmeyiz (seek yapmayız), vazgeçeriz. Tampon yönetimi dosya tanımlayıcısı mevcut olduğunda yapılsaydı, dosya içinde arama yapabilmemiz (seek) daha iyi olurdu. Ancak bu durum performans ve dolayısıyla güvenlik hususları barındırdığından dikkatli olunmalıdır, çünkü tekrar tekrar arama yapmak (seeking) işleri yavaşlatabilir. - Şu anda ayrı tamponlar tutma ve dosyanın sonundan kayma miktarlarına (offsets) sahip olma desteği vardır, ancak dahili tampon yönetiminin hala elden geçirilmesi gerekmektedir.
Erişilebilirlik
Orijinal yazarın en son sürümünü ftp.astron.com adresindeki /pub/file/file-X.YZ.tar.gz dizininden anonim FTP yoluyla edinebilirsiniz.