Почему ENOENT означает "Нет такого файла или каталога"?
Что значит "ЛОР"?
error
:
Данный файл или каталог отсутствует
должен быть просто назван "ENOFILE".
Есть какая-то история или причина?
4 ответа
Это аббревиатура Error NO ENTry (или Error NO ENTity), и ее можно использовать не только для файлов / каталогов.
Это просто "Нет такой записи каталога". Поскольку записи каталогов могут быть каталогами или файлами (или символическими ссылками, или сокетами, или каналами, или устройствами), имя ENOFILE
было бы слишком узким по своему значению.
Для получения полного списка всех кодов и лучшего описания того, что каждый из них означает, см. Errno.h Это включаемый файл, который является частью стандартной библиотеки C.
В линукс (убунту)
File: /usr/include/asm-generic/errno-base.h
6: #define ENOENT 2 /* No such file or directory */
7:
https://man7.org/linux/man-pages/man3/errno.3.html
errno 2
возвращаться:
ENOENT 2 No such file or directory
открытая группа: https://pubs.opengroup.org/onlinepubs/009604599/functions/xsh_chap02_03.html
[ENOENT]
Нет такого файла или каталога. Компонент указанного пути не существует, или путь представляет собой пустую строку.
Glibc:
https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html
Макрос: int ENOENT
"No such file or directory." This is a “file doesn’t exist” error for ordinary files that are referenced in contexts where they are
предполагается, что они уже существуют.