Почему 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

предполагается, что они уже существуют.

Другие вопросы по тегам