Loading

NOM

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

SYNOPSIS

       #include <stdlib.h>

       int rpmatch(const char *rponse);

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

       rpmatch() : _SVID_SOURCE

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

       rponse 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 rponse,  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 rponse 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 rponse 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
       rponse. 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.23  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

       Cette  page  de  manuel  a  été  traduite  par Alain Portal <aportal AT
       univ-montp2  DOT   fr>   en   2006,   et   mise   à   disposition   sur
       http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>    et    l’équipe   francophone   de
       traduction de Debian.

       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> ».