mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 11:16:02 +00:00
* modules/sys_stat-h: Renamed from modules/sys_stat. * modules/sys_stat-h-tests: Renamed from modules/sys_stat-tests. * modules/sys_stat-h-c++-tests: Renamed from modules/sys_stat-c++-tests. * tests/test-sys_stat-h.c: Renamed from tests/test-sys_stat.c. * tests/test-sys_stat-h-c++.cc: Renamed from tests/test-sys_stat-c++.cc. * doc/posix-headers/sys_stat.texi: Update. * doc/posix-functions/mkdir.texi: Update. * modules/* (Depends-on): Update. * modules/sys_stat: New file.
43 lines
1.1 KiB
Plaintext
43 lines
1.1 KiB
Plaintext
@node mkdir
|
|
@subsection @code{mkdir}
|
|
@findex mkdir
|
|
|
|
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/mkdir.html}
|
|
|
|
Gnulib module: sys_stat-h or mkdir
|
|
@mindex sys_stat-h
|
|
@mindex mkdir
|
|
|
|
Portability problems fixed by either Gnulib module @code{sys_stat-h} or @code{mkdir}:
|
|
@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 Windows platforms (excluding Cygwin), this function is called @code{_mkdir}
|
|
and takes only one argument. The fix (without Gnulib) is to define a macro
|
|
like this:
|
|
@smallexample
|
|
#define mkdir ((int (*)()) _mkdir)
|
|
@end smallexample
|
|
or
|
|
@smallexample
|
|
#define mkdir(path,mode) _mkdir (path)
|
|
@end smallexample
|
|
@end itemize
|
|
|
|
Portability problems fixed by Gnulib module @code{mkdir}:
|
|
@itemize
|
|
@item
|
|
When the argument ends in a slash, the function call fails on some platforms.
|
|
@item
|
|
This function mistakenly succeeds on @samp{mkdir("d/./",mode)} on
|
|
some platforms:
|
|
Cygwin 1.5.x, mingw, MSVC 14.
|
|
@end itemize
|
|
|
|
Portability problems not fixed by Gnulib:
|
|
@itemize
|
|
@end itemize
|