:: RootR ::  Hosting Order Map Login   Secure Inter-Network Operations  
 
rpmatch(3) - phpMan

Command: man perldoc info search(apropos)  


RPMATCH(3)                          Linux Programmer's Manual                          RPMATCH(3)



NAME
       rpmatch - determine if the answer to a question is affirmative or negative

SYNOPSIS
       #include <stdlib.h>

       int rpmatch(const char *response);

   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):

       rpmatch(): _SVID_SOURCE

DESCRIPTION
       rpmatch()  handles a user response to yes or no questions, with support for international‐
       ization.

       response should be a null-terminated string containing a user-supplied  response,  perhaps
       obtained with fgets(3) or getline(3).

       The  user's  language preference is taken into account per the environment variables LANG,
       LC_MESSAGES, and LC_ALL, if the program has called setlocale(3) to effect their changes.

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

RETURN VALUE
       After examining response, rpmatch() returns 0 for a recognized negative response ("no"), 1
       for a recognized positive response ("yes"), and -1 when the value of response is  unrecog‐
       nized.

ERRORS
       A  return  value  of  -1 may indicate either an invalid input, or some other error.  It is
       incorrect to only test if the return value is nonzero.

       rpmatch() can fail for any of the reasons that regcomp(3)  or  regexec(3)  can  fail;  the
       cause  of  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).

CONFORMING TO
       rpmatch() is not required by any standard, but is available on a few other systems.

BUGS
       The  rpmatch()  implementation looks at only the first character of response.  As a conse‐
       quence, "nyes" returns 0, and "ynever; not in a million years" returns  1.   It  would  be
       preferable  to  accept  input  strings much more strictly, for example (using the extended
       regular expression notation described in regex(7)): ^([yY]|yes|YES)$ and ^([nN]|no|NO)$.

EXAMPLE
       The following program displays the results when rpmatch() is applied to the  string  given
       in the program's command-line argument.

       #define _SVID_SOURCE
       #include <locale.h>
       #include <stdlib.h>
       #include <string.h>
       #include <stdio.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);
       }

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

COLOPHON
       This  page  is  part of release 3.74 of the Linux man-pages project.  A description of the
       project, information about reporting bugs, and the latest version of  this  page,  can  be
       found at http://www.kernel.org/doc/man-pages/.



GNU                                         2007-07-26                                 RPMATCH(3)


/man
rootr.net - man pages