unix 为什么ENOENT表示“没有这样的文件或目录”?

c2e8gylq  于 2023-01-13  发布在  Unix
关注(0)|答案(4)|浏览(172)

ENOENT中的ENT是什么意思?
错误不应该:
无此文件或目录
就用ENOFILE来命名吗
有什么故事或原因吗?

sdnqo3pr

sdnqo3pr1#

它是Error NO ENTry(或Error NO ENTity)的缩写,实际上可用于多个文件/目录。
之所以缩写,是因为C编译器在早期不支持符号中超过8个字符。

j2cgzkjk

j2cgzkjk2#

因为目录条目可以是目录或文件(或符号链接、或套接字、或管道、或设备),所以名称ENOFILE的含义太狭窄了。

mspsb9vt

mspsb9vt3#

有关所有代码的完整列表以及对每个代码含义的更好描述,请参见errno.h这是一个包含文件,是C标准库的一部分,注解说明了错误的原因。

define ENOENT 2 /* 没有此类文件或目录 */

0sgqnhkj

0sgqnhkj4#

在Linux(Ubuntu)中

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
[旁白]
没有这样的文件或目录。指定路径名的组件不存在,或者路径名为空字符串。
格列本脲:
https://www.gnu.org/software/libc/manual/html_node/Error-Codes.html
宏:整数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

预期已经存在。

相关问题