Provided by:
manpages-fr-dev_3.32d0.2p4-1_all 
NOM
rpmatch - Determiner si la reponse a une question est affirmative ou
negative
SYNOPSIS
#include <stdlib.h>
int rpmatch(const char *r'eponse);
Exigences de macros de test de fonctionnalites pour la glibc (consultez
feature_test_macros(7)) :
rpmatch() : _SVID_SOURCE
DESCRIPTION
rpmatch() gere une reponse d'un utilisateur a une question oui ou non,
avec support pour l'internationalisation.
r'eponse doit etre une chaine de caracteres, terminee par le caractere
nul, contenant une reponse fournie par un utilisateur, peut-etre
obtenue avec fgets(3) ou getline(3).
La preference de langue de l'utilisateur est prise en compte par les
variables d'environnement LANG, LC_MESSAGES et LC_ALL si le programme a
appele setlocale(3) pour effectuer leurs modifications.
Quels que soient les parametres regionaux, les reponses correspondant a
^[Yy] sont toujours acceptees comme affirmatives, et celles
correspondant a ^[Nn] sont toujours acceptees comme negatives.
VALEUR RENVOY'EE
Apres l'examen de r'eponse, rpmatch() renvoie 0 dans le cas d'une
reponse negative (<< Non >>), 1 dans le cas d'une reponse affirmative
(<< Oui >>), et -1 si la valeur de r'eponse n'est pas reconnue.
ERREURS
Une valeur de retour de -1 indique soit une entree invalide, soit une
autre erreur. Il n'est pas correct de ne tester que la non nullite de
la valeur de retour.
rpmatch() peut echouer pour les memes raisons que regcomp(3) ou
regexec(3) echouerait ; la cause de l'erreur n'est pas disponible dans
errno ou ailleurs mais indique un echec du moteur d'expressions
rationnelles (mais ce cas ne peut pas etre distingue de celui d'une
valeur de r'eponse non reconnue).
CONFORMIT'E
rpmatch() n'est requise par aucun standard mais est disponible sur
quelques autres systemes.
BOGUES
L'implementation de rpmatch() ne regarde que le premier caractere de
r'eponse. En consequence, << noui >> renvoie 0 et << ynon, jamais, pas
dans un million d'annees >> renvoie 1. Il serait preferable d'accepter
des chaines de maniere plus stricte, par exemple (en utilisant la
notation des expressions rationnelles etendues decrites dans
regex(7)) : ^([yY]|yes|YES)$ et ^([nN]|no|NO)$.
EXEMPLE
Le programme exemple suivant affiche les resultats lorsque rpmatch()
est applique a la chaine fournie comme argument de la ligne de commande
du programme.
#define _SVID_SOURCE
#include <locale.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
int
main(int argc, char *argv[])
{
if (argc != 2 || strcmp(argv[1], "--help") == 0) {
fprintf(stderr, "%s reponse\n", argv[0]);
exit(EXIT_FAILURE);
}
setlocale(LC_ALL, "");
printf("rpmatch() a renvoye : %d\n", rpmatch(argv[1]));
exit(EXIT_SUCCESS);
}
VOIR AUSSI
fgets(3), getline(3), nl_langinfo(3), regcomp(3), setlocale(3)
COLOPHON
Cette page fait partie de la publication 3.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Alain Portal <URL:http://manpagesfr.free.fr/> (2006). Nicolas Francois
et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.