5 POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/getcwd.html}
7 Gnulib module: getcwd or getcwd-lgpl
9 Portability problems fixed by either Gnulib module @code{getcwd} or
13 This function is declared in different header files (namely, @code{<io.h>} or
14 @code{<direct.h>}) on some platforms:
17 On glibc platforms, @code{getcwd (NULL, n)} allocates memory for the result.
18 On some other platforms, this call is not allowed.
20 On some platforms, the prototype for @code{getcwd} uses @code{int}
21 instead of @code{size_t} for the size argument when using non-standard
22 headers, and the declaration is missing from @code{<unistd.h>}:
25 On some platforms, @code{getcwd (buf, 0)} fails with @code{ERANGE}
26 instead of the required @code{EINVAL}:
30 Portability problems fixed by Gnulib module @code{getcwd}:
33 This function is missing on some older platforms.
35 This function does not handle long file names (greater than @code{PATH_MAX})
36 correctly on some platforms.
39 Portability problems not fixed by Gnulib:
42 When using @code{getcwd(NULL, nonzero)}, some platforms, such as glibc
43 or cygwin, allocate exactly @code{nonzero} bytes and fail with
44 @code{ERANGE} if it was not big enough, while other platforms, such as
45 FreeBSD, mingw, or MSVC 9, ignore the size argument and allocate whatever size
46 is necessary. If this call succeeds, an application cannot portably
47 access beyond the string length of the result.