Provided by: manpages-fr-dev_3.57d1p1-1_all bug

NOM

       rpmatch - Déterminer si la réponse à une question est affirmative ou négative

SYNOPSIS

       #include <stdlib.h>

       int rpmatch(const char *réponse);

   Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

       rpmatch() : _SVID_SOURCE

DESCRIPTION

       rpmatch()   gère   une   réponse  d'un  utilisateur  à  une  question  oui  ou  non,  avec  support  pour
       l'internationalisation.

       réponse doit être une chaîne de caractères, terminée par le caractère nul, contenant une réponse  fournie
       par un utilisateur, peut-être obtenue avec fgets(3) ou getline(3).

       La  préférence  de  langue  de  l'utilisateur est prise en compte par les variables d'environnement LANG,
       LC_MESSAGES et LC_ALL si le programme a appelé setlocale(3) pour effectuer leurs modifications.

       Quels que soient les paramètres régionaux, les réponses correspondant à  ^[Yy]  sont  toujours  acceptées
       comme affirmatives, et celles correspondant à ^[Nn] sont toujours acceptées comme négatives.

VALEUR RENVOYÉE

       Après  l'examen  de  réponse, rpmatch() renvoie 0 dans le cas d'une réponse négative (« Non »), 1 dans le
       cas d'une réponse affirmative (« Oui »), et -1 si la valeur de réponse n'est pas reconnue.

ERREURS

       Une valeur de retour de -1 indique soit une entrée invalide, soit une autre erreur. Il n'est pas  correct
       de ne tester que la non nullité de la valeur de retour.

       rpmatch()  peut  échouer  pour  les  mêmes  raisons que regcomp(3) ou regexec(3) échouerait ; la cause de
       l'erreur n'est pas disponible dans errno ou ailleurs  mais  indique  un  échec  du  moteur  d'expressions
       rationnelles (mais ce cas ne peut pas être distingué de celui d'une valeur de réponse non reconnue).

CONFORMITÉ

       rpmatch() n'est requise par aucun standard mais est disponible sur quelques autres systèmes.

BOGUES

       L'implémentation  de  rpmatch()  ne regarde que le premier caractère de réponse. En conséquence, « noui »
       renvoie 0 et « ynon, jamais, pas dans un million d'années » renvoie 1. Il  serait  préférable  d'accepter
       des  chaînes  de manière plus stricte, par exemple (en utilisant la notation des expressions rationnelles
       étendues décrites dans regex(7)) : ^([yY]|yes|YES)$ et ^([nN]|no|NO)$.

EXEMPLE

       Le programme exemple suivant affiche les résultats lorsque rpmatch() est appliqué  à  la  chaîne  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 réponse\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           setlocale(LC_ALL, "");
           printf("rpmatch() a renvoyé : %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.57 du projet man-pages Linux. Une description du projet et des
       instructions    pour    signaler    des    anomalies    peuvent     être     trouvées     à     l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Alain Portal <http://manpagesfr.free.fr/> (2006). Nicolas François et l'équipe francophone de  traduction
       de Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».