Чому 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 іменування
Джексон

3
@Jackson, наприклад, command not foundу child_process вузла . * плаче *.
пробувати

122

Це просто "Немає такого запису в каталозі". Оскільки записи в каталозі можуть бути каталогами або файлами (або символьними посиланнями, або сокетами, або трубами, або пристроями), ім'я ENOFILEбуло б занадто вузьким за своїм значенням.


27
Посилання, розетки, труби та пристрої - це всі файли, а також каталоги. ENOFILE був би таким же широким або вузьким за своїм значенням, як ENOENT.
Гвідо Флор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.