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?

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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.