envz_add

Autres langues

Langue: ja

Autres versions - même langue

Version: 2007-05-18 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - ´Ä¶­ÊÑ¿ôʸ»úÎó¤ÎÁàºî

½ñ¼°




#include <envz.h>



error_t

envz_add(char **envz, size_t *envz_len,


const char *name, const char *value); char * envz_entry(const char *envz, size_t *envz_len, const char *name); char * envz_get(const char *envz, size_t *envz_len, const char *name); error_t envz_merge(char **envz, size_t *envz_len,
const char *envz2, size_t envz2_len, int override); void envz_remove(char **envz, size_t *envz_len, const char *name); void envz_strip(char **envz, size_t *envz_len);
 

ÀâÌÀ

¤³¤ì¤é¤Î´Ø¿ô glibc ¸ÇÍ­¤Ç¤¢¤ë¡£

argz vector ¤ÏŤµ¾ðÊóÉÕ¤­¤Îʸ»ú¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ argz_add(3) ¤ò»²¾È¤Î¤³¤È¡£ envz vector ¤Ï¡¢Ê¸»úÎó¤¬ "name=value (̾Á°=ÃÍ)" ¤Î·Á¼°¤Ë¤Ê¤Ã¤Æ¤¤¤ëÆÃÊÌ¤Ê argz vector ¤Ç¤¢¤ë¡£ºÇ½é¤Î '=' °Ê¹ß¤Ï¤¹¤Ù¤ÆÃͤȤߤʤµ¤ì¤ë¡£'=' ¤¬¤Ê¤±¤ì¤Ð¡¢ ÃÍ¤Ï NULL ¤È²ò¼á¤µ¤ì¤ë¡£(ʸ»úÎó¤Î°ìÈֺǸå¤Îʸ»ú¤¬ '=' ¤Î¾ì¹ç¡¢Ãͤ϶õʸ»úÎó "" ¤È²ò¼á¤µ¤ì¤ë¡£)

¤³¤ì¤é¤Î´Ø¿ô¤Ï envz vector ¤òÁàºî¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£

envz_add() ¤Ï¡¢Ê¸»úÎó name = value (value ¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç) ¤Þ¤¿¤Ï name (value ¤¬ NULL ¤Î¾ì¹ç) ¤ò envz vector (*envz,*envz_len) ¤ËÄɲä·¡¢ *envz ¤È *envz_len ¤ò¹¹¿·¤¹¤ë¡£ name ¤ÈƱ¤¸Ì¾Á°¤ò»ý¤Ä¥¨¥ó¥È¥ê¤¬¤¢¤Ã¤¿¾ì¹ç¡¢¸µ¤Î¥¨¥ó¥È¥ê¤Ïºï½ü¤µ¤ì¤ë¡£

envz_entry() ¤Ï¡¢envz vector (envz,envz_len) ¤«¤é̾Á°¤¬ name ¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤¹¤ë¡£ ¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¤½¤Î¥¨¥ó¥È¥ê¤òÊÖ¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£

envz_get() ¤Ï¡¢envz vector (envz,envz_len) ¤«¤é̾Á°¤¬ name ¤Î¥¨¥ó¥È¥ê¤ò¸¡º÷¤¹¤ë¡£ ¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¥¨¥ó¥È¥ê¤ÎÃͤòÊÖ¤·¡¢¸«¤Ä¤«¤é¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï NULL ¤òÊÖ¤¹¡£ (ÃÍ¤Ï NULL ¤Î¾ì¹ç¤â¤¢¤ë¤³¤È¤ËÃí°Õ¤¹¤ë¤³¤È¡£Ì¾Á°¤¬ name ¤Î¥¨¥ó¥È¥ê¤Ë '=' Éä¹æ¤¬¤Ê¤¤¾ì¹ç¤¬³ºÅö¤¹¤ë¡£)

envz_merge() ¤Ï¡¢ envz_add() ¤ÈƱ¤¸¤è¤¦¤Ë envz2 ¤Î³Æ¥¨¥ó¥È¥ê¤ò *envz ¤ËÄɲ乤롣 override ¤¬¿¿¤Î¾ì¹ç¡¢ envz2 ¤ÎÃÍ¤Ç *envz Æâ¤ÎƱ¤¸Ì¾Á°¤ò¤â¤ÄÃͤϾå½ñ¤­¤µ¤ì¤ë¡£ µ¶¤Î¾ì¹ç¤Ï¾å½ñ¤­¤µ¤ì¤Ê¤¤¡£

envz_remove() ¤Ï¡¢Ì¾Á°¤¬ name ¤Î¥¨¥ó¥È¥ê¤¬¤¢¤ì¤Ð (*envz,*envz_len) ¤«¤éºï½ü¤¹¤ë¡£

envz_strip() ¤Ï¡¢Ãͤ¬ NULL ¤Î¥¨¥ó¥È¥ê¤ò¤¹¤Ù¤Æºï½ü¤¹¤ë¡£

ÊÖ¤êÃÍ

¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ envz ´Ø¿ô·²¤Ï¤¹¤Ù¤Æ error_t ·¿¤ÎÊÖ¤êÃͤò»ý¤Ä¡£ À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢³ä¤êÅö¤Æ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï ENOMEM ¤òÊÖ¤¹¡£

½àµò

¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¡£

Îã


#include <stdio.h>

#include <envz.h>



int

main(int argc, char *argv[], char *envp[])

{

    int i, e_len = 0;

    char *str;



    for (i=0; envp[i] != NULL; i++)

        e_len += strlen(envp[i]) + 1;



    str = envz_entry(*envp, e_len, "HOME");

    printf("%s\n", str);

    str = envz_get(*envp, e_len, "HOME");

    printf("%s\n", str);

    exit(EXIT_SUCCESS);

}

´ØÏ¢¹àÌÜ

argz(3)