Nie ma nic szczególnego w liczbie 200. Jest to po prostu przykład użyty na stronie man polecenia flock
; i zdarza się, że jest to duża liczba, więc jest mało prawdopodobne, aby kolidowało z deskryptorem pliku innego pliku otwieranego podczas skryptu.
W swoim komentarzu, pytasz o:
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
nawiasach ()
tworzą podpowłoce; nowy proces, oddzielny od procesu nadrzędnego. Numer 200>/tmp/blah.lockfile
powoduje, że proces ten otwiera się do zapisania na deskryptorze 200 pliku. Polecenia wewnątrz nawiasów są wykonywane wewnątrz tej powłoki.
flock -e 200
uzyskuje wyłączne blokady na pliku wskazywanego przez deskryptor pliku 200. Ekskluzywny blokady oznacza, że każdy, kto próbuje uzyskać blokadę na tym pliku, bądź wyłączne lub dzielone, zablokuje (oczekiwanie), aż ta blokada ma zrzeczono się, lub jeśli nie uda im się zablokować limitu czasu. Tak więc podczas pozostałej części podpowłoki (polecenia echo
i sleep
) blokada będzie utrzymywana przez tę podpowłokę i nikt inny nie może uzyskać tej blokady. Po zakończeniu podpowlekania plik zostanie zamknięty, a blokada zostanie zrezygnowana.
To tylko arbitralny numer deskryptora pliku. – Mat