argz_add(3) - wariua/manpages-ko GitHub Wiki
argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify - argz λͺ©λ‘μ λ€λ£¨λ ν¨μλ€
#include <argz.h>
error_t argz_add(char **argz, size_t *argz_len, const char *str);
error_t argz_add_sep(char **argz, size_t *argz_len,
const char *str, int delim);
error_t argz_append(char **argz, size_t *argz_len,
const char *buf, size_t buf_len);
size_t argz_count(const char *argz, size_t argz_len);
error_t argz_create(char * const argv[], char **argz,
size_t *argz_len);
error_t argz_create_sep(const char *str, int sep, char **argz,
size_t *argz_len);
void argz_delete(char **argz, size_t *argz_len, char *entry);
void argz_extract(const char *argz, size_t argz_len, char **argv);
error_t argz_insert(char **argz, size_t *argz_len, char *before,
const char *entry);
char *argz_next(const char *argz, size_t argz_len, const char *entry);
error_t argz_replace(char **argz, size_t *argz_len, const char *str,
const char *with, unsigned int *replace_count);
void argz_stringify(char *argz, size_t len, int sep);μ΄ ν¨μλ€μ glibc μ μ©μ΄λ€.
argz 벑ν°λ λ¬Έμ λ²νΌμ λν ν¬μΈν°μ κΈΈμ΄κ° ν¨κ» μλ κ²μ΄λ€. λ¬Έμ λ²νΌλ λ¬Έμμ΄μ λ°°μ΄λ‘ ν΄μνκ² λμ΄ μμΌλ©° λ λ°μ΄νΈ('\0')λ‘ κ·Έ λ¬Έμμ΄λ€μ ꡬλΆνλ€. κΈΈμ΄κ° 0μ΄ μλ κ²½μ° λ²νΌμ λ§μ§λ§ λ°μ΄νΈκ° λ λ°μ΄νΈμ¬μΌ νλ€.
μ΄ ν¨μλ€μ argz 벑ν°λ₯Ό λ€λ£¨κΈ° μν κ²μ΄λ€. (NULL,0) μ μμ argz 벑ν°μ΄λ©°, μμΌλ‘ κΈΈμ΄ 0μΈ argz 벑ν°λ ν¬μΈν°κ° λμ΄μ΄μΌ νλ€. λΉμ΄ μμ§ μμ argz 벑ν°λ₯Ό ν λΉνλ κ²μ malloc(3)μΌλ‘ μ΄λ€μ§λ©°, λ°λΌμ free(3)λ₯Ό μ΄μ©ν΄ λ€μ μμ¨ μ μλ€.
argz_add()λ λ°°μ΄ *argz λμ λ¬Έμμ΄ strμ μΆκ°νκ³ *argzμ *argz_lenμ κ°±μ νλ€.
argz_add_sep()λ λΉμ·νλ λ¬Έμμ΄ strμ ꡬλΆμ delimμΌλ‘ λλ μ§λ νμ λ¬Έμμ΄λ€λ‘ μͺΌκ° λ€. μλ₯Ό λ€μ΄ μ λμ€ κ²μ κ²½λ‘μ ꡬλΆμ ':'λ‘ μ΄ ν¨μλ₯Ό μΈ μ μμ κ²μ΄λ€.
argz_append()λ argz λ²‘ν° (*argz, *argz_len) λ€μ (buf, buf_len)μ λ§λΆμ΄κ³ *argzμ *argz_lenμ κ°±μ νλ€. (κ·Έλμ *argz_lenμ΄ buf_lenλ§νΌ 컀μ§κ² λλ€.)
argz_count()λ (argz, argz_len) λ΄μ λ¬Έμμ΄ κ°μ, μ¦ λ λ°μ΄νΈ('\0') κ°μλ₯Ό μΌλ€.
argz_create()λ (char *) 0μΌλ‘ λλλ μ λμ€ λ°©μ μΈμ λ²‘ν° argvλ₯Ό argz λ²‘ν° (*argz, *argz_len)μΌλ‘ λ³ννλ€.
argz_create_sep()μ λ μ’
λ£ λ¬Έμμ΄ strμ ꡬλΆμ sepμ΄ μλ λͺ¨λ κ³³μμ λλ μ argz λ²‘ν° (*argz, *argz_len)μΌλ‘ λ³ννλ€.
argz_delete()λ argz λ²‘ν° (*argz, *argz_len)μμ entryκ° κ°λ¦¬ν€λ νμ λ¬Έμμ΄μ μ κ±°νκ³ *argzμ *argz_lenμ κ°±μ νλ€.
argz_extract()λ argz_create()μ λ°λμ΄λ€. argz λ²‘ν° (argz, argz_len)μ λ°μμ argvμμ μμνλ λ°°μ΄μ νμ λ¬Έμμ΄ ν¬μΈν°λ€κ³Ό λ§μ§λ§μ NULLλ‘ μ±μμ μ λμ€ λ°©μ argv 벑ν°λ₯Ό λ§λ λ€. λ°°μ΄ argvμλ ν¬μΈν° argz_count(argz, argz_len) + 1 κ°λ§νΌμ 곡κ°μ΄ μμ΄μΌ νλ€.
argz_insert()λ argz_delete()μ λ°λμ΄λ€. argz λ²‘ν° (*argz, *argz_len)μ before μμΉμ μΈμ entryλ₯Ό λΌμ λ£κ³ *argzμ *argz_lenμ κ°±μ νλ€. beforeκ° NULLμ΄λ©΄ λμ entryλ₯Ό μ§μ΄λ£λλ€.
argz_next()λ argz 벑ν°λ₯Ό μννκΈ° μν ν¨μμ΄λ€. entryκ° NULLμ΄λ©΄ 첫 λ²μ§Έ νλͺ©μ λ°ννκ³ , μλλ©΄ λ€μ νλͺ©μ λ°ννλ€. λ€μ νλͺ©μ΄ μμΌλ©΄ NULLμ λ°ννλ€.
argz_replace()λ κ° strμ withλ‘ κ΅μ²΄νλ©° νμν λλ‘ argzλ₯Ό μ¬ν λΉνλ€. replace_countκ° NULLμ΄ μλλ©΄ κ΅μ²΄ νμλ§νΌ *replace_countλ₯Ό μ¬λ¦°λ€.
argz_stringify()λ argz_create_sep()μ λ°λμ΄λ€. λ§μ§λ§μ λΊ λͺ¨λ λ λ°μ΄νΈ('\0')λ₯Ό sepμΌλ‘ κ΅μ²΄ν΄μ argz 벑ν°λ₯Ό λ³΄ν΅ λ¬Έμμ΄λ‘ λ³ννλ€.
λ©λͺ¨λ¦¬ ν λΉμ νλ argz ν¨μλ€μ λͺ¨λ λ°ν νμ
μ΄ error_tμ΄λ©°, μ±κ³΅ μ 0μ λ°ννκ³ ν λΉ μ€λ₯ λ°μ μ ENOMEMμ λ°ννλ€.
μ΄ μ μμ μ¬μ©νλ μ©μ΄λ€μ λν μ€λͺ μ attributes(7)λ₯Ό 보λΌ.
| μΈν°νμ΄μ€ | μμ± | κ° |
|---|---|---|
argz_add(), argz_add_sep(),argz_append(), argz_count(),argz_create(), argz_create_sep(),argz_delete(), argz_extract(),argz_insert(), argz_next(),argz_replace(), argz_stringify()
|
μ€λ λ μμ μ± | MT-Safe |
μ΄ ν¨μλ€μ GNU νμ₯μ΄λ€. μ‘°μ¬ν΄μ μ¨μΌ νλ€.
μ’ λ£μ© λ λ°μ΄νΈκ° μλ argz 벑ν°κ° μΈκ·Έλ©ν μ΄μ ν΄νΈλ‘ μ΄μ΄μ§ μ μλ€.
2019-03-06