OSDN Git Service

Update release for LDP 3.67
[linuxjm/LDP_man-pages.git] / release / man3 / argz_add.3
index a800bef..1d62d6d 100644 (file)
 .\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
+.\"
+.\" %%%LICENSE_START(GPL_NOVERSION_ONELINE)
 .\" Distributed under GPL
+.\" %%%LICENSE_END
+.\"
 .\" based on the description in glibc source and infopages
 .\"
 .\" Corrections and additions, aeb
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
 .\"
 .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved.
 .\" Translated Mon Feb  2 2003 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
 .\"
-.TH ARGZ_ADD 3 2007-05-18  "" "Linux Programmer's Manual"
-.SH Ì¾Á°
+.TH ARGZ_ADD 3 2007\-05\-18 "" "Linux Programmer's Manual"
+.SH 名前
 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 ¥ê¥¹¥È¤òÁàºî¤¹¤ë¤¿¤á¤Î´Ø¿ô·²
-.SH ½ñ¼°
+argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next,
+argz_replace, argz_stringify \- argz リストを操作するための関数群
+.SH 書式
 .nf
-.B "#include <argz.h>"
+\fB#include <argz.h>\fP
 .sp
-.BI "error_t argz_add(char **" argz ", size_t *" argz_len \
-", const char *" str );
+\fBerror_t argz_add(char **\fP\fIargz\fP\fB, size_t *\fP\fIargz_len\fP\fB, const char *\fP\fIstr\fP\fB);\fP
 .sp
-.BI "error_t argz_add_sep(char **" argz ", size_t *" argz_len ,
-.ti 20n
-.BI "const char *" str ", int " delim );
+\fBerror_t argz_add_sep(char **\fP\fIargz\fP\fB, size_t *\fP\fIargz_len\fP\fB,\fP
+\fB                     const char *\fP\fIstr\fP\fB, int \fP\fIdelim\fP\fB);\fP
 .sp
-.BI "error_t argz_append(char **" argz ", size_t *" argz_len ,
-.ti 20n
-.BI "const char *" buf ", size_t " buf_len );
+\fBerror_t argz_append(char **\fP\fIargz\fP\fB, size_t *\fP\fIargz_len\fP\fB,\fP
+\fB                     const char *\fP\fIbuf\fP\fB, size_t \fP\fIbuf_len\fP\fB);\fP
 .sp
-.BI "size_t argz_count(const char *" argz ", size_t " argz_len );
+\fBsize_t argz_count(const char *\fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB);\fP
 .sp
-.BI "error_t argz_create(char * const " argv "[], char **" argz ,
-.ti 20n
-.BI "size_t *" argz_len );
+\fBerror_t argz_create(char * const \fP\fIargv\fP\fB[], char **\fP\fIargz\fP\fB,\fP
+\fB                     size_t *\fP\fIargz_len\fP\fB);\fP
 .sp
-.BI "error_t argz_create_sep(const char *" str ", int " sep ", char **" argz ,
-.ti 20n
-.BI "size_t *" argz_len );
+\fBerror_t argz_create_sep(const char *\fP\fIstr\fP\fB, int \fP\fIsep\fP\fB, char **\fP\fIargz\fP\fB,\fP
+\fB                     size_t *\fP\fIargz_len\fP\fB);\fP
 .sp
-.BI "error_t argz_delete(char **" argz ", size_t *" argz_len ", char *" entry );
+\fBerror_t argz_delete(char **\fP\fIargz\fP\fB, size_t *\fP\fIargz_len\fP\fB, char *\fP\fIentry\fP\fB);\fP
 .sp
-.BI "void argz_extract(char *" argz ", size_t " argz_len ", char  **" argv );
+\fBvoid argz_extract(char *\fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB, char  **\fP\fIargv\fP\fB);\fP
 .sp
