xdr_simple(3N) xdr_simple(3N)
NAME
xdrsimple: xdrbool, xdrchar, xdrdouble, xdrenum, xdrfloat,
xdrfree, xdrint, xdrlong, xdrshort, xdruchar, xdrulong,
xdrushort, xdrvoid - Bibliotheksroutinen für die externe Datendar-
stellung
BESCHREIBUNG
Diese XDR-Bibliotheksroutinen ermöglichen C-Programmierern die maschi-
nenunabhängige Darstellung von einfachen Datenstrukturen. Protokolle
wie das RPC verwenden diese Routinen für die Datendarstellung.
Diese Routinen erfordern die Erzeugung von XDR-Handles [siehe
xdrcreate(3N)].
Wenn Sie eine der XDR-Funktionen verwenden, müssen Sie bei der Über-
setzung die Bibliothek libnsl dazubinden (cc -lnsl).
Routinen
Die Definition der Datenstruktur XDR ist in rpc(3N) zu finden.
#include <rpc/xdr.h>
boolt
xdrbool(XDR *xdrs, boolt *bp);
xdrbool ist eine Umsetzung zwischen booleschen Werten (in C-
Ganzzahlen) und ihrer externen Darstellung. Bei der Verschlüsse-
lung von Daten erzeugt dieser Filter entweder den Wert 1 oder den
Wert 0. Im Erfolgsfall liefert die Routine 1 zurück, ansonsten 0.
boolt
xdrchar(XDR *xdrs, char *cp);
xdrchar ist eine Umsetzung zwischen Zeichen in C und ihrer
externen Darstellung. Die Routine liefert im Erfolgsfall 1 anson-
sten 0 zurück.
Hinweis: Kodierte Daten werden nicht gepackt und belegen jeweils
4 Bytes. Für Zeichenketten ist es ratsam, die Routinen xdrbytes,
xdropaque oder xdrstring zu verwenden [siehe xdrbytes,
xdropaque und xdrstring in xdrcomplex(3N)].
boolt
xdrdouble(XDR *xdrs, double *dp);
xdrdouble ist eine Umsetzung zwischen dem C-Typ double und des-
sen externer Darstellung. Die Routine liefert im Erfolgsfall 1
und im Fehlerfall 0 zurück.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
xdr_simple(3N) xdr_simple(3N)
boolt
xdrenum(XDR *xdrs, enumt *ep);
xdrenum ist eine Umsetzung zwischen dem Typ enum (das sind nor-
male Ganzzahlen) und dessen externer Darstellung. Die Routine
liefert im Erfolgsfall 1 und im Fehlerfall 0 zurück.
boolt
xdrfloat(XDR *xdrs, float *fp);
xdrfloat ist eine Umsetzung zwischen dem C-Typ float und dessen
externer Darstellung. Die Routine liefert im Erfolgsfall 1 und im
Fehlerfall 0 zurück.
void
xdrfree(xdrproct proc, char *objp);
Dies ist eine generische Routine für die Freigabe von Speicher.
Das erste Argument ist die zu verwendende XDR-Routine für das
Objekt, das freigegeben werden soll. Das zweite Argument ist ein
Zeiger auf das freizugebende Objekt.
Hinweis: Der Zeiger, der der Routine übergeben wird, wird nicht
freigegeben, jedoch wird alles (rekursiv) freigegeben, auf das
der Zeiger verweist.
boolt
xdrint(XDR *xdrs, int *ip);
xdrint ist eine Umsetzung zwischen C-Ganzzahlen und ihrer exter-
nen Darstellung. Die Routine liefert im Erfolgsfall 1 und im Feh-
lerfall 0 zurück.
boolt
xdrlong(XDR *xdrs, long *lp);
xdrlong ist eine Umsetzung zwischen dem C-Typ long und dessen
externer Darstellung. Die Routine liefert im Erfolgsfall 1 und im
Fehlerfall 0 zurück.
boolt
xdrshort(XDR *xdrs, short *sp);
xdrshort ist eine Umsetzung zwischen dem C-Typ short und dessen
externer Darstellung. Die Routine liefert im Erfolgsfall 1 und im
Fehlerfall 0 zurück.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
xdr_simple(3N) xdr_simple(3N)
boolt
xdruchar(XDR *xdrs, char *ucp);
xdruchar ist eine Umsetzung zwischen dem C-Typ unsigned und
dessen externer Darstellung. Die Routine liefert im Erfolgsfall 1
und im Fehlerfall 0 zurück.
boolt
xdrulong(XDR *xdrs, unsigned long *ulp);
xdrulong ist eine Umsetzung zwischen dem C-Typ unsigned long
und dessen externer Darstellung. Die Routine liefert im Erfolgs-
fall 1 und im Fehlerfall 0 zurück.
boolt
xdrushort(XDR *xdrs, unsigned short *usp);
xdrushort ist ein Umsetzung zwischen dem C-Typ unsigned short
und dessen externer Darstellung. Die Routine liefert im Erfolgs-
fall 1 und im Fehlerfall 0 zurück.
boolt
xdrvoid(void);
Diese Routine liefert immer 1 zurück. Sie kann an RPC-Routinen
übergeben werden, die zwar einen Funktionsparameter erwarten,
diesen aber nicht auswerten.
SIEHE AUCH
rpc(3N), xdradmin(3N), xdrcomplex(3N), xdrcreate(3N).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98