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

NAME

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 λͺ©λ‘μ„ λ‹€λ£¨λŠ” ν•¨μˆ˜λ“€

SYNOPSIS

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

DESCRIPTION

이 ν•¨μˆ˜λ“€μ€ 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 벑터λ₯Ό 보톡 λ¬Έμžμ—΄λ‘œ λ³€ν™˜ν•œλ‹€.

RETURN VALUE

λ©”λͺ¨λ¦¬ 할당을 ν•˜λŠ” argz ν•¨μˆ˜λ“€μ€ λͺ¨λ‘ λ°˜ν™˜ νƒ€μž…μ΄ error_t이며, 성곡 μ‹œ 0을 λ°˜ν™˜ν•˜κ³  ν• λ‹Ή 였λ₯˜ λ°œμƒ μ‹œ ENOMEM을 λ°˜ν™˜ν•œλ‹€.

ATTRIBUTES

이 μ ˆμ—μ„œ μ‚¬μš©ν•˜λŠ” μš©μ–΄λ“€μ— λŒ€ν•œ μ„€λͺ…은 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

CONFORMING TO

이 ν•¨μˆ˜λ“€μ€ GNU ν™•μž₯이닀. μ‘°μ‹¬ν•΄μ„œ 써야 ν•œλ‹€.

BUGS

μ’…λ£Œμš© 널 λ°”μ΄νŠΈκ°€ μ—†λŠ” argz 벑터가 μ„Έκ·Έλ©˜ν…Œμ΄μ…˜ 폴트둜 μ΄μ–΄μ§ˆ 수 μžˆλ‹€.

SEE ALSO

envz_add(3)


2019-03-06

⚠️ **GitHub.com Fallback** ⚠️