Provided by: manpages-fr-dev_3.65d1p1-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.65 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> ».