XDR でのポインターの使用例の表示

このセクションでは、XDR の例でのポインターの使用について説明します。

構造体に人の名前と gnumbers 構造体へのポインターが含まれていて、gnumbers 構造体がその人の総資産と総負債を指定している場合、その構造体は次のように記述できます。

struct pgn {
    char *name;
    struct gnumbers *gnp;
};
この構造に対応する eXternal データ表現 (XDR) ルーチンは、以下のとおりです。

bool_t
xdr_pgn(xdrs, pp)
    XDR *xdrs;
    struct pgn *pp;
{
    if (xdr_string(xdrs, &pp->name, NLEN) &&
      xdr_reference(xdrs, &pp->gnp,
      sizeof(struct gnumbers), xdr_gnumbers))
        return(TRUE);
    return(FALSE);
}