NOM

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

BIBLIOTHÈQUE

Bibliothèque C standard ( libc, -lc)

SYNOPSIS

#include <stdlib.h>
int rpmatch(const char *réponse);
Exigences de macros de test de fonctionnalités pour la glibc (consulter feature_test_macros(7)) :
rpmatch():
    Since glibc 2.19:
        _DEFAULT_SOURCE
    glibc 2.19 and earlier:
        _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.
Regardless of the locale, responses matching ^[Yy] are always accepted as affirmative, and those matching ^[Nn] are always accepted as negative.

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

ATTRIBUTS

Pour une explication des termes utilisés dans cette section, consulter attributes(7).
Interface Attribut Valeur
rpmatch() Sécurité des threads MT-Safe locale
 

STANDARDS

rpmatch() is not required by any standard, but available under the GNU C library, FreeBSD, and AIX.

BOGUES

The YESEXPR and NOEXPR of some locales (including "C") only inspect the first character of the response. This can mean that "yno" et al. resolve to 1. This is an unfortunate historical side-effect which should be fixed in time with proper localisation, and should not deter from rpmatch() being the proper way to distinguish between binary answers.

EXEMPLES

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 _DEFAULT_SOURCE
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <[email protected]>, Thierry Vignaud <[email protected]>, François Micaux, Alain Portal <[email protected]>, Jean-Philippe Guérard <[email protected]>, Jean-Luc Coulon (f5ibh) <[email protected]>, Julien Cristau <[email protected]>, Thomas Huriaux <[email protected]>, Nicolas François <[email protected]>, Florentin Duneau <[email protected]>, Simon Paillard <[email protected]>, Denis Barbier <[email protected]> et David Prévot <[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à [email protected]

Recommended readings

Pages related to rpmatch you should read also: