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
5 .\" Corrections and additions, aeb
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>
10 .TH ENVZ_ADD 3 2007-05-18 "" "Linux Programmer's Manual"
12 envz_add, envz_entry, envz_get, envz_merge,
13 envz_remove, envz_strip \- 環境変数文字列の操作
16 .B "#include <envz.h>"
18 .BI "error_t envz_add(char **" envz ", size_t *" envz_len ,
20 .BI "const char *" name ", const char *" value );
22 .BI "char *envz_entry(const char *" envz ", size_t *" envz_len \
23 ", const char *" name );
25 .BI "char *envz_get(const char *" envz ", size_t *" envz_len \
26 ", const char *" name );
28 .BI "error_t envz_merge(char **" envz ", size_t *" envz_len ,
30 .BI "const char *" envz2 ", size_t " envz2_len ", int " override );
32 .BI "void envz_remove(char **" envz ", size_t *" envz_len \
33 ", const char *" name );
35 .BI "void envz_strip(char **" envz ", size_t *" envz_len );
40 argz vector は長さ情報付きの文字バッファへのポインタである。
43 envz vector は、文字列が "name=value (名前=値)" の形式になっている特別な
45 最初の \(aq=\(aq 以降はすべて値とみなされる。\(aq=\(aq がなければ、
46 値は NULL と解釈される。(文字列の一番最後の文字が \(aq=\(aq の場合、値は空文字列
49 これらの関数は envz vector を操作するためのものである。
53 .RI \&" name = value \&"
60 .RI ( *envz ,\ *envz_len )
67 と同じ名前を持つエントリがあった場合、元のエントリは削除される。
71 .RI ( envz ,\ envz_len )
75 見つかった場合はそのエントリを返し、見つからなかった場合は NULL を返す。
79 .RI ( envz ,\ envz_len )
83 見つかった場合はエントリの値を返し、見つからなかった場合は NULL を返す。
84 (値は NULL の場合もあることに注意すること。名前が
86 のエントリに \(aq=\(aq 符号がない場合が該当する。)
108 .RI ( *envz ,\ *envz_len )
112 は、値が NULL のエントリをすべて削除する。
114 メモリ割り当てを行う envz 関数群はすべて \fIerror_t\fP 型の返り値を持つ。
115 成功した場合は 0 を返し、割り当てエラーが発生した場合は
118 これらの関数は GNU による拡張である。注意して使用すること。
126 main(int argc, char *argv[], char *envp[])
131 for (i = 0; envp[i] != NULL; i++)
132 e_len += strlen(envp[i]) + 1;
134 str = envz_entry(*envp, e_len, "HOME");
135 printf("%s\en", str);
136 str = envz_get(*envp, e_len, "HOME");
137 printf("%s\en", str);