Bất cứ khi nào tôi liệt kê nội dung của một thư mục có chức năng như readdir, tên tệp được trả lại cũng bao gồm "." và "..". Tôi nghi ngờ rằng đây chỉ là các liên kết bình thường trong hệ thống tệp và do đó không thể phân biệt được với các tệp thực, nhưng tôi luôn phải lọc chúng ra vì chúng không phải là đối tượng thực trong thư mục tôi liệt kê. Có lý do chính đáng nào cho các chức năng như readdir để đưa chúng vào không? Một số hệ điều hành hoặc hệ thống tệp có chứa nhiều tên tệp ảo khác không? Có cách nào tốt hơn để lọc chúng ra ngoài khác hơn là so sánh chuỗi với "." và ".."?Tại sao danh sách thư mục chứa thư mục (.) Và thư mục mẹ (..) hiện tại?
Cập nhật: cảm ơn tất cả vì đã trả lời. Tôi cho rằng tôi luôn nghĩ rằng những thứ như ./ và ../ chỉ là những quy ước có thể được xử lý bằng cách tìm kiếm và thay thế. Tôi thấy nó hơi ngạc nhiên, mặc dù có lẽ hiệu quả hơn và minh bạch hơn, để chúng trở thành một phần của hệ thống tập tin.
Vẫn còn một câu hỏi: kể từ đó. và .. là tên tùy ý cho các liên kết này, có hệ thống tệp nào sử dụng các hệ thống khác không?
Trên Windows,. dường như là một phần của PATH ngầm, nghĩa là bạn có thể chỉ cần gõ run_this. Được sử dụng để điều này, tôi luôn luôn tìm thấy nhấn mạnh trên tiền tố ./ một chút khó chịu khi sử dụng Linux, mặc dù tôi hiểu giá trị của nó cho an ninh. – Lemming
Tôi đã không thực sự nghĩ nhiều về những ràng buộc về bảo mật cho đến khi nó được giải thích cho tôi vào đầu năm nay. Người dùng khó chịu có thể có một lệnh trong thư mục của cô ấy được gọi là ls, một quản trị viên, khi điều hướng tới thư mục đó, có thể thực thi và lệnh đó sau đó có thể cho phép người dùng truy cập thêm. Xấu. –