getservent, getservbyname, getservbyport, setservent, endservent - Accéder aux informations sur les services.
#include <netdb.h>
struct servent *getservent (void);
struct servent *getservbyname (const char *name, const char *proto);
struct servent *getservbyport (int port, const char *proto);
void setservent (int stayopen);
void endservent (void);
La fonction
getservent() lit l'enregistrement suivant du fichier
/etc/services et renvoie une structure
servent contenant les
divers champs de l'enregistrement. Le fichier
/etc/services est
ouvert si besoin est.
La fonction
getservbyname() renvoie une structure
servent
pour l'enregistrement du fichier
/etc/services qui correspond au
service nommé
name et utilisant le protocole
proto. Si
proto
est NULL, n'importe quel protocole sera accepté.
La fonction
getservbyport() renvoie une structure
servent
pour l'enregistrement correspondant au
port indiqué (dans l'ordre
des octets du réseau) et utilisant le protocole
proto. Si
proto
est NULL, n'importe quel protocole sera accepté.
La fonction
setservent() ouvre, et ramène au début le pointeur du
fichier
/etc/services. Si
stayopen est vrai (valant 1), alors
le fichiers ne sera pas refermé entre les appels successifs à
getservbyname() et
getservbyport().
la fonction
endservent() ferme le fichier
/etc/services.
La structure
servent est définie dans
<netdb.h> ainsi :
-
struct servent {
char *s_name; /* Nom officiel du service */
char **s_aliases; /* Liste d'alias */
int s_port; /* Numéro de port */
char *s_proto; /* Protocole utilisé */
}
Les membres de la structure
servent sont :
- s_name
-
Le nom officiel du service.
- s_aliases
-
Une liste terminée par zéro contenant d'autres noms utilisables pour le service.
- s_port
-
Le numéro de port, donné dans l'ordre des octets du réseau.
- s_proto
-
Le nom du protocole utilisé par ce service.