Available in

(1) (2) (3) (2)/de (2)/es (1)/fr (2)/fr (1)/ja (2)/ja (2)/ko (2)/pl (2)/pt (2)/ru

Contents

BEZEICHNUNG

flock − sperrt und entsperrt Dateien

ÜBERSICHT

#include <sys/file.h>

int flock(int fd, int operation);

BESCHREIBUNG

flock sperrt oder entsperrt eine geöffnete Datei. Der Dateideskriptor wird mittels fd übergeben. Gültige Operationen sind:

LOCK_SH

Gemeinsames Sperren. Mehrere Prozesse können eine Datei zur selben Zeit sperren.

LOCK_EX

Alleiniges Sperren. Nur ein Prozess kann zu einer Zeit eine Datei sperren.

LOCK_UN

Entsperren.

LOCK_NB

Die Operation blockiert nicht bis die Sperre gesetzt werden kann, sondern übergibt die Kontrolle sofort wieder an das aufrufende Programm. Diese Option kann durch Bitweises ODER mit anderen Operationen verknüpft werden.

Eine einzelne Datei kann nicht gleichzeitig gemeinsame und alleinige Sperren enthalten.

Es ist nur die Datei (Inode) gesperrt, nicht aber der Dateideskriptor. Dadurch entstehen bei der Benutzung von dup(2) und fork(2) keine Mehrfachsperrungen.

RÜCKGABEWERT

Bei Erfolg gibt die Funktion 0 zurück. Bei Fehlern wird −1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EWOULDBLOCK

Die Datei ist gesperrt und es ist LOCK_NB gesetzt.

KONFORM ZU

4.4BSD (Der flock(2) Aufruf ist erstmals in 4.2BSD zu finden).

ANMERKUNGEN

flock(2) funktioniert nicht über NFS. Benutzen Sie stattdessen fcntl(2). Das funktioniert auch über NFS, wenn eine hinreichend aktuelle Version von Linux installiert ist und der Server Sperren unterstützt.

flock(2) und fcntl(2) Sperrungen haben unterschiedliche Auswirkungen auf Prozesse, die fork(2) und dup(2) benutzen.

SIEHE AUCH

open(2), close(2), dup(2), execve(2), fcntl(2), fork(2), lockf(3).

Weiterhin gibt es locks.txt und mandatory.txt im Verzeichnis /usr/src/linux/Documentation.

COMMENTS

blog comments powered by Disqus