Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sendmsg.xs(3N-xs) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

poll(2)

select(3C)

getsockopt(3N-xs)

recv(3N-xs)

recvfrom(3N-xs)

recvmsg(3N-xs)

send(3N-xs)

sendto(3N-xs)

shutdown(3N-xs)

socket(3N-xs)

sendmsg(3N-xs)                (X/OPEN SOCKETS)               sendmsg(3N-xs)

NAME
     sendmsg - Eine Meldung über einen Socket mit Hilfe einer Meldungs-
     struktur senden

SYNTAX
     cc [flag ...] file ... -lxnet [library ...]

     #include <sys/socket.h>

     ssizet sendmsg(int socket, const struct msghdr *message,
                      int flags);

BESCHREIBUNG
     Die Funktion sendmsg sendet eine Meldung über einen verbindungs-
     orientierten Socket oder einen nicht verbundenen Socket. Bei einem
     Socket ohne Verbindung wird die Meldung an die durch msghdr angegebene
     Adresse gesendet. Bei einem verbindungsorientierten Socket wird die
     Zieladresse in msghdr ignoriert.

     Für die Funktion sendmsg können folgende Argumente angegeben werden:

     socket       Gibt den Dateideskriptor für den Socket an.

     message      Zeigt auf eine msghdr-Struktur, die sowohl die Ziela-
                  dresse als auch die Puffer für die abgehende Meldung ent-
                  hält. Länge und Format der Adresse sind von der Adreßfa-
                  milie des Sockets abhängig. Die Komponente msgflags wird
                  ignoriert.

     flags        Gibt die Art der Meldungsübertragung an. Die Anwendung
                  kann 0 oder die folgenden Flags angeben:

                  MSGEOR    Beendet einen Satz (falls vom Protokoll unter-
                             stützt).

                  MSGOOB    Sendet Out-of-Band-Daten über Sockets, die
                             eine solche Übertragung unterstützen. Bedeu-
                             tung und Semantik von Out-of-Band-Daten sind
                             protokollspezifisch.

     Eine erfolgreiche Übertragung eines Aufrufs sendmsg bedeutet noch
     nicht, daß auch die Meldung übertragen wurde. Ein Return-Wert von -1
     weist nur auf lokal gefundene Fehler hin.

     Ist auf dem Socket, von dem aus gesendet wird, kein Platz für die zu
     übertragende Meldung verfügbar, und ist im Dateideskriptor des Sockets
     ONONBLOCK nicht gesetzt, blockiert sendmsg den Prozeß so lange, bis
     Platz verfügbar ist. Ist auf dem Socket, von dem aus gesendet wird,
     kein Platz für die zu übertragende Meldung verfügbar, und ist im
     Dateideskriptor des Sockets ONONBLOCK gesetzt, schlägt sendmsg fehl.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

sendmsg(3N-xs)                (X/OPEN SOCKETS)               sendmsg(3N-xs)

     Wenn das Socket-Protokoll Broadcasting unterstützt und die angegebene
     Adresse eine Broadcast-Adresse für das Socket-Protokoll ist, schlägt
     sendmsg fehl, wenn die Option SOBROADCAST für den Socket nicht
     gesetzt ist.

RÜCKGABEWERT
     Bei erfolgreicher Ausführung gibt sendmsg die Anzahl der gesendeten
     Byte zurück. Andernfalls wird -1 zurückgegeben und errno gesetzt, um
     den Fehler anzuzeigen.

FEHLER
     Die Funktion sendmsg schlägt fehl, wenn eine der folgenden Bedingungen
     zutrifft:

     EAFNOSUPPORT    Adressen in der angegebenen Adreßfamilie können mit
                     diesem Socket nicht verwendet werden.

     EBADF           Das Argument socket ist kein gültiger Dateideskriptor.

     ECONNRESET      Eine Verbindung wurde von einem Peer geschlossen.

     EINTR           sendmsg wurde durch ein Signal unterbrochen, bevor
                     Daten übertragen werden konnten.

     EINVAL          Die Summe der Werte für iovlen überschreitet ssizet.

     EMSGSIZE        Die Meldung ist zu lang, um in einer einzigen Opera-
                     tion gesendet zu werden, wie für den Socket erforder-
                     lich.

     ENOTCONN        Der Socket ist verbindungsorientiert, aber nicht ver-
                     bunden.

     ENOTSOCK        Das Argument socket verweist nicht auf einen Socket.

     EOPNOTSUPP      Das Argument socket ist einem Socket zugeordnet, der
                     mindestens einen der in flags gesetzten Werte nicht
                     unterstützt.

     EPIPE           Der Socket ist nicht für Schreiben aktiviert, oder der
                     Socket ist verbindungsorientiert und der Peer ist
                     geschlossen oder für Lesen nicht aktiviert. Trifft
                     letzteres zu, und ist der Socket vom Typ SOCKSTREAM,
                     wird das Signal SIGPIPE für den aufrufenden Prozeß
                     generiert.

     EWOULDBLOCK oder EAGAIN
                     Der Dateideskriptor des Sockets ist als ONONBLOCK
                     markiert und die angeforderte Operation würde blok-
                     kiert.




Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

