fcntl(5) fcntl(5)
NAME
fcntl - Optionen für die Steuerung von Dateien
SYNTAX
#include <fcntl.h>
BESCHREIBUNG
Die Include-Datei <fcntl.h> definiert die folgenden Anfragen und Para-
meter zum Gebrauch durch die Funktionen fcntl() und open().
Eindeutige Werte für die bei fcntl() angegebenen Kommandos sind:
FDUPFD Dateideskriptor duplizieren
FGETFD Dateideskriptor-Flags abrufen
FSETFD Dateideskriptor-Flags setzen
FGETFL Dateistatus-Flags abrufen
FSETFL Dateistatus-Flags setzen
FGETLK Satzsperrinformationen abrufen
FSETLK Satzsperrinformationen setzen
FSETLKW Satzsperrinformationen setzen; warten, falls blockiert
FGETOWN Prozeß- oder Prozeßgruppen-ID lesen, um SIGURG-Signale
zu empfangen
FSETOWN Prozeß- oder Prozeßgruppen-ID schreiben, um SIGURG-
Signale zu empfangen
Dateideskriptor-Flags für fcntl():
FDCLOEXEC Dateideskriptor nach Ausführen einer exec-Funktion
schließen
Eindeutige Werte für ltype, um mit fcntl() Datensätze zu sperren:
FRDLCK Gemeinsam benutzte Sperre oder Lesesperre
FUNLCK Entsperren
FWRLCK Exklusiv- oder Schreibsperre
Die für lwhence, SEEKSET, SEEKCUR und SEEKEND verwendeten Werte
sind wie in <unistd.h> beschrieben definiert.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
fcntl(5) fcntl(5)
Wertegruppen für das Argument oflag von open() (bitweise verschieden):
OCREAT Datei erstellen, falls sie nicht existiert
OEXCL Exklusive Benutzung
ONOCTTY Kein steuerndes Terminal zuweisen
OTRUNC Datei abschneiden
Dateistatus-Flags für open() und fcntl():
OAPPEND Appendmodus setzen
ONDELAY Keine (Prozeß-)Blockierung
ORDWR Öffnen zum Lesen und Schreiben
ONONBLOCK Entsperrmodus (POSIX)
OSYNC Synchrones Schreiben
Maske für die Anwendung von Dateizugriffsverfahren:
OACCMODE Maske für Dateizugriffsverfahren
Dateizugriffsverfahren für open() und fcntl():
ORDONLY Öffnen zum Lesen
ORDWR Öffnen zum Lesen und Schreiben
OWRONLY Öffnen zum Schreiben
Die symbolischen Namen für Dateimodi, die als Werte von modet verwen-
det werden können, sind wie in <sys/types.h> beschrieben definiert.
Asynchroner E/A-spezifischer Dateimerker:
FRAIOSIG Signal bei Jobende erzeugen (definiert in <file.h>).
Dieser Merker definiert einen spezifischen Modus, der
im Zusammenhang mit asynchroner E/A relevant ist. Der
Merker ist dateispezifisch.
Ist der Merker für eine Datei gesetzt, dann wird für
alle asynchronen Lese- und Schreibaufträge das Signal
SIGEMT an den auftraggebenden Prozeß gesendet, wenn der
asynchrone E/A-Auftrag beendet ist.
Standardmäßig ist dieser Modus nicht eingestellt [siehe
auch aio(7)].
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
fcntl(5) fcntl(5)
Die Struktur flock beschreibt eine Dateisperre. Sie beinhaltet die
folgenden Komponenten:
short ltype; /* Sperrtyp */
short lwhence; /* Offsettyp */
offt lstart; /* Relativer Offset in Bytes */
offt llen; /* Größe; wenn 0, dann bis EOF (Dateiende) */
long lsysid; /* zurückgegeben mit FGETLK */
pidt lpid; /* zurückgegeben mit FGETKL */
Die Typen modet, offt und pidt sind wie in <sys/types.h> beschrie-
ben definiert.
Folgende Funktionsprototypen können auch als Makros definiert sein:
int creat(const char *path, modet mode);
int fcntl(int fildes, int cmd, ...);
int open(const char *path, int oflag, ...);
Durch Einbinden der Include-Datei <fcntl.h> können auch alle Symbole
aus <sys/stat.h> und <unistd.h> angezeigt werden.
Die Struktur flock64 ist in derselben Weise wie die Struktur flock
definiert, mit Ausnahme der folgenden Komponenten:
off64t lstart Relativer Offset in Bytes.
off64t llen Größe.
Zusätzliche Werte für das von fcntl() verwendete Argument cmd:
FGETLK64 Abrufen von Informationen zu Satzsperren über die
Struktur struct flock64.
FSETLK64 Einrichten einer Satzsperre über die Struktur struct
flock64.
FSETLKW64 Einrichten einer Satzsperre mit Blockierung über die
Struktur struct flock64.
Ein zusätzliches, von open() und fcntl() verwendetes Dateistatus-Flag
ist definiert:
OLARGEFILE Das Offset-Maximum in der internen Beschreibung der
offenen Datei ist der höchste Wert, der in einem Objekt
des Typs off64t korrekt dargestellt werden kann.
Folgende Funktionsprototypen können auch als Makros definiert sein:
int creat64(const char *path, modet mode);
int open64(const char *path, int oflag, ...);
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
fcntl(5) fcntl(5)
SIEHE AUCH
creat(2), exec(2), fcntl(2), open(2), unistd(4), lfs(5), stat(5),
types(5), aio(7).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98