Tại sao ENOENT có nghĩa là không có tập tin hoặc thư mục như vậy?


507

Nghĩa ENTENOENTgì?

Không nên lỗi:

Không có tập tin hoặc thư mục

chỉ được đặt tên bởi ENOFILE?

Có câu chuyện hay lý do nào không?

Câu trả lời:


788

Đây là tên viết tắt của Error NO ENTry (hoặc Error NO ENTity) và thực sự có thể được sử dụng cho nhiều hơn các tệp / thư mục.

Nó được viết tắt bởi vì trình biên dịch C vào lúc bình minh không hỗ trợ hơn 8 ký tự trong các ký hiệu.


28
"thực sự có thể được sử dụng cho nhiều hơn các tập tin / thư mục." - trừ khi bạn muốn có mã của bạn sáp nhập vào Linux: lkml.org/lkml/2012/12/23/75
Amn

12
Có vẻ như nó sẽ có giá trị hơn đối với người dùng nếu lỗi rõ ràng thay vì tiết kiệm 8 ký tự. Bất cứ ý tưởng tại sao điều này có thể là trường hợp?
Brady Dowling

57
@BradyDowling Bởi vì trình biên dịch C vào thời điểm bình minh không hỗ trợ hơn 8 ký tự trong các ký hiệu.
Một số lập trình viên anh chàng

15
Nhận xét của @ Someprogrammerdude đã giải thích hầu hết các câu hỏi của tôi về các quy ước đặt tên C.
Jackson

3
@Jackson chẳng hạn như đối với child_ processcommand not found của nút . * khóc *.
dwelle

122

Nó chỉ đơn giản là không có mục nào như vậy. Vì các mục nhập thư mục có thể là thư mục hoặc tệp (hoặc liên kết tượng trưng, ​​hoặc ổ cắm, hoặc đường ống hoặc thiết bị), nên tên của nó ENOFILEsẽ quá hẹp theo nghĩa của nó.


27
Symlinks, ổ cắm, đường ống và thiết bị là tất cả các tập tin, và các thư mục cũng vậy. ENOFILE sẽ chỉ rộng hoặc hẹp theo nghĩa của nó như ENOENT.
Guido Flohr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.