OSDN Git Service

976797e665b441bc8c5cd667fd92a4c2bafa74be
[linuxjm/LDP_man-pages.git] / draft / man3 / envz_add.3
1 .\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
2 .\" Distributed under GPL
3 .\" based on the description in glibc source and infopages
4 .\"
5 .\" Corrections and additions, aeb
6 .\"
7 .\" Japanese Version Copyright (c) 2002 Akihiro MOTOKI, all rights reserved.
8 .\" Translated Mon Feb  2 2003 by Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
9 .\"
10 .TH ENVZ_ADD 3 2007-05-18 "" "Linux Programmer's Manual"
11 .\"O .SH NAME
12 .SH 名前
13 .\"O envz_add, envz_entry, envz_get, envz_merge,
14 .\"O envz_remove, envz_strip \- environment string support
15 envz_add, envz_entry, envz_get, envz_merge,
16 envz_remove, envz_strip \- 環境変数文字列の操作
17 .\"O .SH SYNOPSIS
18 .SH 書式
19 .nf
20 .B "#include <envz.h>"
21
22 .BI "error_t envz_add(char **" envz ", size_t *" envz_len ,
23 .ti 20n
24 .BI "const char *" name ", const char *" value );
25
26 .BI "char *envz_entry(const char *" envz ", size_t *" envz_len \
27 ", const char *" name );
28
29 .BI "char *envz_get(const char *" envz ", size_t *" envz_len \
30 ", const char *" name );
31
32 .BI "error_t envz_merge(char **" envz ", size_t *" envz_len ,
33 .ti 20n
34 .BI "const char *" envz2 ", size_t " envz2_len ", int " override );
35
36 .BI "void envz_remove(char **" envz ", size_t *" envz_len \
37 ", const char *" name );
38
39 .BI "void envz_strip(char **" envz ", size_t *" envz_len );
40 .fi
41 .\"O .SH DESCRIPTION
42 .SH 説明
43 .\"O These functions are glibc-specific.
44 これらの関数 glibc 固有である。
45 .LP
46 .\"O An argz vector is a pointer to a character buffer together with a length,
47 .\"O see
48 .\"O .BR argz_add (3).
49 .\"O An envz vector is a special argz vector, namely one where the strings
50 .\"O have the form "name=value".
51 .\"O Everything after the first \(aq=\(aq is considered
52 .\"O to be the value.
53 .\"O If there is no \(aq=\(aq, the value is taken to be NULL.
54 .\"O (While the value in case of a trailing \(aq=\(aq is the empty string "".)
55 argz vector は長さ情報付きの文字バッファへのポインタである。
56 .BR argz_add (3)
57 を参照のこと。
58 envz vector は、文字列が "name=value (名前=値)" の形式になっている特別な
59 argz vector である。
60 最初の \(aq=\(aq 以降はすべて値とみなされる。\(aq=\(aq がなければ、
61 値は NULL と解釈される。(文字列の一番最後の文字が \(aq=\(aq の場合、値は空文字列
62 "" と解釈される。)
63 .LP
64 .\"O These functions are for handling envz vectors.
65 これらの関数は envz vector を操作するためのものである。
66 .LP
67 .\"O .BR envz_add ()
68 .\"O adds the string
69 .\"O .RI \&" name = value \&"
70 .\"O (in case
71 .\"O .I value
72 .\"O is non-NULL) or
73 .\"O .RI \&" name \&"
74 .\"O (in case
75 .\"O .I value
76 .\"O is NULL) to the envz vector
77 .\"O .RI ( *envz ,\  *envz_len )
78 .\"O and updates
79 .\"O .I *envz
80 .\"O and
81 .\"O .IR *envz_len .
82 .\"O If an entry with the same
83 .\"O .I name
84 .\"O existed, it is removed.
85 .BR envz_add ()
86 は、文字列
87 .RI \&" name = value \&"
88 .RI ( value
89 が NULL でない場合) または
90 .RI \&" name \&"
91 .RI ( value
92 が NULL の場合) を
93 envz vector
94 .RI ( *envz ,\  *envz_len )
95 に追加し、
96 .I *envz
97
98 .I *envz_len
99 を更新する。
100 .I name
101 と同じ名前を持つエントリがあった場合、元のエントリは削除される。
102 .LP
103 .\"O .BR envz_entry ()
104 .\"O looks for
105 .\"O .I name
106 .\"O in the envz vector
107 .\"O .RI ( envz ,\  envz_len )
108 .\"O and returns the entry if found, or NULL if not.
109 .BR envz_entry ()
110 は、envz vector
111 .RI ( envz ,\  envz_len )
112 から名前が
113 .I name
114 のエントリを検索する。
115 見つかった場合はそのエントリを返し、見つからなかった場合は NULL を返す。
116 .LP
117 .\"O .BR envz_get ()
118 .\"O looks for
119 .\"O .I name
120 .\"O in the envz vector
121 .\"O .RI ( envz ,\  envz_len )
122 .\"O and returns the value if found, or NULL if not.
123 .\"O (Note that the value can also be NULL, namely when there is
124 .\"O an entry for
125 .\"O .I name
126 .\"O without \(aq=\(aq sign.)
127 .BR envz_get ()
128 は、envz vector
129 .RI ( envz ,\  envz_len )
130 から名前が
131 .I name
132 のエントリを検索する。
133 見つかった場合はエントリの値を返し、見つからなかった場合は NULL を返す。
134 (値は NULL の場合もあることに注意すること。名前が
135 .I name
136 のエントリに \(aq=\(aq 符号がない場合が該当する。)
137 .LP
138 .\"O .BR envz_merge ()
139 .\"O adds each entry in
140 .\"O .I envz2
141 .\"O to
142 .\"O .IR *envz ,
143 .\"O as if with
144 .\"O .BR envz_add ().
145 .\"O If
146 .\"O .I override
147 .\"O is true, then values in
148 .\"O .I envz2
149 .\"O will supersede those with the same name in
150 .\"O .IR *envz ,
151 .\"O otherwise not.
152 .BR envz_merge ()
153 は、
154 .BR envz_add ()
155 と同じように
156 .I envz2
157 の各エントリを
158 .I *envz
159 に追加する。
160 .I override
161 が真の場合、
162 .I envz2
163 の値で
164 .I *envz
165 内の同じ名前をもつ値は上書きされる。
166 偽の場合は上書きされない。
167 .LP
168 .\"O .BR envz_remove ()
169 .\"O removes the entry for
170 .\"O .I name
171 .\"O from
172 .\"O .RI ( *envz ,\  *envz_len )
173 .\"O if there was one.
174 .BR envz_remove ()
175 は、名前が
176 .I name
177 のエントリがあれば
178 .RI ( *envz ,\  *envz_len )
179 から削除する。
180 .LP
181 .\"O .BR envz_strip ()
182 .\"O removes all entries with value NULL.
183 .BR envz_strip ()
184 は、値が NULL のエントリをすべて削除する。
185 .\"O .SH "RETURN VALUE"
186 .SH 返り値
187 .\"O All envz functions that do memory allocation have a return type of
188 .\"O \fIerror_t\fP, and return 0 for success, and \fBENOMEM\fP
189 .\"O if an allocation error occurs.
190 メモリ割り当てを行う envz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。
191 成功した場合は 0 を返し、割り当てエラーが発生した場合は
192 \fBENOMEM\fP を返す。
193 .\"O .SH "CONFORMING TO"
194 .SH 準拠
195 .\"O These functions are a GNU extension.
196 .\"O Handle with care.
197 これらの関数は GNU による拡張である。注意して使用すること。
198 .\"O .SH EXAMPLE
199 .SH 例
200 .nf
201 #include <stdio.h>
202 #include <stdlib.h>
203 #include <envz.h>
204
205 int
206 main(int argc, char *argv[], char *envp[])
207 {
208     int i, e_len = 0;
209     char *str;
210
211     for (i = 0; envp[i] != NULL; i++)
212         e_len += strlen(envp[i]) + 1;
213
214     str = envz_entry(*envp, e_len, "HOME");
215     printf("%s\en", str);
216     str = envz_get(*envp, e_len, "HOME");
217     printf("%s\en", str);
218     exit(EXIT_SUCCESS);
219 }
220 .fi
221 .\"O .SH "SEE ALSO"
222 .SH 関連項目
223 .BR argz_add (3)