W całej specyfikacji POSIX istnieje przepis ( 1 , 2 , 3 ...), który pozwala implementacjom traktować ścieżkę zaczynającą się od dwóch /
specjalnie.
Aplikacja POSIX (aplikacja napisana zgodnie ze specyfikacją POSIX, aby była przenośna dla wszystkich systemów zgodnych z POSIX) nie może założyć, że //foo/bar
jest taka sama jak /foo/bar
(choć może założyć, że ///foo/bar
jest taka sama jak /foo/bar
).
Jakie są te systemy POSIX (historyczne i nadal utrzymywane), które traktują //foo
specjalnie? Wierzyłem (teraz okazało się, że się mylę ), że Microsoft wymusił udostępnienie POSIX dla ich wariantu Unix (XENIX) i prawdopodobnie warstwy Windows POSIX (czy ktoś może to potwierdzić?).
Jest używany przez Cygwin, który jest również warstwą podobną do POSIX dla Microsoft Windows. Czy są jakieś systemy inne niż Microsoft Windows? OpenVMS?
W systemach, w których //foo/bar
jest wyjątkowy, do czego służy? //host/path
dostęp do sieciowych systemów plików? Wirtualne systemy plików?
Czy niektóre aplikacje działające na systemach uniksowych - jeśli nie API systemu - traktują //foo/bar
ścieżki specjalnie (w kontekstach, w których inaczej traktują /foo/bar
jako ścieżkę w systemie plików)?
Edytuj , od tego czasu zadałem pytanie na liście mailingowej grupy austin dotyczące pochodzenia //foo/bar
obsługi w specyfikacji, a dyskusja jest interesującą lekturą (przynajmniej z punktu widzenia archeologii).
ls -ld ///
również wyświetli ///
, ls
po prostu wyświetla plik, który ma wyświetlać tak, jak został podany. Szukam systemów lub aplikacji, które traktują // foo / var specjalnie (nie jako ścieżkę w systemie plików), jak robi to Cygwin.
IBM's z/OS resolves //pathname requests to MVS datasets (as opposed to the hierarchical filesystem (HFS)) (......) Additionally, z/OS would not accept or recognize additional "directory" or "file" components appended to such paths.
... nie do końca jednak uniksowy ^^).
file://
podobnie do http://
i tak dalej. Na Chrome tutaj, w pracy, ścieżka UNC dla systemu Windows, którą teraz otworzyłem, jest file:////$MACHINE/$SHARENAME/index.html
(chociaż z jakiegoś powodu również to rozumie file://$MACHINE/...
)