wordexp

Autres langues

Langue: ja

Version: 2003-11-11 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

wordexp, wordfree - posix ¥·¥§¥ë¤Î¤è¤¦¤Ëñ¸ì¤ÎŸ³«¤ò¹Ô¤¦

½ñ¼°

#include <wordexp.h>

int wordexp(const char *s, wordexp_t *p, int flags);

void wordfree(wordexp_t *p);

ÀâÌÀ

´Ø¿ô wordexp() ¤Ï¥·¥§¥ë¤Î¤è¤¦¤Ëʸ»úÎó s ¤òŸ³«¤·¡¢ p ¤Ç»Ø¤·¼¨¤¹¹½Â¤ÂΤ˷ë²Ì¤òÊÖ¤¹¡£ ¥Ç¡¼¥¿·¿ wordexp_t ¤Ï¾¯¤Ê¤¯¤È¤â¥Õ¥£¡¼¥ë¥É we_wordc, we_wordv, we_offs ¤ò»ý¤Ä¹½Â¤ÂΤǤ¢¤ë¡£ ¥Õ¥£¡¼¥ë¥É we_wordc ¤Ï size_t ¤Ç¤¢¤ê¡¢ s ¤òŸ³«¤·¤¿·ë²Ì¤Ëñ¸ì¤¬¤¤¤¯¤Ä¤¢¤ë¤«¤òɽ¤¹¡£ ¥Õ¥£¡¼¥ë¥É we_wordv ¤Ï char ** ¤Ç¤¢¤ê¡¢¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤ÎÇÛÎó¤ò»Ø¤·¼¨¤¹¡£ size_t ·¿¤Î¥Õ¥£¡¼¥ë¥É we_offs ¤Ï¡¢ we_wordv ÇÛÎó¤Ë¤¢¤ë½é´üÍ×ÁǤΤ¦¤Á¤¤¤¯¤Ä¤¬ NULL ¤ÇËä¤á¤é¤ì¤ë¤Ù¤­¤«¤òɽ¤¹¤Î¤Ë»È¤ï¤ì¤¿¤ê¤¹¤ë (flags ¤Ë¤è¤ê·èÄꤵ¤ì¤ë¡£²¼µ­¤ò»²¾È¡£)¡£

´Ø¿ô wordfree() ¤Ï³ä¤êÅö¤Æ¤¿¥á¥â¥ê¤òºÆÅÙ²òÊü¤¹¤ë¡£ ¤è¤êÀµ³Î¤Ë¤¤¤¦¤È¡¢¤³¤Î´Ø¿ô¤Ï¤½¤Î°ú¤­¿ô¤ò²òÊü¤¹¤ë¤Î¤Ç¤Ï¤Ê¤¯¡¢ ÇÛÎó we_wordv ¤È¤½¤ì¤¬»Ø¤·¼¨¤¹Ê¸»úÎó¤ò²òÊü¤¹¤ë¡£

Îã

ºÇ½é¤Ë´Êñ¤ÊÎã¤ò¼¨¤¹¡£ ½ÐÎϤϤÀ¤¤¤¿¤¤ "ls [a-c]*.c" ¤ÈƱ¤¸¤Ë¤Ê¤ë¡£

#include <stdio.h>

#include <wordexp.h>



int

main(int argc, char **argv)

{

    wordexp_t p;

    char **w;

    int i;



    wordexp("[a-c]*.c", &p, 0);

    w = p.we_wordv;

    for (i=0; i<p.we_wordc; i++)

        printf("%s\n", w[i]);

    wordfree(&p);

    exit(EXIT_SUCCESS);

}

ʸ»úÎó°ú¤­¿ô

