rpmatch(3) Library Functions Manual rpmatch(3)

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

Biblioteca C standard (libc, -lc)

#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

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.

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

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

Niciunul.

GNU, FreeBSD, AIX.

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.

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);
}

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

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.

31 octombrie 2023 Pagini de manual de Linux 6.06