rpmatch   Début   Suivant   Sommaire   Préc.page.lue   Accueil
Section: Manuel du programmeur Linux (3)
Updated: 26 juillet 2007
Sommaire  



NOM   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
rpmatch - Déterminer si la réponse à une question est affirmative ou négative  



SYNOPSIS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
#include <stdlib.h>

int rpmatch(const char *response);

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

rpmatch() : _SVID_SOURCE  




DESCRIPTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
rpmatch() gère une réponse d'un utilisateur à une question oui ou non, avec support pour l'internationalisation.

response 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Après l'examen de response, 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 response n'est pas reconnue.  



ERREURS   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
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 non nullité de la valeur de retour.

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




CONFORMITÉ   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
rpmatch() n'est requise par aucun standard mais est disponible sur certains autres systèmes.  



BOGUES   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
L'implémentation de rpmatch() ne regarde que le premier caractère de response. En conséquence, « nyes » renvoie 0 et « ynever; not in a million years » 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   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
Le programme exemple suivant affiche les résultats lorsque rpmatch() est apppliqué à 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 response\n", argv[0]);
        exit(EXIT_FAILURE);
    }

    setlocale(LC_ALL, "");
    printf("rpmatch() a renvoyé : %d\n", rpmatch(argv[1]));
    exit(EXIT_SUCCESS);
}
 



VOIR AUSSI   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil
regcomp(3), fgets(3), getline(3), nl_langinfo(3), setlocale(3)  



TRADUCTION   Début   Précédent   Suivant   Sommaire   Préc.page.lue   Accueil

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 9 août 2006 et révisée le 19 décembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 rpmatch ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.


 



Sommaire   Début   Suivant   Sommaire   Préc.page.lue   Accueil
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
BOGUES
EXEMPLE
VOIR AUSSI
TRADUCTION

Ce document a été créé par man2html suivi de man2html.pl, le 17/10/2008 17:49:24, en utilisant les pages de 'man'.
 

Valid HTML 4.01 Transitional