mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-06 13:41:39 +00:00
* doc/posix-headers/*.texi: Add info about MSVC 14. * doc/posix-functions/*.texi: Likewise. * doc/pastposix-functions/*.texi: Likewise. * doc/glibc-headers/*.texi: Likewise. * doc/glibc-functions/*.texi: Likewise.
50 lines
1.7 KiB
Plaintext
50 lines
1.7 KiB
Plaintext
@node getcwd
|
|
@section @code{getcwd}
|
|
@findex getcwd
|
|
|
|
POSIX specification:@* @url{http://www.opengroup.org/onlinepubs/9699919799/functions/getcwd.html}
|
|
|
|
Gnulib module: getcwd or getcwd-lgpl
|
|
|
|
Portability problems fixed by either Gnulib module @code{getcwd} or
|
|
@code{getcwd-lgpl}:
|
|
@itemize
|
|
@item
|
|
This function is declared in different header files (namely, @code{<io.h>} or
|
|
@code{<direct.h>}) on some platforms:
|
|
mingw, MSVC 14.
|
|
@item
|
|
On glibc platforms, @code{getcwd (NULL, n)} allocates memory for the result.
|
|
On some other platforms, this call is not allowed.
|
|
@item
|
|
On some platforms, the prototype for @code{getcwd} uses @code{int}
|
|
instead of @code{size_t} for the size argument when using non-standard
|
|
headers, and the declaration is missing from @code{<unistd.h>}:
|
|
mingw, MSVC 14.
|
|
@item
|
|
On some platforms, @code{getcwd (buf, 0)} fails with @code{ERANGE}
|
|
instead of the required @code{EINVAL}:
|
|
mingw, MSVC 14.
|
|
@end itemize
|
|
|
|
Portability problems fixed by Gnulib module @code{getcwd}:
|
|
@itemize
|
|
@item
|
|
This function is missing on some older platforms.
|
|
@item
|
|
This function does not handle long file names (greater than @code{PATH_MAX})
|
|
correctly on some platforms:
|
|
glibc on Linux 2.4.20, Mac OS X 10.5, FreeBSD 6.4, NetBSD 5.1, OpenBSD 4.9, AIX 7.1.
|
|
@end itemize
|
|
|
|
Portability problems not fixed by Gnulib:
|
|
@itemize
|
|
@item
|
|
When using @code{getcwd(NULL, nonzero)}, some platforms, such as glibc
|
|
or cygwin, allocate exactly @code{nonzero} bytes and fail with
|
|
@code{ERANGE} if it was not big enough, while other platforms, such as
|
|
FreeBSD, mingw, or MSVC 14, ignore the size argument and allocate whatever size
|
|
is necessary. If this call succeeds, an application cannot portably
|
|
access beyond the string length of the result.
|
|
@end itemize
|