Mengapa ENOENT berarti "Tidak ada file atau direktori"?


507

Apa ENTartinya ini ENOENT?

Bukankah seharusnya kesalahan:

tidak ada berkas atau direktori seperti itu

hanya disebutkan namanya ENOFILE?

Adakah cerita atau alasan?

Jawaban:


788

Ini adalah singkatan dari Error NO ENTry (atau Error NO ENTity), dan sebenarnya dapat digunakan untuk lebih dari file / direktori.

Ini disingkat karena kompiler C pada waktu awal tidak mendukung lebih dari 8 karakter dalam simbol.


28
"Sebenarnya dapat digunakan untuk lebih dari file / direktori." - kecuali ketika Anda ingin kode Anda digabungkan ke Linux: lkml.org/lkml/2012/12/23/75
amn

12
Sepertinya itu akan lebih berharga bagi pengguna jika kesalahan itu eksplisit daripada menghemat 8 karakter ruang. Adakah yang tahu mengapa ini bisa terjadi?
Brady Dowling

57
@BradyDowling Karena kompiler C pada waktu awal tidak mendukung lebih dari 8 karakter dalam simbol.
Beberapa programmer Bung

15
Komentar @ Someprogrammerdude menjelaskan sebagian besar pertanyaan saya (keraguan) tentang konvensi penamaan C.
Jackson

3
@Jackson seperti untuk command not founddi child_process node . * menangis *.
dwelle

122

Ini hanya "Tidak ada entri direktori seperti itu". Karena entri direktori dapat berupa direktori atau file (atau symlink, atau soket, atau pipa, atau perangkat), namanya ENOFILEterlalu sempit artinya.


27
Symlink, soket, pipa, dan perangkat adalah semua file, dan juga direktori. ENOFILE akan sama lebar atau sempit dalam artinya sebagai ENOENT.
Guido Flohr
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.