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?

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.


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.