¿Por qué ENOENT significa "No existe tal archivo o directorio"?


507

¿Qué significa el ENTen ENOENT?

No debería el error:

El fichero o directorio no existe

solo ser nombrado por ENOFILE?

¿Hay alguna historia o razón?

Respuestas:


788

Es una abreviatura de Error NO ENPrueba (o Error NO ENTity), y en realidad puede usarse para más que archivos / directorios.

Se abrevia porque los compiladores de C en los albores del tiempo no admitían más de 8 caracteres en símbolos.


28
"en realidad puede usarse para algo más que archivos / directorios". - excepto cuando desee fusionar su código en Linux: lkml.org/lkml/2012/12/23/75
amn

12
Parece que sería más valioso para los usuarios si el error fuera explícito en lugar de guardar 8 caracteres de espacio. ¿Alguna idea de por qué este podría ser el caso?
Brady Dowling

57
@BradyDowling Porque los compiladores de C en los albores del tiempo no admitían más de 8 caracteres en símbolos.
Algún tipo programador el

15
El comentario de @ Someprogrammerdude explicó la mayoría de mis preguntas (reparos) sobre las convenciones de nomenclatura de C.
Jackson

3
@Jackson, como por ejemplo command not founden el nodo child_process . *llantos*.
Habita el

122

Es simplemente "No hay tal entrada de directorio". Dado que las entradas de directorio pueden ser directorios o archivos (o enlaces simbólicos, sockets, tuberías o dispositivos), el ENOFILEsignificado del nombre habría sido demasiado limitado.


27
Los enlaces simbólicos, sockets, tuberías y dispositivos son todos archivos, y también lo son los directorios. ENOFILE sería tan amplio o estrecho en su significado como ENOENT.
Guido Flohr
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.