getsockopt(3N-xs) (X/OPEN SOCKETS) getsockopt(3N-xs)
NAME
getsockopt - Die Optionen des Sockets abrufen
SYNTAX
cc [flag ...] file ... -lxnet [library ...]
#include <sys/socket.h>
int getsockopt(int socket, int level, int optionname,
void *optionvalue, sizet *optionlen);
BESCHREIBUNG
Die Funktion getsockopt ruft den Wert für die durch das Argument
optionname angegebene Option ab, und zwar für den Socket, der durch
das Argument socket angegeben ist. Ist der Optionswert länger als
optionlen, wird der in dem Objekt gespeicherte Wert, auf das das
Argument optionvalue zeigt, stillschweigend abgeschnitten. Andern-
falls wird das Objekt, auf das das Argument optionlen zeigt, so geän-
dert, daß es die tatsächliche Länge des Werts angibt.
Das Argument level gibt die Protokollebene für die Option an. Zum
Abrufen von Optionen auf Socket-Ebene muß das Argument level als
SOLSOCKET angegeben werden. Zum Abrufen von Optionen auf anderen Ebe-
nen muß die entsprechende Protokollnummer für das Protokoll angegeben
werden, das die Option steuert. Soll beispielsweise angegeben werden,
daß eine Option vom TCP (Transport Control Protocol) interpretiert
wird, muß level auf die Protokollnummer des TCP gesetzt werden. Diese
kann dem Header <netinet/in.h> entnommen oder über getprotobyname
ermittelt werden.
Das Argument optionname gibt eine einzelne abzurufende Option an.
Dieses Argument kann einen der folgenden, in <sys/socket.h> definier-
ten Werte haben:
SODEBUG Gibt an, ob Testdaten aufgezeichnet werden. Diese
Option speichert einen ganzzahligen Wert (int).
SOACCEPTCONN Gibt an, ob der Socket empfangsbereit ist. Diese
Option speichert einen ganzzahligen Wert (int).
SOBROADCAST Gibt an, ob die Übertragung von Broadcast-Meldungen
unterstützt wird (falls dies vom Protokoll unterstützt
wird). Diese Option speichert einen ganzzahligen Wert
(int).
SOREUSEADDR Gibt an, ob die Regeln für die Gültigkeitsprüfung der
für bind angegebenen Adressen die Wiederverwendung
lokaler Adressen zulassen soll (sofern dies vom Proto-
koll unterstützt wird). Diese Option speichert einen
ganzzahligen Wert (int).
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
getsockopt(3N-xs) (X/OPEN SOCKETS) getsockopt(3N-xs)
SOKEEPALIVE Gibt an, ob Verbindungen durch die Übertragung von
Meldungen in regelmäßigen Abständen aktiv bleiben
(sofern dies vom Protokoll unterstützt wird).
Wenn der verbundene Socket auf diese Meldungen nicht
antwortet, wird die Verbindung abgebrochen und Pro-
zesse, die auf diesen Socket schreiben, werden durch
ein Signal SIGPIPE benachrichtigt. Diese Option spei-
chert einen ganzzahligen Wert (int).
SOLINGER Gibt an, ob der Socket bei der Ausgabe von close war-
ten soll, wenn noch Daten vorhanden sind. Wenn
SOLINGER gesetzt ist, blockiert das System den Prozeß
während close so lange, bis es die Daten übertragen
kann oder bis das Ende des in der Komponente llinger
angegebenen Zeitraums erreicht ist, je nachdem, welche
Bedingung zuerst eintritt. Wenn SOLINGER nicht ange-
geben ist und close ausgegeben wird, verarbeitet das
System den Aufruf so, daß der Prozeß so schnell wie
möglich fortgesetzt werden kann. Diese Option spei-
chert eine linger-Struktur.
SOOOBINLINE Gibt an, ob der Socket empfangene Out-of-Band-Daten
(als dringend markierte Daten) im normalen Datenstrom
beläßt. Diese Option speichert einen ganzzahligen Wert
(int).
SOSNDBUF Gibt Daten zur Größe des Sendepuffers aus. Diese
Option speichert einen ganzzahligen Wert (int).
SORCVBUF Gibt Daten zur Größe des Empfangspuffers aus. Diese
Option speichert einen ganzzahligen Wert (int).
SOERROR Gibt Daten zum Fehlerstatus aus und löscht diesen.
Diese Option speichert einen ganzzahligen Wert (int).
SOTYPE Gibt den Socket-Typ aus. Diese Option speichert einen
ganzzahligen Wert (int).
Bei booleschen Optionen gibt 0 die Deaktivierung und 1 die Aktivierung
an.
Optionen auf anderen Protokollebenen weichen hinsichtlich Format und
Name voneinander ab.
RÜCKGABEWERT
Bei erfolgreicher Ausführung gibt getsockopt 0 zurück. Andernfalls
wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
getsockopt(3N-xs) (X/OPEN SOCKETS) getsockopt(3N-xs)
FEHLER
Die Funktion getsockopt schlägt fehl, wenn eine der folgenden Bedin-
gungen zutrifft:
EBADF Das Argument socket ist kein gültiger Dateideskriptor.
ENOPROTOOPT Die Option wird vom Protokoll nicht unterstützt.
ENOTSOCK Das Argument socket verweist nicht auf einen Socket.
EINVAL Die angegebene Option ist auf der angegebenen Socket-
Ebene nicht gültig.
EOPNOTSUPP Die Option wird vom Socket-Protokoll nicht unter-
stützt.
Die Funktion getsockopt kann fehlschlagen, wenn eine der folgenden
Bedingungen zutrifft:
EINVAL Der Socket wurde geschlossen.
ENOBUFS Die im System verfügbaren Ressourcen reichen für die
Ausführung des Aufrufs nicht aus.
ENOSR Die verfügbaren STREAMS-Ressourcen reichen für die
Ausführung der Operation nicht aus.
SIEHE AUCH
close(2), bind(3N-xs), getprotoent(3N-xs), getsockopt(3N-xs),
socket(3N-xs), ip(7).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98