Votre IP: 38.107.179.242 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 27-03-2008 20:23:44

Linux  Vous êtes dans : GNU/Linux Astuces / Pages man [Section3 - Sous-fonctions]


RPMATCH

 

Index

  1. NOM
  2. SYNOPSIS
  3. DESCRIPTION
  4. VALEUR RENVOYÉE
  5. ERREURS
  6. CONFORMITÉ
  7. BOGUES
  8. EXEMPLE
  9. VOIR AUSSI
  10. TRADUCTION

 

NOMIndex

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

SYNOPSISIndex

#define _SVID_SOURCE
#include <stdlib.h>

int rpmatch (const char *réponse);
 

DESCRIPTIONIndex

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() 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ÉEIndex

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.  

ERREURSIndex

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ÉIndex

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

BOGUESIndex

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)$.  

EXEMPLEIndex

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
", argv[0]);
        exit(EXIT_FAILURE);
    }

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

VOIR AUSSIIndex

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

TRADUCTIONIndex

Cette page de manuel a été traduite par Alain Portal <aportal AT univ-montp2 DOT fr> en 2006.
La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS