Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fcntl() - Sockets steuern

&pagelevel(4)&pagelevel

#include <fnctl.h>

int fcntl(int s, int cmd, int arg);

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.