[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 だけでやるのはどうすれば良いのか…


http://www.freewnn.org/ FreeWnn Project