Flock - задава или премахва - меко - блокиране (препоръчително заключване) на отворен файл -
ИМЕстадо - задава или премахва "мекото" заключване (препоръчително заключване) на отворен файл
int flock(int fd, int операция);
ОПИСАНИЕЗадава или освобождава меко заключване на отворен файл. Файлът е указан от файловия дескриптор fd.
Разрешени са следните операции:
LOCK_SH (споделено заключване. Множество процеси едновременно могат да държат споделено заключване на файл едновременно.);
LOCK_EX (изключително заключване. Само един процес по всяко време може да поддържа изключително заключване на файл.);
LOCK_UN (отключване на файл);
LOCK_NB (Не заключвайте файл, когато вече е заключен; тази стойност може да бъде зададена чрез операцията за логическо добавяне или други операции).
Един файл не може да има едновременно споделена и изключителна ключалка. Файлът (т.е. inode) е заключен , а не файловият дескриптор. Следователно dup(2) и fork(2) не създават множество екземпляри на ключалката.
ВЪРНАТА СТОЙНОСТПри успех се връща нулева стойност. При грешка се връща -1 и errno се задава на подходящата стойност.
КОДОВЕ ЗА ГРЕШКИEWOULDBLOCK Файлът е заключен и флагът LOCK_NB е зададен при извикването на функцията.
КОМФОРТ4.4BSD (извикването на flock(2) се появява за първи път в 4.2BSD).БЕЛЕЖКИflock(2) не заключва файлове, разположени на NFS файлова система; използвайте fcntl(2) за това. Изисква по-нови версии на Linux и сървър, които поддържат блокиране.
Заключвания, предоставени от системни повикванияflock(2) и fcntl(2) имат различна семантика по отношение на дъщерните процеси и dup(2) извикванията.