-.BI "error_t argz_insert(char **" argz ", size_t *" argz_len ", char *" before ,
-.ti 20n
-.BI "const char *" entry );
+\fBerror_t argz_insert(char **\fP\fIargz\fP\fB, size_t *\fP\fIargz_len\fP\fB, char *\fP\fIbefore\fP\fB,\fP
+\fB                     const char *\fP\fIentry\fP\fB);\fP
 .sp
-.BI "char *argz_next(char *" argz ", size_t " argz_len ", const char *" entry );
+\fBchar *argz_next(char *\fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB, const char *\fP\fIentry\fP\fB);\fP
 .sp
-.BI "error_t argz_replace(char **" argz ", size_t *" argz_len \
-", const char *" str ,
-.ti 20n
-.BI "const char *" with ", unsigned int *" replace_count );
+\fBerror_t argz_replace(char **\fP\fIargz\fP\fB, size_t *\fP\fIargz_len\fP\fB, const char *\fP\fIstr\fP\fB,\fP
+\fB                     const char *\fP\fIwith\fP\fB, unsigned int *\fP\fIreplace_count\fP\fB);\fP
 .sp
-.BI "void argz_stringify(char *" argz ", size_t " len ", int " sep );
+\fBvoid argz_stringify(char *\fP\fIargz\fP\fB, size_t \fP\fIlen\fP\fB, int \fP\fIsep\fP\fB);\fP
 .fi
-.SH ÀâÌÀ
-¤³¤ì¤é¤Î´Ø¿ô¤Ï glibc ¸ÇÍ­¤Ç¤¢¤ë¡£
+.SH 説明
+これらの関数は glibc 固有である。
 .LP
