table of contents
rpmatch(3) | Library Functions Manual | rpmatch(3) |
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);
rpmatch() :
Depuis la glibc 2.19 :
_POSIX_C_SOURCE >= 200809L
glibc 2.19 et antérieures :
_ATFILE_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.
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 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¶
Aucun.
HISTORIQUE¶
GNU, FreeBSD, AIX.
BOGUES¶
YESEXPR et NOEXPR dans certains paramètres régionaux (y compris « C\ ») n'inspecte que le premier caractère de la réponse. Cela peut signifier que « yno » et autres sont résolus à 1. C'est un malheureux effet de bord historique qui devrait être corrigé avec des paramètres régionaux corrects et ne devrait pas disqualifier rpmatch() comme moyen approprié pour distinguer des réponses binaires.
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 <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
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 à debian-l10n-french@lists.debian.org.
2 mai 2024 | Pages du manuel de Linux (non publiées) |