Provided by: manpages-ja-dev_0.5.0.0.20070415-1_all bug
     前
        argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_cre-
        ate_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);
 
        error_t
        argz_delete(char **argz, size_t *argz_len, char *entry);
 
        void
        argz_extract(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(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       vector       は長さ情報付い諒源バッファへのポインタである。
        文字バッファでは、複数の文字列が NULL バイト ('\0')  で区切られており、
        文字列の配列として解釈されるようになっている。         長さが         0
        でない場合、バッファの最後のバイトは NULL バイトでなければならない。
 
        これらの関数は argz vector を操作するためのものである。  ペア  (NULL,0)
        は  argz  vector  であり、逆に言えば  長さ  0  の  argz  vectorは  NULL
        ポインタを持たなければならない。  空でない  argz  vector   の割り当ては
        malloc(3)   を使って行われる。したがって、argz   vector  を解放するのに
        free(3) を使うことがでい襦
 
        argz_add()  は、文字列  str  を配列  *argz  の末尾に追加し、  *argz  と
        *argz_len を更新する。
 
        argz_add_sep()          も同様の動作をするが、区切り文字          delim
        にしたがって文字列       str       を複数の文字列に分割する点が異なる。
        例えば、区切り文字     ':'     を指定して、Unix    サーチ・パスに対して
        この関数を使うことがでい襪世蹐Α
 
        argz_append() は argz vector (buf,buf_len)  の後ろに  (*argz,*argz_len)
        を付け加え、 *argz と *argz_len を更新する。 (したがって、 *argz_len は
        buf_len だけ増加する。)
 
        argz_count() は (argz,argz_len)  内の文字列の数を数える。実際には  NULL
        バイト ('\0') の数を数えている。
 
        argz_create()   は、Unix   流の引た凜戰トルである  argv  ((char  *)  0
        で終端される) を、argz vector (*argz,*argz_len) に変換する。
 
        argz_create_sep()  は、NULL  終端された文字列  str   を区切り文字   sep
        が現れる毎に分割しながら、argz vector (*argz,*argz_len) に変換する。
 
        argz_delete()    は、    entry   で指し示された文字列を   argz   vector
        (*argz,*argz_len) から削除し、 *argz と *argz_len を更新する。
 
        argz_extract()   は   argz_create()   の反対の操作を行う。argz   vector
        (argz,argz_len)                      を調べ、                      argv
        から始まる配列をサブ文字列へのポインタで埋めていぁ   一番最後に   NULL
        を入れて、Unix    流の   argv   ベクトルを作成する。   配列   argv   は
        argz_count(argz,argz_len)       +       1        個のポインタを収容で-
        る空間を持っていなければならない。
 
        argz_insert()    は   argz_delete()   の反対の操作を行う。argz   vector
        (*argz,*argz_len) の位置  before  に引た  entry  を挿入し、  *argz  と
        *argz_len     を更新する。    before    が    NULL    の場合、    entry
        は末尾に挿入される。
 
        argz_next() は argz vector  を順番に調べるための関数である。  entry  が
        NULL                                     の場合、最初のエントリを返す。
        そうでない場合、次のエントリを返す。       次のエントリがない場合、NULL
        を返す。
 
        argz_replace()  は、  str  をすべて with で置ご垢┐ (必要に応じて argz
        の再割り当てを行う)。 replace_count が NULL でない場合、 *replace_count
        を置ご垢┐鮃圓辰真瑤世荏やす。
 
        argz_stringify()  は argz_create_sep() の反対の操作を行う。 末尾の NULL
        バイト以外の全ての NULL バイト ('\0') を sep で置ご垢┐董 argz  vector
        を通常の文字列に変換する。
 
         値
        メモリ割り当てを行う  argz  関数群はすべて  error_t  型の返り値を持つ。
        成功した場合は 0 を返し、割り当てエラーが発生した場合は ENOMEM を返す。
 
     グ
        NULL バイトで終端されていない argz vector を使用した場合、 segmentation
        fault を起こすかもしれない。
 
     拠
        これらの関数は GNU による拡張である。注意して使用すること。
 
             
        envz(3)
 
                                                                    ARGZ_ADD(3)