เหตุใด ENOENT จึงหมายถึง“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว”


507

อะไรENTในค่าเฉลี่ยENOENT?

ไม่ควรเกิดข้อผิดพลาด:

ไม่พบไฟล์หรือโฟลเดอร์

เพิ่งจะตั้งชื่อตามENOFILE?

มีเรื่องราวหรือเหตุผลหรือไม่?

คำตอบ:


788

มันเป็นตัวย่อของ Error NO ENTry (หรือ Error NO ENTity) และสามารถใช้งานได้จริงมากกว่าไฟล์ / ไดเรกทอรี

มันสั้นเพราะคอมไพเลอร์ C ในตอนรุ่งอรุณไม่สนับสนุนอักขระมากกว่า 8 ตัว


28
"สามารถใช้งานได้จริงมากกว่าไฟล์ / ไดเรกทอรี" - ยกเว้นเมื่อคุณต้องการให้รหัสของคุณรวมเข้ากับ Linux: lkml.org/lkml/2012/12/23/75
amn

12
ดูเหมือนว่ามันจะมีค่ามากกว่าสำหรับผู้ใช้หากข้อผิดพลาดชัดเจนมากกว่าการบันทึกพื้นที่ 8 อักขระ ความคิดใด ๆ ที่อาจเป็นเช่นนั้น
เบรดี้ดาวลิ่ง

57
@BradyDowling เนื่องจาก C คอมไพเลอร์ในตอนรุ่งอรุณไม่สนับสนุนอักขระมากกว่า 8 ตัว
โปรแกรมเมอร์บางคนเพื่อน

15
@ ความคิดเห็นของ Someprogrammerdude อธิบายคำถามส่วนใหญ่ของฉัน (คำตอบ) เกี่ยวกับอนุสัญญาการตั้งชื่อ C
Jackson

3
@Jackson เช่นcommand not foundในโหนดchild_process * * * * * * * * ร้องไห้
dwelle

122

มันเป็นเพียง“ ไม่มีรายการไดเรกทอรีดังกล่าว” เนื่องจากรายการไดเรกทอรีอาจเป็นไดเรกทอรีหรือไฟล์ (หรือ symlink, หรือซ็อกเก็ตหรือไพพ์หรืออุปกรณ์) ชื่อENOFILEจึงแคบเกินไปในความหมายของมัน


27
Symlinks, ซ็อกเก็ต, ไพพ์, และอุปกรณ์ต่าง ๆ เป็นไฟล์ทั้งหมดและเป็นไดเรกทอรี ENOFILE จะกว้างหรือแคบในความหมายของมันเท่ากับ ENOENT
Guido Flohr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.