¤³¤ÎŸ³«¤Ï¥·¥§¥ë¤Ë¤è¤ë¥³¥Þ¥ó¥É¤Î¥Ñ¥é¥á¡¼¥¿¤ÎŸ³« (sh(1) ¤ò»²¾È) ¤ÈƱ¤¸¤Ç¤¢¤ë¤Î¤Ç¡¢Ê¸»úÎó s ¤Ï¥·¥§¥ë¥³¥Þ¥ó¥É¥Ñ¥é¥á¡¼¥¿¤ÇÉÔÀµ¤È¤µ¤ì¤ëʸ»ú¤ò´Þ¤ó¤Ç¤Ï¤Ê¤é¤Ê¤¤¡£ Æä˥¨¥¹¥±¡¼¥×¤·¤Æ¤¤¤Ê¤¤²þ¹Ô¡¢|, &, ;, <, >, (, ), {, } ʸ»ú¤ò ¥³¥Þ¥ó¥ÉÃÖ´¹¤ä¥Ñ¥é¥á¡¼¥¿ÃÖ´¹¤Î¾ìḬ̀ʳ°¤Ë´Þ¤á¤Æ¤Ï¤Ê¤é¤Ê¤¤¡£

°ú¤­¿ô s ¤Ë¥¯¥©¡¼¥È¤·¤Æ¤¤¤Ê¤¤¥³¥á¥ó¥Èʸ»ú # ¤Ç»Ï¤Þ¤ëñ¸ì¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢ ¤½¤Îñ¸ì¤È¤½¤ì°Ê¹ß¤Îñ¸ì¤¬Ìµ»ë¤µ¤ì¤ë¤«¡¢ ¤½¤ì¤È¤â # ¤¬¥³¥á¥ó¥Èʸ»ú¤È¤·¤Æ°·¤ï¤Ê¤¤¤«¤Ï¡¢µ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£

Ÿ³«

¼Â¹Ô¤µ¤ì¤ëŸ³«¤Ï¡¢°Ê²¼¤ÎÃʳ¬¤Ç¹½À®¤µ¤ì¤ë: ¥Á¥ë¥ÀŸ³« (~user ¤ò user ¤Î¥Û¡¼¥à¥Ç¥£¥ì¥¯¥È¥ê¤ËÃÖ¤­´¹¤¨¤ë)¡¢ ÊÑ¿ôŸ³« ($FOO ¤ò´Ä¶­ÊÑ¿ô FOO ¤ÎÃͤËÃÖ¤­´¹¤¨¤ë)¡¢ ¥³¥Þ¥ó¥ÉŸ³« ($(command) ¤Þ¤¿¤Ï `command` ¤ò command ¤Î½ÐÎϤÇÃÖ¤­´¹¤¨¤ë)¡¢ »»½ÑŸ³«¡¢¥Õ¥£¡¼¥ë¥Éʬ³ä¡¢¥ï¥¤¥ë¥É¥«¡¼¥ÉŸ³«¡¢¥¯¥©¡¼¥È¤Î½üµî¡£

