Splice-Subroutine
Zweck
Lässt den Protokollstack zwei Sockets verwalten, die TCP verwenden.
Syntax
#include < sys/types.h >
#include < sys/socket.h >
#include < sys/socket.h >
Beschreibung
Die Subroutine splice ermöglicht TCP die Verwaltung von zwei Sockets, die sich im Status 'Verbunden' befinden, sodass der Aufrufende keine Daten von einem Socket zu einem anderen verschieben kann. Nachdem die Subroutine splice erfolgreich zurückgegeben wurde, muss der Aufrufende die zwei Sockets schließen.
Die beiden Sockets müssen den Typ SOCK_STREAM und das Protokoll IPPROTO_TCPhaben. Die Angabe des Protokolls null funktioniert ebenfalls.
Parameter
| Element | Beschreibung |
|---|---|
| socket1, socket2 | Gibt einen Socket an, der erfolgreich connect () oder accept () durchlaufen hat. |
| Flags | Auf null gesetzt. Derzeit ignoriert. |
Rückgabewerte
| Element | Beschreibung |
|---|---|
| 0 | Erfolgreiche Ausführung. |
| -1 | Zeigt einen Fehler an. Der spezifische Fehler wird durch die Fehlernummer angegeben. |
Fehlercodes
| Element | Beschreibung |
|---|---|
| EBADF | socket1 oder socket2 ist ungültig. |
| ENOTSOCK (ENOTSOCK) | socket1 oder socket2 bezieht sich auf eine Datei, nicht auf ein Socket. |
| EOPNOTSUPP | socket1 oder socket2 weist nicht den Typ SOCK_DATENSTROMauf. |
| EINVAL | Die Parameter sind ungültig. |
| EEXIST | socket1 oder socket2 ist bereits verbunden. |
| ENOTCONN | socket1 oder socket2 befindet sich nicht im Status 'Verbunden'. |
| EAFNOSUPPORT | Die Adressfamilie socket1 oder socket2 wird für diese Subroutine nicht unterstützt. |