W moim systemie plików Linux wskazuje dowiązanie symboliczne 127.0.1.1:+xxxxx
.
Dlaczego znak plus? Czy może być też minus? Dlaczego nie tylko 127.0.1.1:xxxxx
?
W moim systemie plików Linux wskazuje dowiązanie symboliczne 127.0.1.1:+xxxxx
.
Dlaczego znak plus? Czy może być też minus? Dlaczego nie tylko 127.0.1.1:xxxxx
?
Odpowiedzi:
Dowiązania symboliczne, które nie wskazują na plik, nie mają żadnego ogólnego znaczenia. W tym przypadku może to być identyfikator procesu lub port z jakimś specjalnym protokołem wypowiedzianym na nim, lub inny identyfikator. Wszystko zależy od tego, jaki program to zrobił.
Oprogramowanie, które tworzy te linki, po prostu wykorzystuje fakt, że 1) cel dowiązania symbolicznego może nie istnieć, a nawet być kompletnym nonsensem; 2) utworzenie dowiązania symbolicznego jest całkowicie atomową operacją pojedynczego systemu (podobnie jak odczytywanie jego celu), w przeciwieństwie do tworzenia zwykłego pliku, który przyjmuje co najmniej 3 osobne wywołania systemowe.
W ten sposób tworzenie dowiązań symbolicznych może być nadużywane jako sposób blokowania (zapewniania pojedynczej instancji programu), nawet gdy inne mechanizmy mogą być zawodne. Program nie potrzebuje dowiązania symbolicznego, aby faktycznie przekształcić się w prawdziwy plik: dba tylko o to, czy utworzenie łącza się powiedzie, czy też nie, ponieważ już istnieje.
fopen
, fwrite
i fclose
?
open
(a może creat
w starym oprogramowaniu) write
, a close
nie wersje f * oferowane przez stdio. Ale tak, musisz przynajmniej zrobić open
i write
utworzyć plik i włożyć w to coś znaczącego. Teraz, jeśli chcesz, aby jakiś kod „spróbował go utworzyć, jeśli się powiedzie, umieść w nim trochę informacji, w przeciwnym razie przeczytaj niektóre informacje”, drugi proces może po prostu wypróbować go, read
zanim pierwszy będzie miał okazję write
. symlink
unika tego; albo powiedzie się i utwórz link, albo nie, i upewnij się readlink
, że masz informacje dla Ciebie.
O ile mi wiadomo, „+” oznacza, że liczba po adresie IP („xxxxx”) odnosi się do „identyfikatora procesu” (nie portu, który zwykle używa notacji [adres IP]: [numer_portu]).
Możliwe, że ta „notacja” (nie jestem pewien, czy nazwałbym ją „notacją”, ponieważ nie znam żadnej „oficjalnej” dokumentacji) odnosi się do czegoś innego, jeśli jest używana przez określoną aplikację - ale z drugiej strony, to zawsze jest możliwość nie tylko z dowiązaniami symbolicznymi. Jedyne znane mi przypadki (które mogłem znaleźć przy wyszukiwaniu, które nie były zbyt obszerne) „+ XXXX” zawsze odnosiły się do identyfikatora procesu.
/proc
lub /dev
. Czy możesz wyjaśnić, do czego służy to dowiązanie symboliczne?