Właśnie spotkałem następujące pytanie w Unix Programming Environment , klasycznej książce Kernighana i Pike'a na temat Uniksa (znalazłem poniższy tekst na s. 79 wydania z 1984 roku, ISBN: 0-13-937699-2):
Ćwiczenie 3-6. (Podchwytliwe pytanie) Jak uzyskać / w nazwie pliku (tzn., Że / nie rozdziela składników ścieżki?
Pracuję z Linuksem od lat, zarówno jako użytkownik końcowy, jak i programista, ale nie mogę odpowiedzieć na to pytanie. Nie ma sposobu na umieszczanie ukośników w nazwach plików, jest to absolutnie zabronione przez jądro. Możesz załatać system plików poprzez dostęp do urządzenia blokowego lub użyć podobnie wyglądających znaków z Unicode, ale to nie są rozwiązania.
Rozumiem, że Linux ≠ Unix, ale ta sama zasada powinna mieć zastosowanie, ponieważ system musi być w stanie jednoznacznie wyodrębnić hierarchię katalogów ze ścieżek.
Czy ktoś wie, o czym dokładnie myśleli Kernighan i Pike, zadając te pytania? Jaka była rzekoma odpowiedź? Czym dokładnie jest „sztuczka”? A może oryginalny system uniksowy może po prostu uciec przed tym cięciem?
UPD:
Skontaktowałem się z Brianem Kernighanem w sprawie pytania i on odpowiedział:
Odpowiedź brzmi (lub była) „Nie możesz”.
Dlatego Timothy Martin miał rację i dostał zielonego tik.
a
i zmusić swój system do myślenia, że system plików znajduje się w ustawieniach regionalnych EBCDIC? ASCII a
to 0x61, co odpowiada /
w EBCDIC (strona kodowa 37)