Các tập tin .x trong / usr / bao gồm những gì?


7

My /usr/includechứa một số tệp có .xphần mở rộng tệp, chẳng hạn như /usr/include/rpcsvc/rquota.x.

Chúng có vẻ giống như nguồn C (chạy file /usr/include/rpcsvc/rquota.xkết quả C source, ASCII text), nhưng chúng không hợp lệ C (ví dụ programversioncó vẻ như từ khóa).

Họ chính xác là gì? Thật khó để google đưa ra tiện ích mở rộng ngắn và một số trang web chỉ sai / không đầy đủ (ví dụ Wikipedia nói "tệp DirectX cũ").

Câu trả lời:


13

Chúng là các mô tả về các giao thức dựa trên SunRPC (RPC là viết tắt của Cuộc gọi thủ tục từ xa). Mỗi tệp thường mô tả các cấu trúc dữ liệu được sử dụng bởi các RPC này và các chương trình triển khai chúng; ví dụ: yppasswd.xmô tả giao thức cập nhật mật khẩu Trang Vàng và tương đối dễ hiểu:

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 */
};

Điều này tuyên bố một thủ tục cập nhật mật khẩu RPC YP, lấy một yppasswdcấu trúc làm đối số và trả về một int. Các tập tin cũng mô tả yppasswdchính cấu trúc, cùng với passwdcấu trúc mà nó sử dụng.

Các tệp này thường được sử dụng rpcgenđể tạo mã máy chủ và mã máy khách, sau đó có thể được sử dụng để triển khai máy chủ RPC cho giao thức và / hoặc máy khách RPC. Nó thậm chí có thể tạo ví dụ mã máy khách và máy chủ.

Theo chỉ định của Kusalananda , rpcgen(1)trang này có nhiều thông tin hơn.


6

Đoạn trích từ rpcgenhướng dẫn trên hệ thống 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.

Xem man rpcgen.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.