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