./usr/include
.x
/usr/include/rpcsvc/rquota.x
Cソースコードのように見えますが(file /usr/include/rpcsvc/rquota.x
結果はにありますC source, ASCII text
)、有効なCではありません(キーワードを参照)program
。version
正確には何ですか?拡張機能が短すぎて一部のサイトが間違っているか不完全であるため、Googleで検索するのは困難です(例:ウィキペディア「前のDirectXファイル」と言います)。
答え1
彼らは正しいSunRPCプロトコルベース(RPCはリモートプロシージャコールを表します)。各ファイルは通常、これらのRPCとそれを実装するプログラムで使用されるデータ構造を記述します。たとえば、yppasswd.x
Yellow Pagesパスワード更新プロトコルを説明すると、理解しやすくなります。
program YPPASSWDPROG {
version YPPASSWDVERS {
/*
* Update my passwd entry
*/
int
YPPASSWDPROC_UPDATE(yppasswd) = 1;
} = 1;
} = 100009;
struct passwd {
string pw_name<>; /* username */
string pw_passwd<>; /* encrypted password */
int pw_uid; /* user id */
int pw_gid; /* group id */
string pw_gecos<>; /* in real life name */
string pw_dir<>; /* home directory */
string pw_shell<>; /* default shell */
};
struct yppasswd {
string oldpass<>; /* unencrypted old password */
passwd newpw; /* new passwd entry */
};
yppasswd
これは、構造体をパラメータとして使用し、1つを返すRPC YPパスワード更新プロシージャを宣言しますint
。このファイルにはyppasswd
構造そのものとpasswd
使用される構造も記述されています。
これらのファイルは通常、スタブサーバーとrpcgen
クライアントコードを生成するために使用され、プロトコルのRPCサーバーおよび/またはRPCクライアントを実装するために使用できます。サンプルクライアントとサーバーコードを生成することもできます。
図からわかるように先行は達成するのが難しい、これrpcgen(1)
マンページにはより多くの情報があります。
答え2
rpcgen
Linuxシステムの手動スニペット:
rpcgen is a tool that generates C code to implement an RPC protocol. The
input to rpcgen is a language similar to C known as RPC Language (Remote
Procedure Call Language).
rpcgen is normally used as in the first synopsis where it takes an input
file and generates up to 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.
望むよりman rpcgen
。