flock

Autres langues

Langue: de

Version: 28. August 2002 (openSuse - 09/10/07)

Autres sections - même nom

Section: 2 (Appels système)

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.