view doc/posix-functions/environ.texi @ 9721:1d443a80afc4

New module 'environ'.
author Bruno Haible <bruno@clisp.org>
date Sun, 24 Feb 2008 16:40:15 +0100
parents 46b3aff8518a
children 437f6b35e0e5
line wrap: on
line source

@node environ
@section @code{environ}
@findex environ

POSIX specification: @url{http://www.opengroup.org/susv3xsh/environ.html}

Gnulib module: environ

Portability problems fixed by Gnulib:
@itemize
@item
POSIX does not require this variable to be declared, and it is indeed not
declared on some platforms:
MacOS X 10.3, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, IRIX 6.5, Solaris 10.
@item
On MacOS X 10, this variable is not declared.  Up to MacOS X 10.4, one can use
@smallexample
extern char **environ;
@end smallexample
to get the variable declared.  This does not work any more, however, in
shared libraries on MacOS X 10.5.  Here is a workaround: Instead, one can use
@smallexample
#include <crt_externs.h>
#define environ (*_NSGetEnviron())
@end smallexample
This works at least on MacOS X 10.3 and newer.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
The address of this variable is not a compile-time constant on some platforms:
mingw.
@end itemize