summaryrefslogtreecommitdiff
path: root/gnulib/doc/posix-functions/getcwd.texi
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib/doc/posix-functions/getcwd.texi')
m---------gnulib0
-rw-r--r--gnulib/doc/posix-functions/getcwd.texi49
2 files changed, 49 insertions, 0 deletions
diff --git a/gnulib b/gnulib
deleted file mode 160000
-Subproject 443bc5ffcf7429e557f4a371b0661abe98ddbc1
diff --git a/gnulib/doc/posix-functions/getcwd.texi b/gnulib/doc/posix-functions/getcwd.texi
new file mode 100644
index 0000000..5dfba59
--- /dev/null
+++ b/gnulib/doc/posix-functions/getcwd.texi
@@ -0,0 +1,49 @@
+@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 9.
+@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 9.
+@item
+On some platforms, @code{getcwd (buf, 0)} fails with @code{ERANGE}
+instead of the required @code{EINVAL}:
+mingw, MSVC 9.
+@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, MacOS 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 9, 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