[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[freewnn:00839] Re: setenv() in uum
小野寛生です
At Sun, 31 Mar 2002 00:27:41 +0900,
Hiroo Ono wrote:
> libc が持っている、*environ[] 変数を書き換えて setenv() を実現している
> ようなんですが、FreeBSD のヘッダを見る限り、
>
> /usr/include/stand.h:
> extern struct env_var *environ;
これは嘘でした。実際に FreeBSD-stable の libc で使われているのは、下記の
ように
char** environ
という変数でした。
src/lib/libc/stdlib/setenv.c:
int
setenv(name, value, rewrite)
register const char *name;
register const char *value;
int rewrite;
{
extern char **environ;
...
}
というわけで、
(1) setenv() の定義は setenv.c に追い出す。
(2) configure で setenv() があるかどうか調べて、
(3) なければ setenv.o をリンクする。
ということにしたいと思います。
% Wnn/uum だけでやるのはどうすれば良いのか…