Unix/Linux Go Back    


Linux 2.6 - man page for rpmatch (linux section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


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.55 of the Linux man-pages project.  A description of the
       project,    and	  information	 about	  reporting    bugs,	can    be    found     at
       http://www.kernel.org/doc/man-pages/.

GNU					    2007-07-26				       RPMATCH(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:43 AM.