Académique Documents
Professionnel Documents
Culture Documents
Introductionà RPCGEN
SYNOPSIS
#include <sys/tlæes.h>
#include <time.h>
EXEMPIE
main ( )
{
long clocks;
cl-ocks:time{0);
printf ("Le temps en secondes depuis l-e 1/a/I97O est : gd\n", c]ocks);
]
1.2 date.x
Ecrire le fichier de spécification date - x dfuvant le prograrrme RPC de numero 99, de version I, et
composé d'une seule procédure BIN_DATE appelée sans argument (void) et renvoyant un entier long.
Compiler ce fichier avec RPCGEN et observer le fichier date. h, particulièrement les déclarations
des procédures des souches seryour et client.
Le fichier date. c contiendra les procédures-serveur.Il ne faut pas oublier les #include.
#include <rpc,/rpc.h>
#i-nclude <stdio. h>
#incl-ude "date. h"
Ecrire la procédure-serveur qui sera appelée par la souche-serveur générée par RPCGEN (le deuxième
parametre est inutilisé)-
Attention ! Le nom des souches-serveur est construit différemment selon les sysfànes. Exemplg si la
version porte le numéro I :
- solaris : uhe procédure nommée pRoc dans le fichier . x doit s'appeler proc_1 ;
- Linux : une procédure nommée pRoc dans le fichier - x doit s'appeler pro.- l_svc.
Pour des raisons de compatibilitg on écrira un #ifdef pourtraiter Ia différence de nom :
#ifdef _SOLARIS_
* proc_1 (type_argument *-tgp, struct svc_req * inutilise)
tlnpe_retour
#else
* proc-l-svc(t1pe-argument *-tgp, struct svc-req * inutifise)
ttrpe retour
#enaif
On veut mjouter une procédure TM_DATE qui permet de décoder le temps obtenu avec BIN-DATE.
Cette procédure reçoit un long et renvoie une structure de type tnr-
2.L date.x
Il faut compléterle fichier de spécificationdate. x avec la déclarationd'une structureéquivalenteà
la structuretm- On ne pourrautiliser le nom tm car il provoqueradesconflits d'inclusion.
tr faut aussirajouterla déclarationde la nouvelleprocédure.
2.4 Compilation
Le fichier date_xdr. c (générépar RPCGEN),qui contient les fonctions de gestionXDR de la
structurede type tm està compileravecls serveuret avec le clisnt.