envz_add(3) - wariua/manpages-ko GitHub Wiki

NAME

envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - ํ™˜๊ฒฝ ๋ฌธ์ž์—ด ์ง€์›

SYNOPSIS

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

DESCRIPTION

์ด ํ•จ์ˆ˜๋“ค์€ glibc ์ „์šฉ์ด๋‹ค.

argz ๋ฒกํ„ฐ๋Š” ๋ฌธ์ž ๋ฒ„ํผ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ์— ๊ธธ์ด๊ฐ€ ํ•จ๊ป˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. (argz_add(3) ์ฐธ๊ณ .) envz ๋ฒกํ„ฐ๋Š” argz ๋ฒกํ„ฐ์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ, ๋ฌธ์ž์—ด๋“ค์ด "์ด๋ฆ„=๊ฐ’" ํ˜•ํƒœ๋กœ ๋˜์–ด ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ '=' ๋’ค์— ์žˆ๋Š” ๊ฒƒ์„ ๋ชจ๋‘ ๊ฐ’์ด๋ผ๊ณ  ๋ณธ๋‹ค. '='๊ฐ€ ์—†์œผ๋ฉด ๊ฐ’์ด NULL์ธ ๊ฒƒ์œผ๋กœ ํ•œ๋‹ค. (๋ฐ˜๋ฉด '='๋กœ ๋๋‚˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฐ’์€ ๋นˆ ๋ฌธ์ž์—ด ""์ด๋‹ค.)

์ด ํ•จ์ˆ˜๋“ค์€ envz ๋ฒกํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.

envz_add()๋Š” envz ๋ฒกํ„ฐ (*envz, *envz_len)์— ๋ฌธ์ž์—ด "name=value"(value๊ฐ€ NULL์ด ์•„๋‹Œ ๊ฒฝ์šฐ)๋‚˜ "name"(value๊ฐ€ NULL์ธ ๊ฒฝ์šฐ)์„ ์ถ”๊ฐ€ํ•˜๊ณ  *envz์™€ *envz_len์„ ๊ฐฑ์‹ ํ•œ๋‹ค. name์ด ๊ฐ™์€ ํ•ญ๋ชฉ์ด ์กด์žฌํ•˜๋ฉด ์ œ๊ฑฐํ•˜๊ณ  ์ถ”๊ฐ€ํ•œ๋‹ค.

envz_entry()๋Š” envz ๋ฒกํ„ฐ (envz, envz_len)์—์„œ name์„ ํƒ์ƒ‰ํ•˜๋ฉฐ, ์ฐพ์œผ๋ฉด ๊ทธ ํ•ญ๋ชฉ์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์—†์œผ๋ฉด NULL์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

envz_get()์€ envz ๋ฒกํ„ฐ (envz, envz_len)์—์„œ name์„ ํƒ์ƒ‰ํ•˜๋ฉฐ, ์ฐพ์œผ๋ฉด ๊ทธ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์—†์œผ๋ฉด NULL์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. (์ฐธ๊ณ ๋กœ '=' ์—†๋Š” name ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ๊ฐ’์ด NULL์ผ ์ˆ˜ ์žˆ๋‹ค.)

envz_merge()๋Š” envz2์˜ ๊ฐ ํ•ญ๋ชฉ์„ envz_add()๋ฅผ ์“ด ๊ฒƒ์ฒ˜๋Ÿผ *envz์— ์ถ”๊ฐ€ํ•œ๋‹ค. override๊ฐ€ ์ฐธ์ด๋ฉด envz2์— ์žˆ๋Š” ๊ฐ’์ด *envz์— ์žˆ๋Š” ๊ฐ™์€ ์ด๋ฆ„์˜ ๊ฐ’์„ ๋Œ€์ฒดํ•˜๊ณ , ์•„๋‹ˆ๋ฉด ๊ทธ๋Ÿฌ์ง€ ์•Š๋Š”๋‹ค.

envz_remove()๋Š” (*envz, *envz_len)์— name ํ•ญ๋ชฉ์ด ์žˆ์œผ๋ฉด ์ œ๊ฑฐํ•œ๋‹ค.

envz_strip()์€ ๊ฐ’์ด NULL์ธ ํ•ญ๋ชฉ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•œ๋‹ค.

RETURN VALUE

๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ํ•˜๋Š” envz ํ•จ์ˆ˜๋“ค์€ ๋ชจ๋‘ ๋ฐ˜ํ™˜ ํƒ€์ž…์ด error_t์ด๋ฉฐ, ์„ฑ๊ณต ์‹œ 0์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ํ• ๋‹น ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ENOMEM์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ATTRIBUTES

์ด ์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด๋“ค์— ๋Œ€ํ•œ ์„ค๋ช…์€ attributes(7)๋ฅผ ๋ณด๋ผ.

์ธํ„ฐํŽ˜์ด์Šค ์†์„ฑ ๊ฐ’
envz_add(), envz_entry(),
envz_get(), envz_merge(),
envz_remove(), envz_strip()
์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ MT-Safe

CONFORMING TO

์ด ํ•จ์ˆ˜๋“ค์€ GNU ํ™•์žฅ์ด๋‹ค. ์กฐ์‹ฌํ•ด์„œ ์จ์•ผ ํ•œ๋‹ค.

EXAMPLE

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

SEE ALSO

argz_add(3)


2017-09-15

โš ๏ธ **GitHub.com Fallback** โš ๏ธ