Warum bedeutet ENOENT "Keine solche Datei oder kein solches Verzeichnis"?

507

Was bedeutet der ENTMittelwert in ENOENT?

Sollte der Fehler nicht:

Datei oder Verzeichnis existiert nicht

nur benannt werden von ENOFILE?

Gibt es eine Geschichte oder einen Grund?

Mingchaoyan
quelle

Antworten:

788

Es ist eine Abkürzung für Error NO ENTry (oder Error NO ENTity) und kann tatsächlich für mehr als Dateien / Verzeichnisse verwendet werden.

Es wird abgekürzt, weil C-Compiler zu Beginn der Zeit nicht mehr als 8 Zeichen in Symbolen unterstützten.

Einige Programmierer
quelle
28
"kann tatsächlich für mehr als Dateien / Verzeichnisse verwendet werden." - Außer wenn Sie möchten, dass Ihr Code unter Linux zusammengeführt wird: lkml.org/lkml/2012/12/23/75
amn
12
Es scheint für Benutzer wertvoller zu sein, wenn der Fehler explizit war, anstatt 8 Zeichen Speicherplatz zu sparen. Irgendeine Idee, warum dies der Fall sein könnte?
Brady Dowling
57
@BradyDowling Da C-Compiler zu Beginn der Zeit nicht mehr als 8 Zeichen in Symbolen unterstützten.
Einige Programmierer Typ
15
Der Kommentar von @ Someprogrammerdude erklärte die meisten meiner Fragen (Bedenken) zu C-Namenskonventionen.
Jackson
3
@Jackson wie command not foundim child_process des Knotens . * weint *.
Dwelle
122

Es ist einfach "Kein solcher Verzeichniseintrag". Da Verzeichniseinträge Verzeichnisse oder Dateien (oder Symlinks oder Sockets oder Pipes oder Geräte) sein können, wäre der Name ENOFILEin seiner Bedeutung zu eng gewesen.

Roland Illig
quelle
27
Symlinks, Sockets, Pipes und Geräte sind alle Dateien, ebenso wie Verzeichnisse. ENOFILE wäre in seiner Bedeutung genauso breit oder schmal wie ENOENT.
Guido Flohr