Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ rpcgen(NC) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought


 rpcgen(NC)                     6 January 1993                     rpcgen(NC)


 Name

    rpcgen - an RPC protocol compiler

 Syntax


    rpcgen infile
    rpcgen -h [-o outfile] [inputfile]
    rpcgen -c [-o outfile] [infile]
    rpcgen -s transport [-o outfile] [infile]
    rpcgen -l [-o outfile] [infile]
    rpcgen -m [-o outfile] [infile]


 Description

    rpcgen is a tool that generates C code to implement an RPC protocol.  The
    input to rpcgen is a language known as RPC Language (Remote Procedure
    Call Language).  Information about the syntax of RPC Language is avail-
    able in the `rpcgen' Programming Guide.

    rpcgen is normally used as in the first syntax where it takes an input
    file and generates four output files.  If the infile is named proto.x,
    then rpcgen will generate a header file in proto.h, XDR routines in
    proto_xdr.c, server-side stubs in proto_svc.c, and client-side stubs in
    proto_clnt.c.

    The other syntax examples shown above are used when one does not want to
    generate all the output files, but only a particular one.  Their usage is
    described below.

    The C-preprocessor, cpp(CP), is run on all input files before they are
    actually interpreted by rpcgen, so all the cpp directives are legal
    within an rpcgen input file.  For each type of output file, rpcgen
    defines a special cpp symbol for use by the rpcgen programmer:

    RPC_HDR     defined when compiling into header files

    RPC_XDR     defined when compiling into XDR routines

    RPC_SVC     defined when compiling into server-side stubs

    RPC_CLNT    defined when compiling into client-side stubs

    In addition, rpcgen does some preprocessing of its own.  Any line begin-
    ning with ``%'' is passed directly into the output file, uninterpreted by
    rpcgen.

    You can customize some of your XDR routines by leaving those data types
    undefined.  For every undefined data type, rpcgen will assume that there
    exists a routine with the name xdr prepended to the name of the unde-
    fined type.

 Options


    -c   compile into XDR routines

    -h   compile into C data-definitions (a header file)

    -l   compile into client-side stubs

    -s transport
         compile into server-side stubs, using the the given transport.  The
         supported transports are udp and tcp.  This option may be invoked
         more than once so as to compile a server that serves multiple trans-
         ports.

    -m   compile into server-side stubs, but do not produce a main() routine.
         This option is useful if you want to supply your own main().

    -o outfile
         specify the name of the output file.  If none is specified, standard
         output is used (-c, -h, -l, and -s modes only).

 Bugs

    Nesting is not supported.  As a work-around, structures can be declared
    at the top-level and their names can be used within other structures in
    order to achieve the same effect.

    Name clashes can occur when using program definitions, since the apparent
    scoping does not really apply.  Most of these can be avoided by giving
    unique names for programs, versions, procedures, and types.


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