rpmatch(3) Library Functions Manual rpmatch(3) rpmatch - , C (libc, -lc) #include 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() can fail for any of the reasons that regcomp(3) or regexec(3) can fail; the error is not available from errno or anywhere else, but indicates a failure of the regex engine (but this case is indistinguishable from that of an unrecognized value of 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 #include #include #include #define streq(...) (strcmp(__VA_ARGS__) == 0) int main(int argc, char *argv[]) { if (argc != 2 || streq(argv[1], "--help")) { 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 , Azamat Hackimov , Dmitriy S. Seregin , Katrin Kutepova , Lockal , Yuri Kozlov , ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () . Linux man-pages 6.18 22 2026 . rpmatch(3)