rpmatch(3)

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

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#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; eroarea nu este disponibilă la errno sau în 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>

    #define streq(...)  (strcmp(__VA_ARGS__) == 0)

    int
    main(int argc, char *argv[])
    {
        if (argc != 2 || streq(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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.