Ilekroć wyświetlam zawartość katalogu z funkcją taką jak readdir, zwrócone nazwy plików zawierają również "." i "..". Podejrzewam, że są to zwykłe linki w systemie plików i dlatego nie można ich odróżnić od rzeczywistych plików, ale zawsze muszę je odfiltrować, ponieważ nie są rzeczywistymi obiektami w katalogu, który wymieniam. Czy istnieje dobry powód, aby funkcje takie jak readdir je uwzględniały? Czy niektóre systemy operacyjne lub systemy plików zawierają więcej lub różne nazwy plików wirtualnych? Czy istnieje lepszy sposób na ich filtrowanie poza wykonaniem porównania łańcuchów z "." i ".."?Dlaczego listy katalogów zawierają katalog bieżący (.) I katalog nadrzędny (..)?
Aktualizacja: dziękuję wszystkim za odpowiedź. Sądzę, że zawsze uważałem, że takie rzeczy jak ./ i ../ były zwykłymi konwencjami, którymi można się posłużyć, szukając i zastępując. Uważam, że jest to nieco zaskakujące, ale prawdopodobnie bardziej wydajne i przejrzyste, aby stały się częścią samego systemu plików.
Pozostaje jedno pytanie: od. i .. są arbitralne nazwy dla tych linków, czy istnieją systemy plików, które używają różnych?
W systemie Windows,. wydaje się być częścią PATH implicitely, co oznacza, że możesz po prostu wpisać run_this. Przyzwyczajając się do tego, zawsze uważałem na prefiks ./ za nieco irytujący w używaniu Linuksa, chociaż rozumiem jego wartość dla bezpieczeństwa. – Lemming
Nie myślałem tak bardzo o ograniczeniach bezpieczeństwa, dopóki nie wyjaśniłem mi tego w tym roku. Nieprzyjemny użytkownik mógł mieć polecenie w swoim katalogu o nazwie ls, które administrator, nawigując do tego katalogu, mógłby wykonać, a to polecenie mogłoby następnie umożliwić użytkownikowi dodatkowy dostęp. Zły. –