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?

mingchaoyan
źródło

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.

Jakiś programista
źródło
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.

Roland Illig
źródło
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