POSIX bir metin dosyasını şu şekilde tanımlar:
Sıfır veya daha fazla satırda düzenlenmiş karakterleri içeren bir dosya. Satırlar NUL karakteri içermez ve hiçbiri <newline> karakteri dahil olmak üzere {LINE_MAX} bayt uzunluğunu aşamaz. POSIX.1-2017, metin dosyaları ve ikili dosyalar arasında ayrım yapmamasına rağmen (ISO C standardına bakın), çoğu yardımcı program yalnızca metin dosyaları üzerinde çalışırken öngörülebilir veya anlamlı çıktılar üretir. Bu tür kısıtlamaları olan standart yardımcı programlar her zaman STDIN veya INPUT FILES bölümlerinde "metin dosyaları" belirtir.
Kaynak: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_403
Ancak belirsiz bulduğum birkaç şey var:
Bir metin dosyası normal bir dosya mı olmalı? Yukarıdaki alıntıda açıkça, dosyanın normal bir dosya olması gerektiğini söylemez
Bir karakter yalnızca bir karakter ve yalnızca bir karakter içeriyorsa bir dosya olarak kabul edilebilir mi (yani, yeni bir satırla sonlandırılmayan tek bir karakter)? Bu sorunun nitpicky kulağa geldiğini biliyorum, ancak "bir veya daha fazla karakter" yerine "karakter" kelimesini kullanıyorlar. Diğerleri aynı fikirde olmayabilir, ancak "bir veya daha fazla karakter" anlamına geliyorlarsa açıkça söylemeleri gerektiğini düşünüyorum
Yukarıdaki alıntıda, "çizgiler" e atıfta bulunur. "Boş Satır", "Ekran Satırı", "Eksik Satır" ve "Satır" adında satırlı dört tanım buldum. "Boş", "Ekran" ve "Tamamlanmadı" eksikliklerinden dolayı "Satır" anlamına geldiği ya da yukarıdaki alıntıda yer alan bu tanımların dördü mü?
Bu metin bloğundan sonra gelen tüm sorular, "karakterlerin" "bir veya daha fazla karakter" anlamına geldiğine göre değişir:
- Bir dosya boşsa, bir veya daha fazla karakter içermediğinden dolayı bir metin dosyası olmadığını güvenle söyleyebilir miyim?
Bu metin bloğundan sonra gelen tüm sorular, yukarıdaki alıntıda, bir satırın bir "Satır" olarak tanımlandığına ve adlarında "Satır" ı içeren diğer üç tanımın dışlanması gerektiği sonucuna dayanır:
"Sıfır veya daha fazla satırlardaki" "sıfır", bir dosyanın newline ile sonlandırılmayan bir veya daha fazla karakter içeriyorsa, hala bir metin dosyası olarak kabul edilebileceği anlamına mı geliyor?
"Sıfır veya daha fazla satır", tek bir "Satır" (0 veya daha fazla karakter artı sonlanan bir yeni satır) devreye girdiğinde, son satırın "Tamamlanmamış Satır" (bir veya daha fazla olmayan) olması yasa dışı kaldığı anlamına mı geliyor? dosyanın sonunda yeni satır karakterleri)?
"None [no line]" satırsonu karakteri de dahil olmak üzere {LINE_MAX} bayt uzunluğunu geçebilir mi "anlamına gelir", bir metin dosyasındaki herhangi bir "Satır" da izin verilen karakter sayısında bir sınırlama olduğu anlamına gelir (bir kenara, değer Ubuntu 18.04 ve FreeBSD 11.1'deki LINE_MAX "2048" olur?