|
Beschreibung
Die Funktion fcntl() führt Steuerfunktionen auch für Sockets aus.
s bezeichnet den Socket-Deskriptor. cmd wählt die auszuführende Steuerfunktion aus.
Weitere allgemeine Informationen zu dieser Funktion finden Sie im Handbuch "C-Bibliotheksfunktionen für POSIX-Anwendungen".
Folgende Steuerfunktionen werden für Sockets unterstützt:
F_DUPFD
Dupliziert einen Socket-Deskriptor.
F_GETFD
Fragt das zum Socket s gehörende Bit "schließen-bei-exec" ab. Wenn das niederwertige Bit 0 ist, bleibt der Socket bei einem Aufruf von exec() offen, andernfalls wird der Socket bei Aufruf von exec() geschlossen.
F_SETFD
Setzt das zum Socket s gehörende Bit „schließen-bei-exec“ auf das niederwertige Bit des ganzzahligen Wertes, der als dritter Parameter übergeben wird (0 oder 1 wie oben).
F_GETFL
Fragt das Dateistatus-Bit für den Socket s ab.
F_SETFL
Setzt das Dateistatus-Bit für den Socket s auf den ganzzahligen Wert, der als dritter Parameter übergeben wird. Nur bestimmte Bits können gesetzt werden (zum Beispiel O_NONBLOCK für nicht-blockierende Sockets).
F_SETOWN
Für den Socket s kann die Prozess-ID gesetzt werden, wodurch bei Eintreffen einer Nachricht des Prozesses ein SIGIO-Signal zugestellt wird.
F_GETOWN
Fragt die für den Socket s gesetzte Prozess-ID ab.
Returnwert
0:
Bei Erfolg.
-1:
Bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.
Fehler
EBADF
Der Parameter s ist kein gültiger Deskriptor.
EINVAL
cmd oder arg sind für diesen Deskriptor nicht gültig.
EIO
Es ist ein physikalischer Ein-/Ausgabefehler aufgetreten.
EMFILE
cmd ist F_DUPFD und im aufrufenden Prozess ist die maximale Anzahl von offenen Dateideskriptoren erreicht.