sendmsg(3N-xs)                (X/OPEN SOCKETS)               sendmsg(3N-xs)

     Gehört der Socket zur Adreßfamilie AFUNIX, schlägt sendmsg fehl, wenn
     eine der folgenden Bedingungen zutrifft:

     EACCES          Für eine Komponente der Pfadangabe wird die Suchbe-
                     rechtigung verweigert, oder der Schreibzugriff auf den
                     angegebenen Socket wird verweigert.

     EIO             Beim Lesen aus dem oder Schreiben in das Dateisystem
                     ist ein E/A-Fehler aufgetreten.

     ELOOP           Bei der Übersetzung des Pfadnamens in die Socket-
                     Adresse wurden zu viele symbolische Links gefunden.

     ENAMETOOLONG    Eine Komponente eines Pfadnamens überschreitet
                     {NAMEMAX} Zeichen, oder ein ganzer Pfadname ist län-
                     ger als {PATHMAX} Zeichen.

     ENOENT          Eine Komponente des Pfadnamens verweist nicht auf eine
                     vorhandene Datei, oder der Pfadname ist leer.

     ENOTDIR         Eine Komponente in der Pfadangabe in der Socket-
                     Adresse ist kein Verzeichnis.

     Die Funktion sendmsg kann fehlschlagen, wenn eine der folgenden Bedin-
     gungen zutrifft:

     EDESTADDRREQ    Der Socket ist nicht verbindungsorientiert, die Peer-
                     Adresse ist nicht gesetzt, und es wurde keine Ziela-
                     dresse angegeben.

     EHOSTUNREACH    Der Ziel-Host kann nicht erreicht werden (möglicher-
                     weise weil er heruntergefahren ist, oder weil er von
                     einem fernen Router nicht erreicht werden kann).

     EINVAL          Die Komponente msgiovlen der msghdr-Struktur, auf die
                     msg zeigt, ist kleiner oder gleich 0 oder größer als
                     {IOVMAX}.

     EIO             Beim Lesen aus dem oder Schreiben in das Dateisystem
                     ist ein E/A-Fehler aufgetreten.

     EISCONN         Eine Zieladresse wurde angegeben, und es handelt sich
                     um einen verbindungsorientierten Socket, der bereits
                     verbunden ist.

     ENETDOWN        Die lokale Schnittstelle zum Ziel ist nicht aktiviert.

     ENETUNREACH     Das Netz ist nicht erreichbar.

     ENOBUFS         Die im System verfügbaren Ressourcen reichen für die
                     Ausführung der Operation nicht aus.



Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

sendmsg(3N-xs)                (X/OPEN SOCKETS)               sendmsg(3N-xs)

     ENOMEM          Der verfügbare Speicher reicht für die Anforderung
                     nicht aus.

     ENOSR           Die verfügbaren STREAMS-Ressourcen reichen für die
                     Ausführung der Operation nicht aus.

     Handelt es sich bei der Adreßfamilie des Sockets um AFUNIX, schlägt
     sendmsg fehl, wenn eine der folgenden Bedingungen zutrifft:

     ENAMETOOLONG    Durch die Auflösung des Pfadnamens eines symbolischen
                     Links wird ein Zwischenergebnis erzeugt, dessen Länge
                     {PATHMAX} überschreitet.

ANWENDUNGSZWECK
     Die Funktionen select und poll können verwendet werden, um festzustel-
     len, wann weitere Daten gesendet werden können.

SIEHE AUCH
     poll(2), select(3C), getsockopt(3N-xs), recv(3N-xs), recvfrom(3N-xs),
     recvmsg(3N-xs), send(3N-xs), sendto(3N-xs), shutdown(3N-xs),
     socket(3N-xs).

































Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026