Dlaczego ENOENT oznacza „Brak takiego pliku lub katalogu”?


507

Co to ENTznaczy ENOENT?

Błąd nie powinien:

Brak takiego pliku lub katalogu

zostać nazwanym przez ENOFILE?

Czy jest jakaś historia lub powód?

Odpowiedzi:


788

Jest to skrót od Error NO ENTry (lub Error NO ENTity) i może być faktycznie używany do więcej niż plików / katalogów.

Jest to skrócone, ponieważ kompilatory C na początku nie obsługiwały więcej niż 8 znaków w symbolach.


27
„można go używać do więcej niż plików / katalogów”. - z wyjątkiem gdy chcesz mieć swój kod połączone w systemie Linux: lkml.org/lkml/2012/12/23/75
AMN

12
Wydaje się, że byłoby bardziej wartościowe dla użytkowników, gdyby błąd był jawny, zamiast oszczędzać 8 znaków miejsca. Masz pojęcie, dlaczego tak może być?
Brady Dowling,

57
@BradyDowling Ponieważ kompilatory C na początku nie obsługiwały więcej niż 8 znaków w symbolach.
Jakiś programista koleś

15
Komentarz @ Someprogrammerdude wyjaśnia większość moich pytań (skrupułów) na temat konwencji nazewnictwa C.
Jackson,

3
@Jackson, na przykład command not foundw child_process węzła . * płacze *.
dwelle

122

To po prostu „Brak takiego wpisu w katalogu”. Ponieważ pozycje katalogu mogą być katalogami lub plikami (lub dowiązaniami symbolicznymi, gniazdami, potokami lub urządzeniami), nazwa ENOFILEmiałaby zbyt wąskie znaczenie.


27
Dowiązania symboliczne, gniazda, potoki i urządzenia to wszystkie pliki, podobnie jak katalogi. ENOFILE miałoby tak samo szerokie lub wąskie znaczenie jak ENOENT.
Guido Flohr
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.