xdr_admin(3N) xdr_admin(3N)
NAME
xdradmin: xdrgetpos, xdrinline, xdrreceof, xdrsetpos - Biblio-
theksroutinen für die XDR-Datendarstellung
BESCHREIBUNG
XDR-Bibliotheksroutinen ermöglichen C-Programmierern die maschinenun-
abhängige Darstellung beliebiger Datenstrukturen. Protokolle wie RPC
verwenden diese Routinen für die Datendarstellung.
Diese Routinen haben hauptsächlich mit der Verwaltung von XDR-Streams
zu tun.
Wenn Sie eine der XDR-Funktionen verwenden, müssen Sie bei der Über-
setzung die Bibliothek libnsl dazubinden (cc -lnsl).
Routinen
Die Definition der XDR-Datenstruktur ist unter rpc(3N) zu finden.
#include <rpc/xdr.h>
uint
xdrgetpos(const XDR *xdrs);
Dies ist ein Makro, das die Routine zur Positionsermittlung auf-
ruft, die auf den XDR-Handle xdrs verweist. Die Routine liefert
einen vorzeichenlosen Ganzzahlwert zurück, der die Position im
XDR-Bytestrom angibt.
long *
xdrinline(XDR *xdrs, const int len);
Dies ist ein Makro, das die "in-line"-Routine des XDR-Handle xdrs
aufruft. Die Routine liefert einen Zeiger auf einen zusammenhän-
genden Teil des XDR-Puffers zurück. len ist die Länge des Puffers
in Bytes.
Hinweis: Die Zeiger wird auf den Typ long * gesetzt.
Warnung:
xdrinline kann NULL (0) zurückliefern, wenn kein zusammenhängen-
des Pufferstück angelegt werden kann. Das Verhalten wird sich
daher je nach Handle unterscheiden. Das Makro existiert nur aus
Effizienzgründen. Anwendungen sollten aus Gründen der Portabili-
tät nicht von diesem Makro abhängen.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
xdr_admin(3N) xdr_admin(3N)
boolt
xdrreceof(XDR *xdrs);
Diese Routine kann nur auf Handles durchgeführt werden, die durch
xdrreccreate erzeugt wurden. Nach der Verarbeitung des aktuellen
Datensatzes im XDR-Handle im Stream liefert die Routine eine 1
zurück, falls keine weiteren Eingabedaten da sind, ansonsten 0.
boolt
xdrsetpos(XDR *xdrs, const uint pos);
Dies ist ein Makro, das die Routine zur Positionierung aufruft,
das auf den XDR-Handle xdrs verweist. Der Parameter pos ist ein
Positionswert, der von xdrgetpos geliefert wurde. Die Routine
liefert 1 zurück, wenn im XDR-Handle nicht neu positioniert
wurde, ansonsten 0.
Warnung:
Bei einigen XDR-Handletypen ist es schwierig, neu zu positionie-
ren, weshalb die Routine bei einigen Handles fehlschlagen kann,
bei anderen jedoch nicht. Deshalb sollten sich Anwendungen aus
Gründen der Portabilität nicht auf diese Routine verlassen.
SIEHE AUCH
rpc(3N), xdrcomplex(3N), xdrcreate(3N), xdrsimple(3N).
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98