rpmatch - Déterminer si la réponse à une question est
affirmative ou négative
Bibliothèque C standard (
libc,
-lc)
#include <stdlib.h>
int rpmatch(const char *réponse);
rpmatch():
Since glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 and earlier:
_SVID_SOURCE
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.
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.
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).
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
rpmatch() |
Sécurité des threads |
MT-Safe locale |
rpmatch() is not required by any standard, but available under the GNU C
library, FreeBSD, and AIX.
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.
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);
}
fgets(3),
getline(3),
nl_langinfo(3),
regcomp(3),
setlocale(3)
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]