Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Тестовые примеры / ch12 / scan2 / scan2
.h#ifndef SCAN2_H
#define SCAN2_H
#include <rpc/rpc.h>
#ifdef __cplusplus
extern "C" {
#endif
#define MAXNLEN 255
typedef char *name_t;
typedef struct arg_rec *argPtr;
struct arg_rec {
name_t dir_name;
int lflag;
};
typedef struct arg_rec arg_rec;
typedef struct dirinfo *infolist;
struct dirinfo {
name_t name;
u_int uid;
long modtime;
infolist next;
};
typedef struct dirinfo dirinfo;
struct res {
int errno;
union {
infolist list;
} res_u;
};
typedef struct res res;
#define SCANPROG ((unsigned long)(0x20000100))
#define SCANVER ((unsigned long)(1))
#if defined(__STDC__) || defined(__cplusplus)
#define SCANDIR ((unsigned long)(1))
extern res * scandir_1(argPtr *, CLIENT *);
extern res * scandir_1_svc(argPtr *, struct svc_req *);
extern int scanprog_1_freeresult(SVCXPRT *, xdrproc_t, caddr_t);
#else /* K&R C */
#define SCANDIR ((unsigned long)(1))
extern res * scandir_1();
extern res * scandir_1_svc();
extern int scanprog_1_freeresult();
#endif /* K&R C */
/* the xdr functions */
#if defined(__STDC__) || defined(__cplusplus)
extern bool_t xdr_name_t(XDR *, name_t*);
extern bool_t xdr_argPtr(XDR *, argPtr*);
extern bool_t xdr_arg_rec(XDR *, arg_rec*);
extern bool_t xdr_infolist(XDR *, infolist*);
extern bool_t xdr_dirinfo(XDR *, dirinfo*);
extern bool_t xdr_res(XDR *, res*);
#else /* K&R C */
extern bool_t xdr_name_t();
extern bool_t xdr_argPtr();
extern bool_t xdr_arg_rec();
extern bool_t xdr_infolist();
extern bool_t xdr_dirinfo();
extern bool_t xdr_res();
#endif /* K&R C */
#ifdef __cplusplus
}
#endif
#endif /* !SCAN2_H */