Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       rpmatch - определяет, является ли ответ на вопрос утвердительным или отрицательным

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <stdlib.h>

       int rpmatch(const char *response);

   Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

       rpmatch():
           начиная с glibc 2.19:
               _DEFAULT_SOURCE
           glibc 2.19 и старее:
               _SVID_SOURCE

ОПИСАНИЕ

       Функция   rpmatch()   обрабатывает   ответ   пользователя   «да»   или   «нет»   на   вопросы,   учитывая
       интернационализацию.

       В аргументе  response  должен  указываться  ответ  пользователя  в  виде  строки,  заканчивающейся  null,
       полученной, например, с помощью fgets(3) или getline(3).

       Пользовательские  языковые  настройки  определяются  с  помощью  переменных окружения LANG, LC_MESSAGES и
       LC_ALL, если для их учёта программа вызывала setlocale(3).

       Regardless of the locale, responses matching ^[Yy] are always accepted as affirmative, and those matching
       ^[Nn] are always accepted as negative.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       После проверки response, функция rpmatch() возвращает 0 при найденном отрицательном ответе («нет»), 1 при
       положительном ответе («да») и -1, когда значение response не распознано.

ОШИБКИ

       Возвращаемое значение -1 может указывать на неправильные входные данные, либо какую-то другую ошибку.  Не
       стоит проверять является ли возвращаемое значение лишь отличным от нуля.

       Функция  rpmatch()  может  завершиться  с  ошибкой  по  любой  из причин, по которым могут не выполниться
       regcomp(3) или regexec(3); причина ошибки не указывается в errno или где-то ещё — это указывает на ошибку
       в самом механизме regex (но этот случай не отличается от нераспознанных значений response).

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌───────────────────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │ ИнтерфейсАтрибутЗначение       │
       ├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │ rpmatch()                                                     │ Безвредность в нитях │ MT-Safe locale │
       └───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘

СТАНДАРТЫ

       Отсутствуют.

ИСТОРИЯ

       GNU, FreeBSD, 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.

ПРИМЕРЫ

       Следующая программа показывает результаты, когда в rpmatch() передана строка,  полученная  программой  из
       командной строки.

       #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 response\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           setlocale(LC_ALL, "");
           printf("rpmatch() returns: %d\n", rpmatch(argv[1]));
           exit(EXIT_SUCCESS);
       }

СМОТРИТЕ ТАКЖЕ

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

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства  разработал(и) aereiae <aereiae@gmail.com>, Azamat Hackimov
       <azamat.hackimov@gmail.com>,     Dmitriy     S.     Seregin     <dseregin@59.ru>,     Katrin     Kutepova
       <blackkatelv@gmail.com>,   Lockal   <lockalsash@gmail.com>,  Yuri  Kozlov  <yuray@komyakino.ru>,  Баринов
       Владимир, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                  15 июня 2024 г.                                      rpmatch(3)