Hash :
2debee31
Author :
Date :
2020-12-25T18:39:47
Make it possible to turn off the mkdir override on Windows. * lib/sys_stat.in.h (mkdir): Conditionalize through GNULIB_MKDIR and GNULIB_MDA_MKDIR. Also support GNULIB_POSIXCHECK. * m4/sys_stat_h.m4 (gl_SYS_STAT_H_DEFAULTS): Initialize GNULIB_MKDIR, GNULIB_MDA_MKDIR. * modules/sys_stat (Makefile.am): Substitute GNULIB_MKDIR, GNULIB_MDA_MKDIR. * modules/mkdir (configure.ac): Invoke gl_SYS_STAT_MODULE_INDICATOR. * doc/posix-functions/mkdir.texi: Mention also the 'sys_stat' module.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
@node mkdir
@section @code{mkdir}
@findex mkdir
POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9699919799/functions/mkdir.html}
Gnulib module: sys_stat or mkdir
Portability problems fixed by either Gnulib module @code{sys_stat} 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