Æüì¤Ê¥Ñ¥é¥á¡¼¥¿ ($@, $*, $#, $?, $-, $$, $!, $0) ¤Î Ÿ³«·ë²Ì¤Ïµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£

¥Õ¥£¡¼¥ë¥Éʬ³ä¤Ï´Ä¶­ÊÑ¿ô $IFS ¤òÍѤ¤¤Æ¹Ô¤ï¤ì¤ë¡£ ¤³¤Î´Ä¶­ÊÑ¿ô¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ ¥Õ¥£¡¼¥ë¥É¶èÀÚ¤êʸ»ú¤Ï¥¹¥Ú¡¼¥¹¡¦¥¿¥Ö¡¦²þ¹Ô¤Ç¤¢¤ë¡£

½ÐÎϤµ¤ì¤ëÇÛÎó

ÇÛÎó we_wordv ¤Ï¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤ò¤ò´Þ¤ß¡¢ºÇ¸å¤Ë NULL ¤¬Â³¤¯¡£

flags °ú¤­¿ô

flags °ú¤­¿ô¤Ï°Ê²¼¤ÎÃͤΥӥåÈÊñ´ÞŪ OR ¤Ç¤¢¤ë:
WRDE_APPEND
¸«¤Ä¤«¤Ã¤¿Ã±¸ì¤òÁ°²ó¤Î¸Æ¤Ó½Ð¤··ë²Ì¤ÎÇÛÎó¤ËÄɲ乤롣
WRDE_DOOFFS
½é´ü¾õÂ֤Ǥ¢¤ë we_offs ¸Ä¤Î NULL ¤òÇÛÎó we_wordv ¤ËÁÞÆþ¤¹¤ë (¤³¤ì¤é¤ÏÊÖ¤µ¤ì¤ë we_wordc ¤Ë¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤)¡£
WRDE_NOCMD
¥³¥Þ¥ó¥ÉÃÖ´¹¤ò¹Ô¤ï¤Ê¤¤¡£
WRDE_REUSE
°ú¤­¿ô p ¤ÏÁ°²ó¤Î wordexp() ¤Î¸Æ¤Ó½Ð¤··ë²Ì¤Ç¤¢¤ê¡¢ wordfree() ¤¬ (¤Þ¤À) ¸Æ¤Ó½Ð¤µ¤ì¤Ê¤¤¡£ ³ä¤êÅö¤Æ¤é¤ì¤¿Îΰè¤òºÆÍøÍѤ¹¤ë¡£
WRDE_SHOWERR
Ä̾ï¤Ï¥³¥Þ¥ó¥ÉÃÖ´¹¤Î¤È¤­¤Ë stderr ¤¬ /dev/null ¤Ë¥ê¥À¥¤¥ì¥¯¥È¤µ¤ì¤ë¡£ ¤³¤Î¥Õ¥é¥°¤Ï stderr ¤ò¥ê¥À¥¤¥ì¥¯¥È¤·¤Ê¤¤¤è¤¦¤Ë»ØÄꤹ¤ë¡£
WRDE_UNDEF
̤ÄêµÁ¤Î¥·¥§¥ëÊÑ¿ô¤òŸ³«¤·¤è¤¦¤È¤·¤¿¾ì¹ç¤Ë¡¢¥¨¥é¡¼¤È¤·¤Æ°·¤¦¡£

ÊÖ¤êÃÍ

À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤¬ÊÖ¤µ¤ì¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï°Ê²¼¤Î 5 ¤Ä¤ÎÃͤΤ¦¤Á¤Î 1 ¤Ä¤¬ÊÖ¤µ¤ì¤ë¡£
WRDE_BADCHAR
²þ¹Ô¤Þ¤¿¤Ï |, &, ;, <, >, (, ), {, } ¤Î¤¦¤Á¤Î 1 ¤Ä¤¬ÉÔÀµ¤Ë½Ð¸½¤·¤¿¡£
WRDE_BADVAL
̤ÄêµÁ¤Î¥·¥§¥ëÊÑ¿ô¤¬»²¾È¤µ¤ì¡¢ ¤«¤Ä WRDE_UNDEF ¥Õ¥é¥°¤Ç¤³¤ì¤ò¥¨¥é¡¼¤È¤·¤Æ°·¤¦¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡£
WRDE_CMDSUB
¥³¥Þ¥ó¥ÉÃÖ´¹¤¬µ¯¤³¤ê¡¢ ¤«¤Ä WRDE_NOCMD ¥Õ¥é¥°¤Ç¤³¤ì¤ò¥¨¥é¡¼¤È¤·¤Æ°·¤¦¤è¤¦¤Ë»Ø¼¨¤µ¤ì¤Æ¤¤¤ë¡£
WRDE_NOSPACE
¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
WRDE_SYNTAX
Âбþ¤¹¤ë³ç¸Ì¤¬¤Ê¤¤¡¢¥¯¥©¡¼¥È¤¬¹çÃפ·¤Ê¤¤¤È¤¤¤Ã¤¿¡¢ ¥·¥§¥ë¤Î½ñ¼°¥¨¥é¡¼¡£

½àµò

POSIX.1-2001

´ØÏ¢¹àÌÜ

fnmatch(3), glob(3)