Scroll to navigation

rpmatch(3) Library Functions Manual rpmatch(3)

NUME

rpmatch - determină dacă răspunsul la o întrebare este afirmativ sau negativ

BIBLIOTECA

Biblioteca C standard (libc, -lc)

REZUMAT

#include <stdlib.h>
int rpmatch(const char *response);

Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

rpmatch():


Începând cu glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 și versiunile anterioare:
_SVID_SOURCE

DESCRIERE

rpmatch() gestionează un răspuns al utilizatorului la întrebări de tip da sau nu, cu suport pentru internaționalizare.

response ar trebui să fie un șir de caractere cu terminație nulă care să conțină un răspuns furnizat de utilizator, probabil obținut cu fgets(3) sau getline(3).

Preferințele de limbă ale utilizatorului sunt luate în considerare de variabilele de mediu LANG, LC_MESSAGES și LC_ALL, dacă programul a apelat setlocale(3) pentru a efectua modificări ale acestora.

Indiferent de configurația regională, răspunsurile care se potrivesc cu ^[Yy] sunt întotdeauna acceptate ca fiind afirmative, iar cele care se potrivesc cu ^[Nn] sunt întotdeauna acceptate ca fiind negative.

VALOAREA RETURNATĂ

După examinarea lui response, rpmatch() returnează 0 pentru un răspuns negativ recunoscut („no”), 1 pentru un răspuns pozitiv recunoscut („yes”) și -1 atunci când valoarea lui response este nerecunoscută.

ERORI-IEȘIRE

O valoare de returnare de -1 poate indica fie o intrare nevalidă, fie o altă eroare. Este incorect să se testeze numai dacă valoarea de returnare este diferită de zero.

rpmatch() poate eșua din oricare dintre motivele pentru care regcomp(3) sau regexec(3) poate eșua; cauza erorii nu este disponibilă din errno sau din altă parte, dar indică un eșec al motorului regex (dar acest caz nu se poate distinge de cel al unei valori nerecunoscute a lui response).

ATRIBUTE

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
rpmatch() Siguranța firelor MT-Safe locale

STANDARDE

Niciunul.

ISTORIC

GNU, FreeBSD, AIX.

ERORI

YESEXPR și NOEXPR din unele configurații regionale (inclusiv „C”) inspectează numai primul caracter din response. Acest lucru poate însemna că „yno” ș.a., se rezolvă la 1. Acesta este un efect secundar istoric nefericit care ar trebui să fie corectat în timp cu o configurație regională adecvată și nu ar trebui să împiedice rpmatch() să fie modalitatea corectă de a distinge între răspunsurile binare.

EXEMPLE

Următorul program afișează rezultatele obținute atunci când rpmatch() este aplicat la șirul de caractere dat în argumentul din linia de comandă a programului.

#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ăspuns\n", argv[0]);
exit(EXIT_FAILURE);
}
setlocale(LC_ALL, "");
printf("rpmatch() returnează: %d\n", rpmatch(argv[1]));
exit(EXIT_SUCCESS); }

CONSULTAȚI ȘI

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

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

20 iulie 2023 Pagini de manual de Linux 6.05.01