rpcgen 简介
rpcgen可以自动生成RPC服务器程序的大多数代码,它的输入为一个规格说明文件,它的输出为一个C语言的源程序。规格文件(*.x)包含常量、全局数据类型以及远程过程的声明。Rpcgen产生的代码包含了实现客户机和服务器程序所需要的大部分源代码。他包括参数整理、发送RPC报文、参数和结果的外部数据表示以及本地数据表示的转换等。不过在由rpcgen生成的源文件中,没有过程的具体实现,所以程序员必须要手工编辑这些文件,实现这些过程。
自动生成的rpc文件
文件名 | 作用 |
---|---|
Makefile.file | 该文件用于编译所有客户机,服务器代码 |
File_clnt.c | 该文件包含client_stub,程序员一般不用修改 |
File_svc.c | 该文件包含server_stub,程序员一般不用修改 |
File.h | 该文件包含了从说明中产生的所有XDR类型 |
File_xdr.c | 该文件包含了客户机和服务器stub所需的XDR过滤器,程序员一般不用修改 |
File_server.c | 如果生成此文件,则该文件包含远程服务的stub |
File_client.c | 如果生成此文件,则该文件包含了骨架客户机程序。 |
rpcgen的命令行选项
hades@hades:~/c_code$ rpcgen --help
usage: rpcgen infile
rpcgen [-abkCLNTM][-Dname[=value]] [-i size] [-I [-K seconds]] [-Y path] infile
rpcgen [-c | -h | -l | -m | -t | -Sc | -Ss | -Sm] [-o outfile] [infile]
rpcgen [-s nettype]* [-o outfile] [infile]
rpcgen [-n netid]* [-o outfile] [infile]
options:
-a generate all files, including samples
-b backward compatibility mode (generates code for SunOS 4.1)
-c generate XDR routines
-C ANSI C mode
-Dname[=value] define a symbol (same as #define)
-h generate header file
-i size size at which to start generating inline code
-I generate code for inetd support in server (for SunOS 4.1)
-K seconds serv