Por que ENOENT significa "Esse arquivo ou diretório não existe"?

507

O que ENTsignifica isso ENOENT?

O erro não deveria:

Não existe tal arquivo ou diretório

apenas ser nomeado por ENOFILE?

Existe alguma história ou razão?

mingchaoyan
fonte

Respostas:

788

É uma abreviação de Error NO ENTry (ou Error NO ENTity) e pode realmente ser usado para mais de arquivos / diretórios.

É abreviado porque os compiladores C, no início dos tempos, não suportavam mais de 8 caracteres em símbolos.

Algum programador
fonte
28
"pode ​​realmente ser usado para mais de arquivos / diretórios." - exceto quando você quer ter o seu código mescladas em Linux: lkml.org/lkml/2012/12/23/75
amn
12
Parece que seria mais valioso para os usuários se o erro fosse explícito, em vez de economizar 8 caracteres de espaço. Alguma idéia de por que esse poderia ser o caso?
Brady Dowling
57
@BradyDowling Porque os compiladores C, no início dos tempos, não suportavam mais de 8 caracteres em símbolos.
Um cara programador
15
O comentário de @ Someprogrammerdude explicou a maioria das minhas perguntas (escrúpulos) sobre convenções de nomenclatura C.
22717 Jackson
3
@Jackson, como command not foundno processo filho do nó . * chora *.
dwelle
122

É simplesmente "Não existe tal entrada no diretório". Como as entradas de diretório podem ser diretórios ou arquivos (ou links simbólicos, soquetes, tubulações ou dispositivos), o nome ENOFILEteria sido muito estreito em seu significado.

Roland Illig
fonte
27
Links simbólicos, soquetes, tubulações e dispositivos são todos arquivos e diretórios. ENOFILE seria tão amplo ou estreito em seu significado quanto ENOENT.
Guido Flohr