Provided by: manpages-fr-dev_2.64.1-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 *rponse);

   Exigences pour les macros de test de fonctionnalité de 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.

       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

       regcomp(3), fgets(3), getline(3), nl_langinfo(3), setlocale(3)

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