/usr/include에 있는 .x 파일은 무엇입니까?

/usr/include에 있는 .x 파일은 무엇입니까?

./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.xYellow 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이는 구조를 매개변수로 사용하고 하나를 반환하는 RPC YP 비밀번호 업데이트 프로시저를 선언합니다 int. 이 파일은 yppasswd구조 자체와 passwd사용되는 구조도 설명합니다.

이러한 파일은 일반적으로 rpcgen스텁 서버 및 클라이언트 코드를 생성하는 데 사용되며, 이는 프로토콜의 RPC 서버 및/또는 RPC 클라이언트를 구현하는 데 사용될 수 있습니다. 샘플 클라이언트 및 서버 코드를 생성할 수도 있습니다.

그림에서 알 수 있듯이선행은 이루기가 어렵다, 이것rpcgen(1)맨페이지에 더 많은 정보가 있습니다.

답변2

rpcgenLinux 시스템의 수동 스니펫:

   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.

관련 정보