-argz vector ¤ÏŤµ¾ðÊóÉÕ¤­¤Îʸ»ú¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
-ʸ»ú¥Ð¥Ã¥Õ¥¡¤Ç¤Ï¡¢Ê£¿ô¤Îʸ»úÎ󤬠NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤Ç¶èÀÚ¤é¤ì¤Æ¤ª¤ê¡¢
-ʸ»úÎó¤ÎÇÛÎó¤È¤·¤Æ²ò¼á¤µ¤ì¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
-Ťµ¤¬ 0 ¤Ç¤Ê¤¤¾ì¹ç¡¢¥Ð¥Ã¥Õ¥¡¤ÎºÇ¸å¤Î¥Ð¥¤¥È¤Ï NULL ¥Ð¥¤¥È¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+argz vector は長さ情報付きの文字バッファへのポインタである。 文字バッファでは、複数の文字列がヌルバイト (\(aq\e0\(aq)
+で区切られており、 文字列の配列として解釈されるようになっている。 長さが 0 でない場合、バッファの最後のバイトはヌルバイトでなければならない。
 .LP
-¤³¤ì¤é¤Î´Ø¿ô¤Ï argz vector ¤òÁàºî¤¹¤ë¤¿¤á¤Î¤â¤Î¤Ç¤¢¤ë¡£
-¥Ú¥¢ (NULL,0) ¤Ï argz vector ¤Ç¤¢¤ê¡¢µÕ¤Ë¸À¤¨¤Ð
-Ťµ 0 ¤Î argz vector¤Ï NULL ¥Ý¥¤¥ó¥¿¤ò»ý¤¿¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-¶õ¤Ç¤Ê¤¤ argz vector ¤Î³ä¤êÅö¤Æ¤Ï
-.BR malloc (3)
-¤ò»È¤Ã¤Æ¹Ô¤ï¤ì¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢argz vector ¤ò²òÊü¤¹¤ë¤Î¤Ë
-.BR free (3)
-¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
+これらの関数は argz vector を操作するためのものである。 ペア (NULL,0) は argz vector であり、逆に言えば 長さ 0
+の argz vectorはヌルポインタを持たなければならない。 空でない argz vector の割り当ては \fBmalloc\fP(3)
+を使って行われる。したがって、argz vector を解放するのに \fBfree\fP(3)  を使うことができる。
 .LP
-.BR argz_add ()
-¤Ï¡¢Ê¸»úÎó
-.I str
-¤òÇÛÎó
-.IR *argz
-¤ÎËöÈø¤ËÄɲä·¡¢
-.IR *argz
-¤È
-.IR *argz_len
-¤ò¹¹¿·¤¹¤ë¡£
+\fBargz_add\fP()  は、文字列 \fIstr\fP を配列 \fI*argz\fP の末尾に追加し、 \fI*argz\fP と \fI*argz_len\fP
+を更新する。
 .LP
-.BR argz_add_sep ()
-¤âƱÍͤÎÆ°ºî¤ò¤¹¤ë¤¬¡¢¶èÀÚ¤êʸ»ú
-.I delim
-¤Ë¤·¤¿¤¬¤Ã¤Æʸ»úÎó
-.I str
-¤òÊ£¿ô¤Îʸ»úÎó¤Ëʬ³ä¤¹¤ëÅÀ¤¬°Û¤Ê¤ë¡£
-Î㤨¤Ð¡¢¶èÀÚ¤êʸ»ú \\(aq:\\(aq ¤ò»ØÄꤷ¤Æ¡¢Unix ¥µ¡¼¥Á¡¦¥Ñ¥¹¤ËÂФ·¤Æ
-¤³¤Î´Ø¿ô¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¤À¤í¤¦¡£
+\fBargz_add_sep\fP()  も同様の動作をするが、区切り文字 \fIdelim\fP にしたがって文字列 \fIstr\fP
+を複数の文字列に分割する点が異なる。 例えば、区切り文字 \(aq:\(aq を指定して、UNIX サーチ・パスに対して
+この関数を使うことができるだろう。
 .LP
-.BR argz_append ()
-¤Ï argz vector
-.RI ( buf ,\  buf_len )
-¤Î¸å¤í¤Ë
-.RI (* argz ,\  *argz_len )
-¤òÉÕ¤±²Ã¤¨¡¢
-.I *argz
-¤È
-.I *argz_len
-¤ò¹¹¿·¤¹¤ë¡£
-(¤·¤¿¤¬¤Ã¤Æ¡¢
-.I *argz_len
-¤Ï
-.I buf_len
-¤À¤±Áý²Ã¤¹¤ë¡£)
+\fBargz_append\fP()  は argz vector (\fIbuf\fP,\ \fIbuf_len\fP)  の後ろに (\fI*argz\fP,\ \fI*argz_len\fP) を付け加え、 \fI*argz\fP と \fI*argz_len\fP を更新する。 (したがって、 \fI*argz_len\fP は
+\fIbuf_len\fP だけ増加する。)
 .LP
-.BR argz_count ()
-¤Ï
-.RI ( argz ,\  argz_len )
-Æâ¤Îʸ»úÎó¤Î¿ô¤ò¿ô¤¨¤ë¡£¼ÂºÝ¤Ë¤Ï NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤Î¿ô¤ò¿ô¤¨¤Æ¤¤¤ë¡£
+\fBargz_count\fP()  は (\fIargz\fP,\ \fIargz_len\fP)  内の文字列の数を数える。実際にはヌルバイト
+(\(aq\e0\(aq) の数を数えている。
 .LP
-.BR argz_create ()
-¤Ï¡¢Unix Î®¤Î°ú¤­¿ô¥Ù¥¯¥È¥ë¤Ç¤¢¤ë
-.RI ( "(char *) 0"
-¤Ç½ªÃ¼¤µ¤ì¤ë)
-.I argv
-¤ò¡¢argz vector
-.RI ( *argz ,\  *argz_len )
-¤ËÊÑ´¹¤¹¤ë¡£
+\fBargz_create\fP() は、UNIX 流の引き数ベクトルである (\fI(char\ *)\ 0\fP で終端される) \fIargv\fP を、argz
+vector (\fI*argz\fP,\ \fI*argz_len\fP)  に変換する。
 .LP
-.BR argz_create_sep ()
-¤Ï¡¢NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó
-.I str
-¤ò¶èÀÚ¤êʸ»ú
-.I sep
-¤¬¸½¤ì¤ëËè¤Ëʬ³ä¤·¤Ê¤¬¤é¡¢argz vector
-.RI (* argz ,\  *argz_len )
-¤ËÊÑ´¹¤¹¤ë¡£
+\fBargz_create_sep\fP()  は、ヌル終端された文字列 \fIstr\fP を区切り文字 \fIsep\fP が現れる毎に分割しながら、argz
+vector (*\fIargz\fP,\ \fI*argz_len\fP)  に変換する。
 .LP
-.BR argz_delete ()
-¤Ï¡¢
-.I entry
-¤Ç»Ø¤·¼¨¤µ¤ì¤¿Ê¸»úÎó¤ò argz vector
-.RI ( *argz ,\  *argz_len )
-¤«¤éºï½ü¤·¡¢
-.I *argz
-¤È
-.I *argz_len
-¤ò¹¹¿·¤¹¤ë¡£
+\fBargz_delete\fP()  は、 \fIentry\fP で指し示された文字列を argz vector (\fI*argz\fP,\ \fI*argz_len\fP) から削除し、 \fI*argz\fP と \fI*argz_len\fP を更新する。
 .LP
-.BR argz_extract ()
-¤Ï
-.BR argz_create ()
-¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£argz vector
-.RI ( argz ,\  argz_len )
-¤òÄ´¤Ù¡¢
-.I argv
-¤«¤é»Ï¤Þ¤ëÇÛÎó¤ò¥µ¥Öʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÇËä¤á¤Æ¤¤¤­¡¢
-°ìÈֺǸå¤Ë NULL ¤òÆþ¤ì¤Æ¡¢Unix Î®¤Î argv ¥Ù¥¯¥È¥ë¤òºîÀ®¤¹¤ë¡£
-ÇÛÎó
-.I argv
-¤Ï
-.IR argz_count ( argz , argz_len ") + 1"
-¸Ä¤Î¥Ý¥¤¥ó¥¿¤ò¼ýÍƤǤ­¤ë¶õ´Ö¤ò»ý¤Ã¤Æ¤¤¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+\fBargz_extract\fP()  は \fBargz_create\fP()  の反対の操作を行う。argz vector (\fIargz\fP,\ \fIargz_len\fP)  を調べ、 \fIargv\fP から始まる配列をサブ文字列へのポインタで埋めていき、 一番最後に NULL を入れて、UNIX
+流の argv ベクトルを作成する。 配列 \fIargv\fP は \fIargz_count\fP(\fIargz\fP,\fIargz_len\fP) + 1
+個のポインタを収容できる空間を持っていなければならない。
 .LP
-.BR argz_insert ()
-¤Ï
-.BR argz_delete ()
-¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£argz vector
-.RI ( *argz ,\  *argz_len )
-¤Î°ÌÃÖ
-.I before
-¤Ë°ú¤­¿ô
-.I entry
-¤òÁÞÆþ¤·¡¢
-.I *argz
-¤È
-.I *argz_len
-¤ò¹¹¿·¤¹¤ë¡£
-.I before
-¤¬ NULL ¤Î¾ì¹ç¡¢
-.I entry
-¤ÏËöÈø¤ËÁÞÆþ¤µ¤ì¤ë¡£
+\fBargz_insert\fP()  は \fBargz_delete\fP()  の反対の操作を行う。argz vector (\fI*argz\fP,\ \fI*argz_len\fP)  の位置 \fIbefore\fP に引き数 \fIentry\fP を挿入し、 \fI*argz\fP と \fI*argz_len\fP
+を更新する。 \fIbefore\fP が NULL の場合、 \fIentry\fP は末尾に挿入される。
 .LP
-.BR argz_next ()
-¤Ï argz vector ¤ò½çÈÖ¤ËÄ´¤Ù¤ë¤¿¤á¤Î´Ø¿ô¤Ç¤¢¤ë¡£
-.I entry
-¤¬ NULL ¤Î¾ì¹ç¡¢ºÇ½é¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£
-¤½¤¦¤Ç¤Ê¤¤¾ì¹ç¡¢¼¡¤Î¥¨¥ó¥È¥ê¤òÊÖ¤¹¡£
-¼¡¤Î¥¨¥ó¥È¥ê¤¬¤Ê¤¤¾ì¹ç¡¢NULL ¤òÊÖ¤¹¡£
+\fBargz_next\fP()  は argz vector を順番に調べるための関数である。 \fIentry\fP が NULL
+の場合、最初のエントリを返す。 そうでない場合、次のエントリを返す。 次のエントリがない場合、NULL を返す。
 .LP
-.BR argz_replace ()
-¤Ï¡¢
-.I str
-¤ò¤¹¤Ù¤Æ
-.I with
-¤ÇÃÖ¤­´¹¤¨¤ë (ɬÍפ˱þ¤¸¤Æ argz ¤ÎºÆ³ä¤êÅö¤Æ¤ò¹Ô¤¦)¡£
-.I replace_count
-¤¬ NULL ¤Ç¤Ê¤¤¾ì¹ç¡¢
-.I *replace_count
-¤òÃÖ¤­´¹¤¨¤ò¹Ô¤Ã¤¿¿ô¤À¤±Áý¤ä¤¹¡£
+\fBargz_replace\fP()  は、 \fIstr\fP をすべて \fIwith\fP で置き換える (必要に応じて argz の再割り当てを行う)。
+\fIreplace_count\fP が NULL でない場合、 \fI*replace_count\fP を置き換えを行った数だけ増やす。
 .LP
-.BR argz_stringify ()
-¤Ï
-.BR argz_create_sep ()
-¤ÎÈ¿ÂФÎÁàºî¤ò¹Ô¤¦¡£
-ËöÈø¤Î NULL ¥Ð¥¤¥È°Ê³°¤ÎÁ´¤Æ¤Î NULL ¥Ð¥¤¥È (\\(aq\\0\\(aq) ¤ò
-.I sep
-¤ÇÃÖ¤­´¹¤¨¤Æ¡¢
-argz vector ¤òÄ̾ï¤Îʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-¥á¥â¥ê³ä¤êÅö¤Æ¤ò¹Ô¤¦ argz ´Ø¿ô·²¤Ï¤¹¤Ù¤Æ \fIerror_t\fP ·¿¤ÎÊÖ¤êÃͤò»ý¤Ä¡£
-À®¸ù¤·¤¿¾ì¹ç¤Ï 0 ¤òÊÖ¤·¡¢³ä¤êÅö¤Æ¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ï
-\fBENOMEM\fP ¤òÊÖ¤¹¡£
-.SH ½àµò
-¤³¤ì¤é¤Î´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£Ãí°Õ¤·¤Æ»ÈÍѤ¹¤ë¤³¤È¡£
-.SH ¥Ð¥°
-NULL ¥Ð¥¤¥È¤Ç½ªÃ¼¤µ¤ì¤Æ¤¤¤Ê¤¤ argz vector ¤ò»ÈÍѤ·¤¿¾ì¹ç¡¢
-segmentation fault ¤òµ¯¤³¤¹¤«¤â¤·¤ì¤Ê¤¤¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR envz_add (3)
+\fBargz_stringify\fP()  は \fBargz_create_sep\fP()  の反対の操作を行う。 末尾の ヌルバイト以外の全てのヌルバイト
+(\(aq\e0\(aq) を \fIsep\fP で置き換えて、 argz vector を通常の文字列に変換する。
+.SH 返り値
+メモリ割り当てを行う argz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。 成功した場合は 0 を返し、割り当てエラーが発生した場合は
+\fBENOMEM\fP を返す。
+.SH 準拠
+これらの関数は GNU による拡張である。注意して使用すること。
+.SH バグ
+ヌルバイトで終端されていない argz vector を使用した場合、 segmentation fault を起こすかもしれない。
+.SH 関連項目
+\fBenvz_add\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.67 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。