rpmatch

Autres langues

Langue: ja

Version: 2006-05-17 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

rpmatch - ¼ÁÌä¤Ø¤Î±þÅú¤¬¹ÎÄ꤫ÈÝÄ꤫¤òȽÄꤹ¤ë

½ñ¼°


#define _SVID_SOURCE

#include <stdlib.h>



int rpmatch(const char *response);


ÀâÌÀ

rpmatch() ¤Ï yes/no ¤Î¼ÁÌä¤ËÂФ¹¤ë¥æ¡¼¥¶¤«¤é¤Î±þÅú¤ò½èÍý¤¹¤ë¡£ ¹ñºÝ²½ (I18N) ¤ËÂбþ¤·¤Æ¤¤¤ë¡£

response ¤Ë¤Ï¥æ¡¼¥¶¤«¤é¤Î±þÅú¤ò³ÊǼ¤·¤¿ NULL ½ªÃ¼Ê¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ëɬÍפ¬¤¢¤ë¡£ ¤¿¤¤¤Æ¤¤¤Ï¡¢ fgets(3) ¤ä getline(3) ¤Ç¼è¤ê¹þ¤ó¤À¤â¤Î¤Ç¤¢¤í¤¦¡£

¥×¥í¥°¥é¥à¤¬ setlocale(3) ¤ò¸Æ¤Ó½Ð¤·¤Æ´Ä¶­ÊÑ¿ô¤ÎÊѹ¹¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢ ´Ä¶­ÊÑ¿ô LANG, LC_MESSAGES, LC_ALL ¤¬ ¥æ¡¼¥¶¤Î¸À¸ìÀßÄê¤È¤·¤Æ¹Í褵¤ì¤ë¡£

¥í¥±¡¼¥ë¤Ë´Ø¤ï¤é¤º¡¢^[Yy] ¤Ë¥Þ¥Ã¥Á¤¹¤ë±þÅú¤Ï¾ï¤Ë¹ÎÄê¤À¤È²ò¼á¤µ¤ì¡¢ ^[Nn] ¤Ë¥Þ¥Ã¥Á¤¹¤ë±þÅú¤Ï¾ï¤ËÈÝÄê¤À¤È²ò¼á¤µ¤ì¤ë¡£

ÊÖ¤êÃÍ

response ¤ò¸¡ºº¤·¤¿¸å¡¢ rpmatch() ¤ÏÈÝÄêŪ¤Ê±þÅú ("no") ¤Èǧ¼±¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢ ¹ÎÄêŪ¤Ê±þÅú ("yes") ¤Èǧ¼±¤·¤¿¾ì¹ç¤Ï 1 ¤òÊÖ¤¹¡£ response ¤ÎÃͤò²ò¼á¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï -1 ¤òÊÖ¤¹¡£

¥¨¥é¡¼

ÊÖ¤êÃÍ -1 ¤¬Ê֤俾ì¹ç¡¢ÆþÎϤ¬ÉÔÀµ¤Ç¤¢¤Ã¤¿¤«¡¢Â¾¤Î²¿¤é¤«¤Î¥¨¥é¡¼¤¬ ¤¢¤Ã¤¿¤³¤È¤ò°ÕÌ£¤¹¤ë¡£ÊÖ¤êÃͤ¬ 0 °Ê³°¤«¤É¤¦¤«¤ò³Îǧ¤¹¤ë¤À¤±¤Ç¤Ï ½½Ê¬¤Ç¤Ï¤Ê¤¤¡£

rpmatch() ¤Ï¡¢ regcomp(3) ¤ä regexec(3) ¤¬¼ºÇÔ¤¹¤ëÍýͳ¤Î¤É¤ì¤«¤Ç¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡£ ¥¨¥é¡¼¤Î¸¶°ø¤ò errno ¤ä¾¤Î²¿¤«¤ÇÃΤ뤳¤È¤Ï¤Ç¤­¤Ê¤¤¤¬¡¢ errno ¤ÏÀµµ¬É½¸½¥¨¥ó¥¸¥ó¤Î¼ºÇԤθ¶°ø¤ò¼¨¤·¤Æ¤¤¤ë (⤷¡¢¤³¤Î¥±¡¼¥¹¤È response ¤ÎÃͤòǧ¼±¤Ç¤­¤º¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤ò¶èÊ̤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤)¡£

½àµò

rpmatch() ¤Ï¤É¤Îɸ½à¤Ç¤âɬ¿Ü¤È¤Ê¤Ã¤Æ¤¤¤Ê¤¤¤¬¡¢ Linux °Ê³°¤Ë¤âÍøÍѤǤ­¤ë¥·¥¹¥Æ¥à¤â¤¤¤¯¤Ä¤«¤Ï¸ºß¤¹¤ë¡£

¥Ð¥°

rpmatch() ¤Î¼ÂÁõ¤Ï response ¤ÎºÇ½é¤Î 1 ʸ»ú¤À¤±¤ò¸«¤Æ¤¤¤ë¤è¤¦¤Ç¤¢¤ë¡£¤½¤Î·ë²Ì¡¢ "nyes" ¤Ï 0 ¤òÊÖ¤·¡¢ "ynever; not in a million years" ¤Ï 1 ¤òÊÖ¤¹¤³¤È¤Ë¤Ê¤ë¡£ ÆþÎÏʸ»úÎó¤ò¤â¤Ã¤È¸·Ì©¤Ë²ò¼á¤·¤¿Êý¤¬¤è¤¤¤À¤í¤¦¡£ Î㤨¤Ð¡¢ (regex(7) ¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë³ÈÄ¥Àµµ¬É½¸½¤ò»È¤Ã¤Æ) ^([yY]|yes|YES)$ ¤ä ^([nN]|no|NO)$ ¤Ç²ò¼á¤¹¤ë¤Ê¤É¡£

Îã

°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï¡¢¥³¥Þ¥ó¥É¥é¥¤¥ó°ú¤­¿ô¤Ç »ØÄꤵ¤ì¤¿Ê¸»úÎó¤ò rpmatch() ¤ËÅϤ·¤¿¾ì¹ç¤Î·ë²Ì¤òɽ¼¨¤¹¤ë¡£



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

}

´ØÏ¢¹àÌÜ

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