fcntl

FCNTL(2)                         Systemaufrufe                        FCNTL(2)



BEZEICHNUNG
       fcntl - File-Descriptor Handling

SYNOPSIS
       #include <unistd.h>
       #include <fcntl.h>

       int fcntl(int fd, int cmd);
       int fcntl(int fd, int cmd, long arg);

DESCRIPTION
       fcntl führt eine von vielen unterschiedlichen Operationen auf dem
       File-Deskriptor fd aus.  Die jeweilige Operation wird durch den
       Parameter cmd angegeben:

       F_DUPFD  Kopiert fd in arg, fd wird vorher geschlossen, wenn es nötig
                ist

                Die gleiche Funktionalität kann einfacher mit der Routine
                dup2(2) erhalten werden.

                Die alten und neuen Deskriptoren können ausgetauscht werden.
                Sie verwenden beide die gleichen Locks, Positionszeiger und
                Flags.  Wenn beispielsweise die Dateiposition des einen
                Deskriptors mit lseek geändert wird, dann ist sie
                gleichzeitig auch beim anderen Deskriptor geändert.

                Die beiden Deskriptoren teilen sich jedoch nicht das close-on-
                exec Flag.

                Bei Erfolg wird der neue Deskriptor zurückgegeben.

       F_GETFD  Liest das close-on-exec Flag.  Wenn das low-order-Bit 0 ist,
                dann bleibt die Datei bei einem exec geöffnet, ansonsten wird
                sie geschlossen.

       F_SETFD  Setzt das close-on-exec Flag auf den Wert, der durch arg
                angegeben wurde.  (Nur das LSB (Least Significant Bit) wird
                benutzt.)


       F_GETFL  Liest die Flags des Deskriptors.  (Alle Flags, die mit open(2)
                gesetzt werden können, werden zurückgegeben.)

       F_SETFL  Setzt die Flags des Deskriptors auf die in arg angegebenen
                Werte.  Nur O_APPEND und O_NONBLOCK können gesetzt werden.

                Diese Flags werden von allen Kopien eines File-Deskriptors
                geteilt, die mit dup(2) o.ä. erzeugt wurden.

                Die einzelnen Flags und deren Bedeutung sind in open(2).
                beschrieben.

       F_GETLK, F_SETLK und F_SETLKW
                Behandelt ausschlieÃliche Locks (discretionary file locks).

       F_GETOWN Gibt die Prozeà ID (oder ProzeÃgruppe) vom Besitzer eines
                Sockts zurück.

                ProzeÃgruppen werden als negative Werte zurückgegeben.

       F_SETOWN Setzt die Prozeà ID oder ProzeÃgruppe für den Socket.

                Bei diesen Befehlen sind Besitz gleichbedeutend mit dem
                Empfang von SIGIO oder SIGURG Signalen.

                ProzeÃgruppen werden als negative Werte angegeben..

RÃCKGABEWERTE
       Die Rückgabewerte sind abhängig von der ausgeführten Operation:

       F_DUPFD  Der neue File-Deskriptor.

       F_GETFD  Der Inhalt des Flags.

       F_GETFL  Der Inhalt der Flags.

       F_GETOWN Der Besetzer des Deskriptors.

       Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER
       EBADF    fd ist kein geöffneter File-Deskriptor.

       EINVAL   Bei F_DUPFD: arg ist negativ oder gröÃer als der maximal
                erlaubte Wert.

       EMFILE   Bei F_DUPFD: Der Prozeà hat bereits das Maximum an File-
                Deskriptoren geöffnet.

BEMERKUNGEN
       Die Fehler, die von dup2(2) zurückgegeben werden, sind anders als die
       von F_DUPFD.

ABGESTIMMT MIT
       SVID, AT&T, POSIX, X/OPEN, BSD 4.3.

AUTOREN
       Drew Eckhardt, Michael Haardt, Ian Jackson und Martin Schulze.  Ins
       Deutsche übersetzt von Martin Schulze (joey@infodrom.north.de).

SIEHE AUCH
       open(2), dup2(2), F_DUPFD(2), F_GETFD(2), F_GETFL(2), F_GETLK(2),
       socket(2).



Linux                           27. Januar 1996                       FCNTL(2)