POSIX mendefinisikan file teks sebagai:
File yang berisi karakter yang disusun dalam nol atau lebih baris. Baris tidak mengandung karakter NUL dan panjangnya tidak boleh melebihi {LINE_MAX} byte, termasuk karakter <newline>. Meskipun POSIX.1-2017 tidak membedakan antara file teks dan file biner (lihat standar ISO C), banyak utilitas hanya menghasilkan output yang dapat diprediksi atau bermakna ketika beroperasi pada file teks. Utilitas standar yang memiliki batasan seperti itu selalu menentukan "file teks" di bagian STDIN atau INPUT FILES.
Sumber: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_403
Namun, ada beberapa hal yang saya temukan tidak jelas:
Haruskah file teks menjadi file biasa? Dalam kutipan di atas tidak secara eksplisit mengatakan file tersebut harus berupa file biasa
Dapatkah file dianggap sebagai file teks jika hanya mengandung satu karakter dan satu karakter (yaitu, satu karakter yang tidak diakhiri dengan baris baru)? Saya tahu pertanyaan ini mungkin terdengar nitpicky, tetapi mereka menggunakan kata "karakter" alih-alih "satu atau lebih karakter". Yang lain mungkin tidak setuju, tetapi jika itu berarti "satu atau lebih karakter" saya pikir mereka harus secara eksplisit mengatakannya
Dalam kutipan di atas, itu membuat referensi ke "baris". Saya menemukan empat definisi dengan baris dalam nama mereka: "Baris Kosong", "Baris Tampilan", "Baris Tidak Lengkap" dan "Baris". Apakah saya harus menyimpulkan bahwa yang mereka maksudkan "Baris" karena mereka tidak memiliki "Kosong", "Tampilan" dan "Tidak Lengkap" - atau apakah keempat definisi ini termasuk sebagai baris dalam kutipan di atas?
Semua pertanyaan yang muncul setelah blok teks ini bergantung pada kesimpulan bahwa "karakter" berarti "satu atau lebih karakter":
- Dapatkah saya menyimpulkan dengan aman bahwa jika file kosong, itu bukan file teks karena tidak mengandung satu atau lebih karakter?
Semua pertanyaan yang muncul setelah blok teks ini bergantung pada kesimpulan bahwa dalam kutipan di atas, sebuah baris didefinisikan sebagai "Baris", dan bahwa tiga definisi lainnya yang mengandung "Baris" dalam namanya harus dikecualikan:
Apakah "nol" dalam "nol atau lebih baris" berarti bahwa suatu file masih dapat dianggap sebagai file teks jika mengandung satu atau lebih karakter yang tidak diakhiri dengan baris baru?
Apakah "nol atau lebih baris" berarti bahwa sekali "Baris" tunggal (0 atau lebih karakter plus baris baru) mulai berlaku, itu menjadi ilegal untuk baris terakhir menjadi "Baris Tidak Lengkap" (satu atau lebih non- karakter baris baru di akhir file)?
Apakah "tidak ada [tidak ada baris] yang dapat melebihi {LINE_MAX} byte, termasuk karakter baris baru" berarti bahwa ada batasan untuk jumlah karakter yang diizinkan dalam "Baris" yang diberikan dalam file teks (selain itu, nilai dari LINE_MAX di Ubuntu 18.04 dan FreeBSD 11.1 adalah "2048")?