root/maint/gnulib/lib/unistd.in.h

/* [previous][next][first][last][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. _GL_WARN_ON_USE_ATTRIBUTE
  2. getpagesize

   1 /* Substitute for and wrapper around <unistd.h>.
   2    Copyright (C) 2003-2021 Free Software Foundation, Inc.
   3 
   4    This file is free software: you can redistribute it and/or modify
   5    it under the terms of the GNU Lesser General Public License as
   6    published by the Free Software Foundation; either version 2.1 of the
   7    License, or (at your option) any later version.
   8 
   9    This file is distributed in the hope that it will be useful,
  10    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12    GNU Lesser General Public License for more details.
  13 
  14    You should have received a copy of the GNU Lesser General Public License
  15    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
  16 
  17 #ifndef _@GUARD_PREFIX@_UNISTD_H
  18 
  19 #if __GNUC__ >= 3
  20 @PRAGMA_SYSTEM_HEADER@
  21 #endif
  22 @PRAGMA_COLUMNS@
  23 
  24 #if @HAVE_UNISTD_H@ && defined _GL_INCLUDING_UNISTD_H
  25 /* Special invocation convention:
  26    - On Mac OS X 10.3.9 we have a sequence of nested includes
  27      <unistd.h> -> <signal.h> -> <pthread.h> -> <unistd.h>
  28      In this situation, the functions are not yet declared, therefore we cannot
  29      provide the C++ aliases.  */
  30 
  31 #@INCLUDE_NEXT@ @NEXT_UNISTD_H@
  32 
  33 #else
  34 /* Normal invocation convention.  */
  35 
  36 /* The include_next requires a split double-inclusion guard.  */
  37 #if @HAVE_UNISTD_H@
  38 # define _GL_INCLUDING_UNISTD_H
  39 # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
  40 # undef _GL_INCLUDING_UNISTD_H
  41 #endif
  42 
  43 /* Get all possible declarations of gethostname().  */
  44 #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
  45   && !defined _GL_INCLUDING_WINSOCK2_H
  46 # define _GL_INCLUDING_WINSOCK2_H
  47 # include <winsock2.h>
  48 # undef _GL_INCLUDING_WINSOCK2_H
  49 #endif
  50 
  51 #if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
  52 #define _@GUARD_PREFIX@_UNISTD_H
  53 
  54 /* NetBSD 5.0 mis-defines NULL.  Also get size_t.  */
  55 /* But avoid namespace pollution on glibc systems.  */
  56 #ifndef __GLIBC__
  57 # include <stddef.h>
  58 #endif
  59 
  60 /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>.  */
  61 /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>.  We must include
  62    it before we  #define unlink rpl_unlink.  */
  63 /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
  64 /* But avoid namespace pollution on glibc systems.  */
  65 #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
  66      || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \
  67          && (defined _WIN32 && ! defined __CYGWIN__)) \
  68      || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \
  69          && defined __CYGWIN__)) \
  70     && ! defined __GLIBC__
  71 # include <stdio.h>
  72 #endif
  73 
  74 /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in
  75    <unistd.h>.  */
  76 /* But avoid namespace pollution on glibc systems.  */
  77 #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \
  78     && (defined __CYGWIN__ || defined __ANDROID__) \
  79     && ! defined __GLIBC__
  80 # include <fcntl.h>
  81 #endif
  82 
  83 /* mingw fails to declare _exit in <unistd.h>.  */
  84 /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
  85    <unistd.h>.  */
  86 /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
  87 /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is
  88    included here.  */
  89 /* But avoid namespace pollution on glibc systems.  */
  90 #if !defined __GLIBC__ && !defined __osf__
  91 # define __need_system_stdlib_h
  92 # include <stdlib.h>
  93 # undef __need_system_stdlib_h
  94 #endif
  95 
  96 /* Native Windows platforms declare _chdir, _getcwd, _rmdir in
  97    <io.h> and/or <direct.h>, not in <unistd.h>.
  98    They also declare _access(), _chmod(), _close(), _dup(), _dup2(), _isatty(),
  99    _lseek(), _read(), _unlink(), _write() in <io.h>.  */
 100 #if defined _WIN32 && !defined __CYGWIN__
 101 # include <io.h>
 102 # include <direct.h>
 103 #endif
 104 
 105 /* Native Windows platforms declare _execl*, _execv* in <process.h>.  */
 106 #if defined _WIN32 && !defined __CYGWIN__
 107 # include <process.h>
 108 #endif
 109 
 110 /* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
 111    NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>.  */
 112 /* But avoid namespace pollution on glibc systems.  */
 113 #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \
 114      || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \
 115     && !defined __GLIBC__
 116 # include <netdb.h>
 117 #endif
 118 
 119 /* Mac OS X 10.13, Solaris 11.4, and Android 9.0 declare getentropy in
 120    <sys/random.h>, not in <unistd.h>.  */
 121 /* But avoid namespace pollution on glibc systems.  */
 122 #if (@GNULIB_GETENTROPY@ || defined GNULIB_POSIXCHECK) \
 123     && ((defined __APPLE__ && defined __MACH__) || defined __sun \
 124         || defined __ANDROID__) \
 125     && @UNISTD_H_HAVE_SYS_RANDOM_H@ \
 126     && !defined __GLIBC__
 127 # include <sys/random.h>
 128 #endif
 129 
 130 /* Android 4.3 declares fchownat in <sys/stat.h>, not in <unistd.h>.  */
 131 /* But avoid namespace pollution on glibc systems.  */
 132 #if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
 133     && !defined __GLIBC__
 134 # include <sys/stat.h>
 135 #endif
 136 
 137 /* MSVC defines off_t in <sys/types.h>.
 138    May also define off_t to a 64-bit type on native Windows.  */
 139 /* Get off_t, ssize_t, mode_t.  */
 140 #include <sys/types.h>
 141 
 142 /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
 143 
 144 /* The definition of _GL_ARG_NONNULL is copied here.  */
 145 
 146 /* The definition of _GL_WARN_ON_USE is copied here.  */
 147 
 148 
 149 /* Get getopt(), optarg, optind, opterr, optopt.  */
 150 #if @GNULIB_GETOPT_POSIX@ && @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
 151 # include <getopt-cdefs.h>
 152 # include <getopt-pfx-core.h>
 153 #endif
 154 
 155 #ifndef _GL_INLINE_HEADER_BEGIN
 156  #error "Please include config.h first."
 157 #endif
 158 _GL_INLINE_HEADER_BEGIN
 159 #ifndef _GL_UNISTD_INLINE
 160 # define _GL_UNISTD_INLINE _GL_INLINE
 161 #endif
 162 
 163 /* Hide some function declarations from <winsock2.h>.  */
 164 
 165 #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
 166 # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
 167 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 168 #   undef socket
 169 #   define socket              socket_used_without_including_sys_socket_h
 170 #   undef connect
 171 #   define connect             connect_used_without_including_sys_socket_h
 172 #   undef accept
 173 #   define accept              accept_used_without_including_sys_socket_h
 174 #   undef bind
 175 #   define bind                bind_used_without_including_sys_socket_h
 176 #   undef getpeername
 177 #   define getpeername         getpeername_used_without_including_sys_socket_h
 178 #   undef getsockname
 179 #   define getsockname         getsockname_used_without_including_sys_socket_h
 180 #   undef getsockopt
 181 #   define getsockopt          getsockopt_used_without_including_sys_socket_h
 182 #   undef listen
 183 #   define listen              listen_used_without_including_sys_socket_h
 184 #   undef recv
 185 #   define recv                recv_used_without_including_sys_socket_h
 186 #   undef send
 187 #   define send                send_used_without_including_sys_socket_h
 188 #   undef recvfrom
 189 #   define recvfrom            recvfrom_used_without_including_sys_socket_h
 190 #   undef sendto
 191 #   define sendto              sendto_used_without_including_sys_socket_h
 192 #   undef setsockopt
 193 #   define setsockopt          setsockopt_used_without_including_sys_socket_h
 194 #   undef shutdown
 195 #   define shutdown            shutdown_used_without_including_sys_socket_h
 196 #  else
 197     _GL_WARN_ON_USE (socket,
 198                      "socket() used without including <sys/socket.h>");
 199     _GL_WARN_ON_USE (connect,
 200                      "connect() used without including <sys/socket.h>");
 201     _GL_WARN_ON_USE (accept,
 202                      "accept() used without including <sys/socket.h>");
 203     _GL_WARN_ON_USE (bind,
 204                      "bind() used without including <sys/socket.h>");
 205     _GL_WARN_ON_USE (getpeername,
 206                      "getpeername() used without including <sys/socket.h>");
 207     _GL_WARN_ON_USE (getsockname,
 208                      "getsockname() used without including <sys/socket.h>");
 209     _GL_WARN_ON_USE (getsockopt,
 210                      "getsockopt() used without including <sys/socket.h>");
 211     _GL_WARN_ON_USE (listen,
 212                      "listen() used without including <sys/socket.h>");
 213     _GL_WARN_ON_USE (recv,
 214                      "recv() used without including <sys/socket.h>");
 215     _GL_WARN_ON_USE (send,
 216                      "send() used without including <sys/socket.h>");
 217     _GL_WARN_ON_USE (recvfrom,
 218                      "recvfrom() used without including <sys/socket.h>");
 219     _GL_WARN_ON_USE (sendto,
 220                      "sendto() used without including <sys/socket.h>");
 221     _GL_WARN_ON_USE (setsockopt,
 222                      "setsockopt() used without including <sys/socket.h>");
 223     _GL_WARN_ON_USE (shutdown,
 224                      "shutdown() used without including <sys/socket.h>");
 225 #  endif
 226 # endif
 227 # if !defined _@GUARD_PREFIX@_SYS_SELECT_H
 228 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 229 #   undef select
 230 #   define select              select_used_without_including_sys_select_h
 231 #  else
 232     _GL_WARN_ON_USE (select,
 233                      "select() used without including <sys/select.h>");
 234 #  endif
 235 # endif
 236 #endif
 237 
 238 
 239 /* OS/2 EMX lacks these macros.  */
 240 #ifndef STDIN_FILENO
 241 # define STDIN_FILENO 0
 242 #endif
 243 #ifndef STDOUT_FILENO
 244 # define STDOUT_FILENO 1
 245 #endif
 246 #ifndef STDERR_FILENO
 247 # define STDERR_FILENO 2
 248 #endif
 249 
 250 /* Ensure *_OK macros exist.  */
 251 #ifndef F_OK
 252 # define F_OK 0
 253 # define X_OK 1
 254 # define W_OK 2
 255 # define R_OK 4
 256 #endif
 257 
 258 
 259 /* Declare overridden functions.  */
 260 
 261 
 262 #if @GNULIB_ACCESS@
 263 # if @REPLACE_ACCESS@
 264 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 265 #   undef access
 266 #   define access rpl_access
 267 #  endif
 268 _GL_FUNCDECL_RPL (access, int, (const char *file, int mode)
 269                                _GL_ARG_NONNULL ((1)));
 270 _GL_CXXALIAS_RPL (access, int, (const char *file, int mode));
 271 # elif defined _WIN32 && !defined __CYGWIN__
 272 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 273 #   undef access
 274 #   define access _access
 275 #  endif
 276 _GL_CXXALIAS_MDA (access, int, (const char *file, int mode));
 277 # else
 278 _GL_CXXALIAS_SYS (access, int, (const char *file, int mode));
 279 # endif
 280 _GL_CXXALIASWARN (access);
 281 #elif defined GNULIB_POSIXCHECK
 282 # undef access
 283 # if HAVE_RAW_DECL_ACCESS
 284 /* The access() function is a security risk.  */
 285 _GL_WARN_ON_USE (access, "access does not always support X_OK - "
 286                  "use gnulib module access for portability; "
 287                  "also, this function is a security risk - "
 288                  "use the gnulib module faccessat instead");
 289 # endif
 290 #elif @GNULIB_MDA_ACCESS@
 291 /* On native Windows, map 'access' to '_access', so that -loldnames is not
 292    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 293    platforms by defining GNULIB_NAMESPACE::access always.  */
 294 # if defined _WIN32 && !defined __CYGWIN__
 295 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 296 #   undef access
 297 #   define access _access
 298 #  endif
 299 _GL_CXXALIAS_MDA (access, int, (const char *file, int mode));
 300 # else
 301 _GL_CXXALIAS_SYS (access, int, (const char *file, int mode));
 302 # endif
 303 _GL_CXXALIASWARN (access);
 304 #endif
 305 
 306 
 307 #if @GNULIB_CHDIR@
 308 # if defined _WIN32 && !defined __CYGWIN__
 309 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 310 #   undef chdir
 311 #   define chdir _chdir
 312 #  endif
 313 _GL_CXXALIAS_MDA (chdir, int, (const char *file));
 314 # else
 315 _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
 316 # endif
 317 _GL_CXXALIASWARN (chdir);
 318 #elif defined GNULIB_POSIXCHECK
 319 # undef chdir
 320 # if HAVE_RAW_DECL_CHDIR
 321 _GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
 322                  "use gnulib module chdir for portability");
 323 # endif
 324 #elif @GNULIB_MDA_CHDIR@
 325 /* On native Windows, map 'chdir' to '_chdir', so that -loldnames is not
 326    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 327    platforms by defining GNULIB_NAMESPACE::chdir always.  */
 328 # if defined _WIN32 && !defined __CYGWIN__
 329 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 330 #   undef chdir
 331 #   define chdir _chdir
 332 #  endif
 333 _GL_CXXALIAS_MDA (chdir, int, (const char *file));
 334 # else
 335 _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
 336 # endif
 337 _GL_CXXALIASWARN (chdir);
 338 #endif
 339 
 340 
 341 #if @GNULIB_CHOWN@
 342 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
 343    to GID (if GID is not -1).  Follow symbolic links.
 344    Return 0 if successful, otherwise -1 and errno set.
 345    See the POSIX:2008 specification
 346    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html.  */
 347 # if @REPLACE_CHOWN@
 348 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 349 #   undef chown
 350 #   define chown rpl_chown
 351 #  endif
 352 _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)
 353                               _GL_ARG_NONNULL ((1)));
 354 _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid));
 355 # else
 356 #  if !@HAVE_CHOWN@
 357 _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)
 358                               _GL_ARG_NONNULL ((1)));
 359 #  endif
 360 _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid));
 361 # endif
 362 _GL_CXXALIASWARN (chown);
 363 #elif defined GNULIB_POSIXCHECK
 364 # undef chown
 365 # if HAVE_RAW_DECL_CHOWN
 366 _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and "
 367                  "doesn't treat a uid or gid of -1 on some systems - "
 368                  "use gnulib module chown for portability");
 369 # endif
 370 #endif
 371 
 372 
 373 #if @GNULIB_CLOSE@
 374 # if @REPLACE_CLOSE@
 375 /* Automatically included by modules that need a replacement for close.  */
 376 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 377 #   undef close
 378 #   define close rpl_close
 379 #  endif
 380 _GL_FUNCDECL_RPL (close, int, (int fd));
 381 _GL_CXXALIAS_RPL (close, int, (int fd));
 382 # elif defined _WIN32 && !defined __CYGWIN__
 383 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 384 #   undef close
 385 #   define close _close
 386 #  endif
 387 _GL_CXXALIAS_MDA (close, int, (int fd));
 388 # else
 389 _GL_CXXALIAS_SYS (close, int, (int fd));
 390 # endif
 391 _GL_CXXALIASWARN (close);
 392 #elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
 393 # undef close
 394 # define close close_used_without_requesting_gnulib_module_close
 395 #elif defined GNULIB_POSIXCHECK
 396 # undef close
 397 /* Assume close is always declared.  */
 398 _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
 399                  "use gnulib module close for portability");
 400 #elif @GNULIB_MDA_CLOSE@
 401 /* On native Windows, map 'close' to '_close', so that -loldnames is not
 402    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 403    platforms by defining GNULIB_NAMESPACE::close always.  */
 404 # if defined _WIN32 && !defined __CYGWIN__
 405 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 406 #   undef close
 407 #   define close _close
 408 #  endif
 409 _GL_CXXALIAS_MDA (close, int, (int fd));
 410 # else
 411 _GL_CXXALIAS_SYS (close, int, (int fd));
 412 # endif
 413 _GL_CXXALIASWARN (close);
 414 #endif
 415 
 416 
 417 #if @GNULIB_COPY_FILE_RANGE@
 418 # if !@HAVE_COPY_FILE_RANGE@
 419 _GL_FUNCDECL_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
 420                                              int ofd, off_t *opos,
 421                                              size_t len, unsigned flags));
 422 _GL_CXXALIAS_SYS (copy_file_range, ssize_t, (int ifd, off_t *ipos,
 423                                              int ofd, off_t *opos,
 424                                              size_t len, unsigned flags));
 425 # endif
 426 _GL_CXXALIASWARN (copy_file_range);
 427 #elif defined GNULIB_POSIXCHECK
 428 # if HAVE_RAW_DECL_COPY_FILE_RANGE
 429 _GL_WARN_ON_USE (copy_file_range,
 430                  "copy_file_range is unportable - "
 431                  "use gnulib module copy_file_range for portability");
 432 # endif
 433 #endif
 434 
 435 
 436 #if @GNULIB_DUP@
 437 # if @REPLACE_DUP@
 438 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 439 #   define dup rpl_dup
 440 #  endif
 441 _GL_FUNCDECL_RPL (dup, int, (int oldfd));
 442 _GL_CXXALIAS_RPL (dup, int, (int oldfd));
 443 # elif defined _WIN32 && !defined __CYGWIN__
 444 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 445 #   undef dup
 446 #   define dup _dup
 447 #  endif
 448 _GL_CXXALIAS_MDA (dup, int, (int oldfd));
 449 # else
 450 _GL_CXXALIAS_SYS (dup, int, (int oldfd));
 451 # endif
 452 _GL_CXXALIASWARN (dup);
 453 #elif defined GNULIB_POSIXCHECK
 454 # undef dup
 455 # if HAVE_RAW_DECL_DUP
 456 _GL_WARN_ON_USE (dup, "dup is unportable - "
 457                  "use gnulib module dup for portability");
 458 # endif
 459 #elif @GNULIB_MDA_DUP@
 460 /* On native Windows, map 'dup' to '_dup', so that -loldnames is not
 461    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 462    platforms by defining GNULIB_NAMESPACE::dup always.  */
 463 # if defined _WIN32 && !defined __CYGWIN__
 464 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 465 #   undef dup
 466 #   define dup _dup
 467 #  endif
 468 _GL_CXXALIAS_MDA (dup, int, (int oldfd));
 469 # else
 470 _GL_CXXALIAS_SYS (dup, int, (int oldfd));
 471 # endif
 472 _GL_CXXALIASWARN (dup);
 473 #endif
 474 
 475 
 476 #if @GNULIB_DUP2@
 477 /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
 478    NEWFD = OLDFD, otherwise close NEWFD first if it is open.
 479    Return newfd if successful, otherwise -1 and errno set.
 480    See the POSIX:2008 specification
 481    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>.  */
 482 # if @REPLACE_DUP2@
 483 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 484 #   define dup2 rpl_dup2
 485 #  endif
 486 _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd));
 487 _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd));
 488 # elif defined _WIN32 && !defined __CYGWIN__
 489 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 490 #   undef dup2
 491 #   define dup2 _dup2
 492 #  endif
 493 _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd));
 494 # else
 495 _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
 496 # endif
 497 _GL_CXXALIASWARN (dup2);
 498 #elif defined GNULIB_POSIXCHECK
 499 # undef dup2
 500 # if HAVE_RAW_DECL_DUP2
 501 _GL_WARN_ON_USE (dup2, "dup2 is unportable - "
 502                  "use gnulib module dup2 for portability");
 503 # endif
 504 #elif @GNULIB_MDA_DUP2@
 505 /* On native Windows, map 'dup2' to '_dup2', so that -loldnames is not
 506    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 507    platforms by defining GNULIB_NAMESPACE::dup2 always.  */
 508 # if defined _WIN32 && !defined __CYGWIN__
 509 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 510 #   undef dup2
 511 #   define dup2 _dup2
 512 #  endif
 513 _GL_CXXALIAS_MDA (dup2, int, (int oldfd, int newfd));
 514 # else
 515 _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
 516 # endif
 517 _GL_CXXALIASWARN (dup2);
 518 #endif
 519 
 520 
 521 #if @GNULIB_DUP3@
 522 /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the
 523    specified flags.
 524    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
 525    and O_TEXT, O_BINARY (defined in "binary-io.h").
 526    Close NEWFD first if it is open.
 527    Return newfd if successful, otherwise -1 and errno set.
 528    See the Linux man page at
 529    <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>.  */
 530 # if @HAVE_DUP3@
 531 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 532 #   define dup3 rpl_dup3
 533 #  endif
 534 _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
 535 _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
 536 # else
 537 _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
 538 _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
 539 # endif
 540 _GL_CXXALIASWARN (dup3);
 541 #elif defined GNULIB_POSIXCHECK
 542 # undef dup3
 543 # if HAVE_RAW_DECL_DUP3
 544 _GL_WARN_ON_USE (dup3, "dup3 is unportable - "
 545                  "use gnulib module dup3 for portability");
 546 # endif
 547 #endif
 548 
 549 
 550 #if @GNULIB_ENVIRON@
 551 # if defined __CYGWIN__ && !defined __i386__
 552 /* The 'environ' variable is defined in a DLL. Therefore its declaration needs
 553    the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it.
 554    This leads to a link error on 64-bit Cygwin when the option
 555    -Wl,--disable-auto-import is in use.  */
 556 _GL_EXTERN_C __declspec(dllimport) char **environ;
 557 # endif
 558 # if !@HAVE_DECL_ENVIRON@
 559 /* Set of environment variables and values.  An array of strings of the form
 560    "VARIABLE=VALUE", terminated with a NULL.  */
 561 #  if defined __APPLE__ && defined __MACH__
 562 #   include <TargetConditionals.h>
 563 #   if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
 564 #    define _GL_USE_CRT_EXTERNS
 565 #   endif
 566 #  endif
 567 #  ifdef _GL_USE_CRT_EXTERNS
 568 #   include <crt_externs.h>
 569 #   define environ (*_NSGetEnviron ())
 570 #  else
 571 #   ifdef __cplusplus
 572 extern "C" {
 573 #   endif
 574 extern char **environ;
 575 #   ifdef __cplusplus
 576 }
 577 #   endif
 578 #  endif
 579 # endif
 580 #elif defined GNULIB_POSIXCHECK
 581 # if HAVE_RAW_DECL_ENVIRON
 582 _GL_UNISTD_INLINE char ***
 583 _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - "
     /* [previous][next][first][last][top][bottom][index][help] */
 584                            "use gnulib module environ for portability")
 585 rpl_environ (void)
 586 {
 587   return &environ;
 588 }
 589 #  undef environ
 590 #  define environ (*rpl_environ ())
 591 # endif
 592 #endif
 593 
 594 
 595 #if @GNULIB_EUIDACCESS@
 596 /* Like access(), except that it uses the effective user id and group id of
 597    the current process.  */
 598 # if !@HAVE_EUIDACCESS@
 599 _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode)
 600                                    _GL_ARG_NONNULL ((1)));
 601 # endif
 602 _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode));
 603 _GL_CXXALIASWARN (euidaccess);
 604 # if defined GNULIB_POSIXCHECK
 605 /* Like access(), this function is a security risk.  */
 606 _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - "
 607                  "use the gnulib module faccessat instead");
 608 # endif
 609 #elif defined GNULIB_POSIXCHECK
 610 # undef euidaccess
 611 # if HAVE_RAW_DECL_EUIDACCESS
 612 _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - "
 613                  "use gnulib module euidaccess for portability");
 614 # endif
 615 #endif
 616 
 617 
 618 #if @GNULIB_EXECL@
 619 # if @REPLACE_EXECL@
 620 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 621 #   undef execl
 622 #   define execl rpl_execl
 623 #  endif
 624 _GL_FUNCDECL_RPL (execl, int, (const char *program, const char *arg, ...)
 625                               _GL_ARG_NONNULL ((1)));
 626 _GL_CXXALIAS_RPL (execl, int, (const char *program, const char *arg, ...));
 627 # else
 628 _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...));
 629 # endif
 630 _GL_CXXALIASWARN (execl);
 631 #elif defined GNULIB_POSIXCHECK
 632 # undef execl
 633 # if HAVE_RAW_DECL_EXECL
 634 _GL_WARN_ON_USE (execl, "execl behaves very differently on mingw - "
 635                  "use gnulib module execl for portability");
 636 # endif
 637 #elif @GNULIB_MDA_EXECL@
 638 /* On native Windows, map 'execl' to '_execl', so that -loldnames is not
 639    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 640    platforms by defining GNULIB_NAMESPACE::execl always.  */
 641 # if defined _WIN32 && !defined __CYGWIN__
 642 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 643 #   undef execl
 644 #   define execl _execl
 645 #  endif
 646 _GL_CXXALIAS_MDA (execl, intptr_t, (const char *program, const char *arg, ...));
 647 # else
 648 _GL_CXXALIAS_SYS (execl, int, (const char *program, const char *arg, ...));
 649 # endif
 650 _GL_CXXALIASWARN (execl);
 651 #endif
 652 
 653 #if @GNULIB_EXECLE@
 654 # if @REPLACE_EXECLE@
 655 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 656 #   undef execle
 657 #   define execle rpl_execle
 658 #  endif
 659 _GL_FUNCDECL_RPL (execle, int, (const char *program, const char *arg, ...)
 660                                _GL_ARG_NONNULL ((1)));
 661 _GL_CXXALIAS_RPL (execle, int, (const char *program, const char *arg, ...));
 662 # else
 663 _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...));
 664 # endif
 665 _GL_CXXALIASWARN (execle);
 666 #elif defined GNULIB_POSIXCHECK
 667 # undef execle
 668 # if HAVE_RAW_DECL_EXECLE
 669 _GL_WARN_ON_USE (execle, "execle behaves very differently on mingw - "
 670                  "use gnulib module execle for portability");
 671 # endif
 672 #elif @GNULIB_MDA_EXECLE@
 673 /* On native Windows, map 'execle' to '_execle', so that -loldnames is not
 674    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 675    platforms by defining GNULIB_NAMESPACE::execle always.  */
 676 # if defined _WIN32 && !defined __CYGWIN__
 677 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 678 #   undef execle
 679 #   define execle _execle
 680 #  endif
 681 _GL_CXXALIAS_MDA (execle, intptr_t,
 682                   (const char *program, const char *arg, ...));
 683 # else
 684 _GL_CXXALIAS_SYS (execle, int, (const char *program, const char *arg, ...));
 685 # endif
 686 _GL_CXXALIASWARN (execle);
 687 #endif
 688 
 689 #if @GNULIB_EXECLP@
 690 # if @REPLACE_EXECLP@
 691 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 692 #   undef execlp
 693 #   define execlp rpl_execlp
 694 #  endif
 695 _GL_FUNCDECL_RPL (execlp, int, (const char *program, const char *arg, ...)
 696                                _GL_ARG_NONNULL ((1)));
 697 _GL_CXXALIAS_RPL (execlp, int, (const char *program, const char *arg, ...));
 698 # else
 699 _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...));
 700 # endif
 701 _GL_CXXALIASWARN (execlp);
 702 #elif defined GNULIB_POSIXCHECK
 703 # undef execlp
 704 # if HAVE_RAW_DECL_EXECLP
 705 _GL_WARN_ON_USE (execlp, "execlp behaves very differently on mingw - "
 706                  "use gnulib module execlp for portability");
 707 # endif
 708 #elif @GNULIB_MDA_EXECLP@
 709 /* On native Windows, map 'execlp' to '_execlp', so that -loldnames is not
 710    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 711    platforms by defining GNULIB_NAMESPACE::execlp always.  */
 712 # if defined _WIN32 && !defined __CYGWIN__
 713 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 714 #   undef execlp
 715 #   define execlp _execlp
 716 #  endif
 717 _GL_CXXALIAS_MDA (execlp, intptr_t,
 718                   (const char *program, const char *arg, ...));
 719 # else
 720 _GL_CXXALIAS_SYS (execlp, int, (const char *program, const char *arg, ...));
 721 # endif
 722 _GL_CXXALIASWARN (execlp);
 723 #endif
 724 
 725 
 726 #if @GNULIB_EXECV@
 727 # if @REPLACE_EXECV@
 728 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 729 #   undef execv
 730 #   define execv rpl_execv
 731 #  endif
 732 _GL_FUNCDECL_RPL (execv, int, (const char *program, char * const *argv)
 733                               _GL_ARG_NONNULL ((1, 2)));
 734 _GL_CXXALIAS_RPL (execv, int, (const char *program, char * const *argv));
 735 # else
 736 _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv));
 737 # endif
 738 _GL_CXXALIASWARN (execv);
 739 #elif defined GNULIB_POSIXCHECK
 740 # undef execv
 741 # if HAVE_RAW_DECL_EXECV
 742 _GL_WARN_ON_USE (execv, "execv behaves very differently on mingw - "
 743                  "use gnulib module execv for portability");
 744 # endif
 745 #elif @GNULIB_MDA_EXECV@
 746 /* On native Windows, map 'execv' to '_execv', so that -loldnames is not
 747    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 748    platforms by defining GNULIB_NAMESPACE::execv always.  */
 749 # if defined _WIN32 && !defined __CYGWIN__
 750 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 751 #   undef execv
 752 #   define execv _execv
 753 #  endif
 754 _GL_CXXALIAS_MDA_CAST (execv, intptr_t,
 755                        (const char *program, char * const *argv));
 756 # else
 757 _GL_CXXALIAS_SYS (execv, int, (const char *program, char * const *argv));
 758 # endif
 759 _GL_CXXALIASWARN (execv);
 760 #endif
 761 
 762 #if @GNULIB_EXECVE@
 763 # if @REPLACE_EXECVE@
 764 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 765 #   undef execve
 766 #   define execve rpl_execve
 767 #  endif
 768 _GL_FUNCDECL_RPL (execve, int,
 769                   (const char *program, char * const *argv, char * const *env)
 770                   _GL_ARG_NONNULL ((1, 2)));
 771 _GL_CXXALIAS_RPL (execve, int,
 772                   (const char *program, char * const *argv, char * const *env));
 773 # else
 774 _GL_CXXALIAS_SYS (execve, int,
 775                   (const char *program, char * const *argv, char * const *env));
 776 # endif
 777 _GL_CXXALIASWARN (execve);
 778 #elif defined GNULIB_POSIXCHECK
 779 # undef execve
 780 # if HAVE_RAW_DECL_EXECVE
 781 _GL_WARN_ON_USE (execve, "execve behaves very differently on mingw - "
 782                  "use gnulib module execve for portability");
 783 # endif
 784 #elif @GNULIB_MDA_EXECVE@
 785 /* On native Windows, map 'execve' to '_execve', so that -loldnames is not
 786    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 787    platforms by defining GNULIB_NAMESPACE::execve always.  */
 788 # if defined _WIN32 && !defined __CYGWIN__
 789 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 790 #   undef execve
 791 #   define execve _execve
 792 #  endif
 793 _GL_CXXALIAS_MDA_CAST (execve, intptr_t,
 794                        (const char *program, char * const *argv,
 795                         char * const *env));
 796 # else
 797 _GL_CXXALIAS_SYS (execve, int,
 798                   (const char *program, char * const *argv, char * const *env));
 799 # endif
 800 _GL_CXXALIASWARN (execve);
 801 #endif
 802 
 803 #if @GNULIB_EXECVP@
 804 # if @REPLACE_EXECVP@
 805 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 806 #   undef execvp
 807 #   define execvp rpl_execvp
 808 #  endif
 809 _GL_FUNCDECL_RPL (execvp, int, (const char *program, char * const *argv)
 810                                _GL_ARG_NONNULL ((1, 2)));
 811 _GL_CXXALIAS_RPL (execvp, int, (const char *program, char * const *argv));
 812 # else
 813 _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv));
 814 # endif
 815 _GL_CXXALIASWARN (execvp);
 816 #elif defined GNULIB_POSIXCHECK
 817 # undef execvp
 818 # if HAVE_RAW_DECL_EXECVP
 819 _GL_WARN_ON_USE (execvp, "execvp behaves very differently on mingw - "
 820                  "use gnulib module execvp for portability");
 821 # endif
 822 #elif @GNULIB_MDA_EXECVP@
 823 /* On native Windows, map 'execvp' to '_execvp', so that -loldnames is not
 824    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 825    platforms by defining GNULIB_NAMESPACE::execvp always.  */
 826 # if defined _WIN32 && !defined __CYGWIN__
 827 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 828 #   undef execvp
 829 #   define execvp _execvp
 830 #  endif
 831 _GL_CXXALIAS_MDA_CAST (execvp, intptr_t,
 832                        (const char *program, char * const *argv));
 833 # else
 834 _GL_CXXALIAS_SYS (execvp, int, (const char *program, char * const *argv));
 835 # endif
 836 _GL_CXXALIASWARN (execvp);
 837 #endif
 838 
 839 #if @GNULIB_EXECVPE@
 840 # if @REPLACE_EXECVPE@
 841 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 842 #   undef execvpe
 843 #   define execvpe rpl_execvpe
 844 #  endif
 845 _GL_FUNCDECL_RPL (execvpe, int,
 846                   (const char *program, char * const *argv, char * const *env)
 847                   _GL_ARG_NONNULL ((1, 2)));
 848 _GL_CXXALIAS_RPL (execvpe, int,
 849                   (const char *program, char * const *argv, char * const *env));
 850 # else
 851 #  if !@HAVE_DECL_EXECVPE@
 852 _GL_FUNCDECL_SYS (execvpe, int,
 853                   (const char *program, char * const *argv, char * const *env)
 854                   _GL_ARG_NONNULL ((1, 2)));
 855 #  endif
 856 _GL_CXXALIAS_SYS (execvpe, int,
 857                   (const char *program, char * const *argv, char * const *env));
 858 # endif
 859 _GL_CXXALIASWARN (execvpe);
 860 #elif defined GNULIB_POSIXCHECK
 861 # undef execvpe
 862 # if HAVE_RAW_DECL_EXECVPE
 863 _GL_WARN_ON_USE (execvpe, "execvpe behaves very differently on mingw - "
 864                  "use gnulib module execvpe for portability");
 865 # endif
 866 #elif @GNULIB_MDA_EXECVPE@
 867 /* On native Windows, map 'execvpe' to '_execvpe', so that -loldnames is not
 868    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
 869    platforms by defining GNULIB_NAMESPACE::execvpe on all platforms that have
 870    it.  */
 871 # if defined _WIN32 && !defined __CYGWIN__
 872 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 873 #   undef execvpe
 874 #   define execvpe _execvpe
 875 #  endif
 876 _GL_CXXALIAS_MDA_CAST (execvpe, intptr_t,
 877                        (const char *program, char * const *argv,
 878                         char * const *env));
 879 # elif @HAVE_EXECVPE@
 880 #  if !@HAVE_DECL_EXECVPE@
 881 _GL_FUNCDECL_SYS (execvpe, int,
 882                   (const char *program, char * const *argv, char * const *env)
 883                   _GL_ARG_NONNULL ((1, 2)));
 884 #  endif
 885 _GL_CXXALIAS_SYS (execvpe, int,
 886                   (const char *program, char * const *argv, char * const *env));
 887 # endif
 888 # if (defined _WIN32 && !defined __CYGWIN__) || @HAVE_EXECVPE@
 889 _GL_CXXALIASWARN (execvpe);
 890 # endif
 891 #endif
 892 
 893 
 894 #if @GNULIB_FACCESSAT@
 895 # if @REPLACE_FACCESSAT@
 896 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 897 #   undef faccessat
 898 #   define faccessat rpl_faccessat
 899 #  endif
 900 _GL_FUNCDECL_RPL (faccessat, int,
 901                   (int fd, char const *name, int mode, int flag)
 902                   _GL_ARG_NONNULL ((2)));
 903 _GL_CXXALIAS_RPL (faccessat, int,
 904                   (int fd, char const *name, int mode, int flag));
 905 # else
 906 #  if !@HAVE_FACCESSAT@
 907 _GL_FUNCDECL_SYS (faccessat, int,
 908                   (int fd, char const *file, int mode, int flag)
 909                   _GL_ARG_NONNULL ((2)));
 910 #  endif
 911 _GL_CXXALIAS_SYS (faccessat, int,
 912                   (int fd, char const *file, int mode, int flag));
 913 # endif
 914 _GL_CXXALIASWARN (faccessat);
 915 #elif defined GNULIB_POSIXCHECK
 916 # undef faccessat
 917 # if HAVE_RAW_DECL_FACCESSAT
 918 _GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
 919                  "use gnulib module faccessat for portability");
 920 # endif
 921 #endif
 922 
 923 
 924 #if @GNULIB_FCHDIR@
 925 /* Change the process' current working directory to the directory on which
 926    the given file descriptor is open.
 927    Return 0 if successful, otherwise -1 and errno set.
 928    See the POSIX:2008 specification
 929    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>.  */
 930 # if ! @HAVE_FCHDIR@
 931 _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
 932 
 933 /* Gnulib internal hooks needed to maintain the fchdir metadata.  */
 934 _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename)
 935      _GL_ARG_NONNULL ((2));
 936 _GL_EXTERN_C void _gl_unregister_fd (int fd);
 937 _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
 938 _GL_EXTERN_C const char *_gl_directory_name (int fd);
 939 
 940 # else
 941 #  if !@HAVE_DECL_FCHDIR@
 942 _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
 943 #  endif
 944 # endif
 945 _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
 946 _GL_CXXALIASWARN (fchdir);
 947 #elif defined GNULIB_POSIXCHECK
 948 # undef fchdir
 949 # if HAVE_RAW_DECL_FCHDIR
 950 _GL_WARN_ON_USE (fchdir, "fchdir is unportable - "
 951                  "use gnulib module fchdir for portability");
 952 # endif
 953 #endif
 954 
 955 
 956 #if @GNULIB_FCHOWNAT@
 957 # if @REPLACE_FCHOWNAT@
 958 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
 959 #   undef fchownat
 960 #   define fchownat rpl_fchownat
 961 #  endif
 962 _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file,
 963                                   uid_t owner, gid_t group, int flag)
 964                                  _GL_ARG_NONNULL ((2)));
 965 _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file,
 966                                   uid_t owner, gid_t group, int flag));
 967 # else
 968 #  if !@HAVE_FCHOWNAT@
 969 _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file,
 970                                   uid_t owner, gid_t group, int flag)
 971                                  _GL_ARG_NONNULL ((2)));
 972 #  endif
 973 _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file,
 974                                   uid_t owner, gid_t group, int flag));
 975 # endif
 976 _GL_CXXALIASWARN (fchownat);
 977 #elif defined GNULIB_POSIXCHECK
 978 # undef fchownat
 979 # if HAVE_RAW_DECL_FCHOWNAT
 980 _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
 981                  "use gnulib module fchownat for portability");
 982 # endif
 983 #endif
 984 
 985 
 986 #if @GNULIB_FDATASYNC@
 987 /* Synchronize changes to a file.
 988    Return 0 if successful, otherwise -1 and errno set.
 989    See POSIX:2008 specification
 990    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
 991 # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@
 992 _GL_FUNCDECL_SYS (fdatasync, int, (int fd));
 993 # endif
 994 _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
 995 _GL_CXXALIASWARN (fdatasync);
 996 #elif defined GNULIB_POSIXCHECK
 997 # undef fdatasync
 998 # if HAVE_RAW_DECL_FDATASYNC
 999 _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
1000                  "use gnulib module fdatasync for portability");
1001 # endif
1002 #endif
1003 
1004 
1005 #if @GNULIB_FSYNC@
1006 /* Synchronize changes, including metadata, to a file.
1007    Return 0 if successful, otherwise -1 and errno set.
1008    See POSIX:2008 specification
1009    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>.  */
1010 # if !@HAVE_FSYNC@
1011 _GL_FUNCDECL_SYS (fsync, int, (int fd));
1012 # endif
1013 _GL_CXXALIAS_SYS (fsync, int, (int fd));
1014 _GL_CXXALIASWARN (fsync);
1015 #elif defined GNULIB_POSIXCHECK
1016 # undef fsync
1017 # if HAVE_RAW_DECL_FSYNC
1018 _GL_WARN_ON_USE (fsync, "fsync is unportable - "
1019                  "use gnulib module fsync for portability");
1020 # endif
1021 #endif
1022 
1023 
1024 #if @GNULIB_FTRUNCATE@
1025 /* Change the size of the file to which FD is opened to become equal to LENGTH.
1026    Return 0 if successful, otherwise -1 and errno set.
1027    See the POSIX:2008 specification
1028    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>.  */
1029 # if @REPLACE_FTRUNCATE@
1030 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1031 #   undef ftruncate
1032 #   define ftruncate rpl_ftruncate
1033 #  endif
1034 _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length));
1035 _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length));
1036 # else
1037 #  if !@HAVE_FTRUNCATE@
1038 _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
1039 #  endif
1040 _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
1041 # endif
1042 _GL_CXXALIASWARN (ftruncate);
1043 #elif defined GNULIB_POSIXCHECK
1044 # undef ftruncate
1045 # if HAVE_RAW_DECL_FTRUNCATE
1046 _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
1047                  "use gnulib module ftruncate for portability");
1048 # endif
1049 #endif
1050 
1051 
1052 #if @GNULIB_GETCWD@
1053 /* Get the name of the current working directory, and put it in SIZE bytes
1054    of BUF.
1055    Return BUF if successful, or NULL if the directory couldn't be determined
1056    or SIZE was too small.
1057    See the POSIX:2008 specification
1058    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>.
1059    Additionally, the gnulib module 'getcwd' guarantees the following GNU
1060    extension: If BUF is NULL, an array is allocated with 'malloc'; the array
1061    is SIZE bytes long, unless SIZE == 0, in which case it is as big as
1062    necessary.  */
1063 # if @REPLACE_GETCWD@
1064 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1065 #   define getcwd rpl_getcwd
1066 #  endif
1067 _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size));
1068 _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size));
1069 # elif defined _WIN32 && !defined __CYGWIN__
1070 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1071 #   undef getcwd
1072 #   define getcwd _getcwd
1073 #  endif
1074 _GL_CXXALIAS_MDA (getcwd, char *, (char *buf, size_t size));
1075 # else
1076 /* Need to cast, because on mingw, the second parameter is
1077                                                    int size.  */
1078 _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
1079 # endif
1080 _GL_CXXALIASWARN (getcwd);
1081 #elif defined GNULIB_POSIXCHECK
1082 # undef getcwd
1083 # if HAVE_RAW_DECL_GETCWD
1084 _GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
1085                  "use gnulib module getcwd for portability");
1086 # endif
1087 #elif @GNULIB_MDA_GETCWD@
1088 /* On native Windows, map 'getcwd' to '_getcwd', so that -loldnames is not
1089    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1090    platforms by defining GNULIB_NAMESPACE::getcwd always.  */
1091 # if defined _WIN32 && !defined __CYGWIN__
1092 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1093 #   undef getcwd
1094 #   define getcwd _getcwd
1095 #  endif
1096 /* Need to cast, because on mingw, the second parameter is either
1097    'int size' or 'size_t size'.  */
1098 _GL_CXXALIAS_MDA_CAST (getcwd, char *, (char *buf, size_t size));
1099 # else
1100 _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
1101 # endif
1102 _GL_CXXALIASWARN (getcwd);
1103 #endif
1104 
1105 
1106 #if @GNULIB_GETDOMAINNAME@
1107 /* Return the NIS domain name of the machine.
1108    WARNING! The NIS domain name is unrelated to the fully qualified host name
1109             of the machine.  It is also unrelated to email addresses.
1110    WARNING! The NIS domain name is usually the empty string or "(none)" when
1111             not using NIS.
1112 
1113    Put up to LEN bytes of the NIS domain name into NAME.
1114    Null terminate it if the name is shorter than LEN.
1115    If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
1116    Return 0 if successful, otherwise set errno and return -1.  */
1117 # if @REPLACE_GETDOMAINNAME@
1118 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1119 #   undef getdomainname
1120 #   define getdomainname rpl_getdomainname
1121 #  endif
1122 _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
1123                                       _GL_ARG_NONNULL ((1)));
1124 _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
1125 # else
1126 #  if !@HAVE_DECL_GETDOMAINNAME@
1127 _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
1128                                       _GL_ARG_NONNULL ((1)));
1129 #  endif
1130 _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
1131 # endif
1132 _GL_CXXALIASWARN (getdomainname);
1133 #elif defined GNULIB_POSIXCHECK
1134 # undef getdomainname
1135 # if HAVE_RAW_DECL_GETDOMAINNAME
1136 _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
1137                  "use gnulib module getdomainname for portability");
1138 # endif
1139 #endif
1140 
1141 
1142 #if @GNULIB_GETDTABLESIZE@
1143 /* Return the maximum number of file descriptors in the current process.
1144    In POSIX, this is same as sysconf (_SC_OPEN_MAX).  */
1145 # if @REPLACE_GETDTABLESIZE@
1146 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1147 #   undef getdtablesize
1148 #   define getdtablesize rpl_getdtablesize
1149 #  endif
1150 _GL_FUNCDECL_RPL (getdtablesize, int, (void));
1151 _GL_CXXALIAS_RPL (getdtablesize, int, (void));
1152 # else
1153 #  if !@HAVE_GETDTABLESIZE@
1154 _GL_FUNCDECL_SYS (getdtablesize, int, (void));
1155 #  endif
1156 /* Need to cast, because on AIX, the parameter list is
1157                                            (...).  */
1158 _GL_CXXALIAS_SYS_CAST (getdtablesize, int, (void));
1159 # endif
1160 _GL_CXXALIASWARN (getdtablesize);
1161 #elif defined GNULIB_POSIXCHECK
1162 # undef getdtablesize
1163 # if HAVE_RAW_DECL_GETDTABLESIZE
1164 _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
1165                  "use gnulib module getdtablesize for portability");
1166 # endif
1167 #endif
1168 
1169 
1170 #if @GNULIB_GETENTROPY@
1171 /* Fill a buffer with random bytes.  */
1172 # if !@HAVE_GETENTROPY@
1173 _GL_FUNCDECL_SYS (getentropy, int, (void *buffer, size_t length));
1174 # endif
1175 _GL_CXXALIAS_SYS (getentropy, int, (void *buffer, size_t length));
1176 _GL_CXXALIASWARN (getentropy);
1177 #elif defined GNULIB_POSIXCHECK
1178 # undef getentropy
1179 # if HAVE_RAW_DECL_GETENTROPY
1180 _GL_WARN_ON_USE (getentropy, "getentropy is unportable - "
1181                  "use gnulib module getentropy for portability");
1182 # endif
1183 #endif
1184 
1185 
1186 #if @GNULIB_GETGROUPS@
1187 /* Return the supplemental groups that the current process belongs to.
1188    It is unspecified whether the effective group id is in the list.
1189    If N is 0, return the group count; otherwise, N describes how many
1190    entries are available in GROUPS.  Return -1 and set errno if N is
1191    not 0 and not large enough.  Fails with ENOSYS on some systems.  */
1192 # if @REPLACE_GETGROUPS@
1193 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1194 #   undef getgroups
1195 #   define getgroups rpl_getgroups
1196 #  endif
1197 _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups));
1198 _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups));
1199 # else
1200 #  if !@HAVE_GETGROUPS@
1201 _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups));
1202 #  endif
1203 _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups));
1204 # endif
1205 _GL_CXXALIASWARN (getgroups);
1206 #elif defined GNULIB_POSIXCHECK
1207 # undef getgroups
1208 # if HAVE_RAW_DECL_GETGROUPS
1209 _GL_WARN_ON_USE (getgroups, "getgroups is unportable - "
1210                  "use gnulib module getgroups for portability");
1211 # endif
1212 #endif
1213 
1214 
1215 #if @GNULIB_GETHOSTNAME@
1216 /* Return the standard host name of the machine.
1217    WARNING! The host name may or may not be fully qualified.
1218 
1219    Put up to LEN bytes of the host name into NAME.
1220    Null terminate it if the name is shorter than LEN.
1221    If the host name is longer than LEN, set errno = EINVAL and return -1.
1222    Return 0 if successful, otherwise set errno and return -1.  */
1223 # if @UNISTD_H_HAVE_WINSOCK2_H@
1224 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1225 #   undef gethostname
1226 #   define gethostname rpl_gethostname
1227 #  endif
1228 _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len)
1229                                     _GL_ARG_NONNULL ((1)));
1230 _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len));
1231 # else
1232 #  if !@HAVE_GETHOSTNAME@
1233 _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len)
1234                                     _GL_ARG_NONNULL ((1)));
1235 #  endif
1236 /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second
1237    parameter is
1238                                                       int len.  */
1239 _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len));
1240 # endif
1241 _GL_CXXALIASWARN (gethostname);
1242 #elif @UNISTD_H_HAVE_WINSOCK2_H@
1243 # undef gethostname
1244 # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
1245 #elif defined GNULIB_POSIXCHECK
1246 # undef gethostname
1247 # if HAVE_RAW_DECL_GETHOSTNAME
1248 _GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
1249                  "use gnulib module gethostname for portability");
1250 # endif
1251 #endif
1252 
1253 
1254 #if @GNULIB_GETLOGIN@
1255 /* Returns the user's login name, or NULL if it cannot be found.  Upon error,
1256    returns NULL with errno set.
1257 
1258    See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>.
1259 
1260    Most programs don't need to use this function, because the information is
1261    available through environment variables:
1262      ${LOGNAME-$USER}        on Unix platforms,
1263      $USERNAME               on native Windows platforms.
1264  */
1265 # if !@HAVE_DECL_GETLOGIN@
1266 _GL_FUNCDECL_SYS (getlogin, char *, (void));
1267 # endif
1268 _GL_CXXALIAS_SYS (getlogin, char *, (void));
1269 _GL_CXXALIASWARN (getlogin);
1270 #elif defined GNULIB_POSIXCHECK
1271 # undef getlogin
1272 # if HAVE_RAW_DECL_GETLOGIN
1273 _GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
1274                  "use gnulib module getlogin for portability");
1275 # endif
1276 #endif
1277 
1278 
1279 #if @GNULIB_GETLOGIN_R@
1280 /* Copies the user's login name to NAME.
1281    The array pointed to by NAME has room for SIZE bytes.
1282 
1283    Returns 0 if successful.  Upon error, an error number is returned, or -1 in
1284    the case that the login name cannot be found but no specific error is
1285    provided (this case is hopefully rare but is left open by the POSIX spec).
1286 
1287    See <https://pubs.opengroup.org/onlinepubs/9699919799/functions/getlogin.html>.
1288 
1289    Most programs don't need to use this function, because the information is
1290    available through environment variables:
1291      ${LOGNAME-$USER}        on Unix platforms,
1292      $USERNAME               on native Windows platforms.
1293  */
1294 # if @REPLACE_GETLOGIN_R@
1295 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1296 #   define getlogin_r rpl_getlogin_r
1297 #  endif
1298 _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size)
1299                                    _GL_ARG_NONNULL ((1)));
1300 _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size));
1301 # else
1302 #  if !@HAVE_DECL_GETLOGIN_R@
1303 _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
1304                                    _GL_ARG_NONNULL ((1)));
1305 #  endif
1306 /* Need to cast, because on Solaris 10 systems, the second argument is
1307                                                      int size.  */
1308 _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
1309 # endif
1310 _GL_CXXALIASWARN (getlogin_r);
1311 #elif defined GNULIB_POSIXCHECK
1312 # undef getlogin_r
1313 # if HAVE_RAW_DECL_GETLOGIN_R
1314 _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - "
1315                  "use gnulib module getlogin_r for portability");
1316 # endif
1317 #endif
1318 
1319 
1320 #if @GNULIB_GETPAGESIZE@
1321 # if @REPLACE_GETPAGESIZE@
1322 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1323 #   define getpagesize rpl_getpagesize
1324 #  endif
1325 _GL_FUNCDECL_RPL (getpagesize, int, (void));
1326 _GL_CXXALIAS_RPL (getpagesize, int, (void));
1327 # else
1328 /* On HP-UX, getpagesize exists, but it is not declared in <unistd.h> even if
1329    the compiler options -D_HPUX_SOURCE -D_XOPEN_SOURCE=600 are used.  */
1330 #  if defined __hpux
1331 _GL_FUNCDECL_SYS (getpagesize, int, (void));
1332 #  endif
1333 #  if !@HAVE_GETPAGESIZE@
1334 #   if !defined getpagesize
1335 /* This is for POSIX systems.  */
1336 #    if !defined _gl_getpagesize && defined _SC_PAGESIZE
1337 #     if ! (defined __VMS && __VMS_VER < 70000000)
1338 #      define _gl_getpagesize() sysconf (_SC_PAGESIZE)
1339 #     endif
1340 #    endif
1341 /* This is for older VMS.  */
1342 #    if !defined _gl_getpagesize && defined __VMS
1343 #     ifdef __ALPHA
1344 #      define _gl_getpagesize() 8192
1345 #     else
1346 #      define _gl_getpagesize() 512
1347 #     endif
1348 #    endif
1349 /* This is for BeOS.  */
1350 #    if !defined _gl_getpagesize && @HAVE_OS_H@
1351 #     include <OS.h>
1352 #     if defined B_PAGE_SIZE
1353 #      define _gl_getpagesize() B_PAGE_SIZE
1354 #     endif
1355 #    endif
1356 /* This is for AmigaOS4.0.  */
1357 #    if !defined _gl_getpagesize && defined __amigaos4__
1358 #     define _gl_getpagesize() 2048
1359 #    endif
1360 /* This is for older Unix systems.  */
1361 #    if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@
1362 #     include <sys/param.h>
1363 #     ifdef EXEC_PAGESIZE
1364 #      define _gl_getpagesize() EXEC_PAGESIZE
1365 #     else
1366 #      ifdef NBPG
1367 #       ifndef CLSIZE
1368 #        define CLSIZE 1
1369 #       endif
1370 #       define _gl_getpagesize() (NBPG * CLSIZE)
1371 #      else
1372 #       ifdef NBPC
1373 #        define _gl_getpagesize() NBPC
1374 #       endif
1375 #      endif
1376 #     endif
1377 #    endif
1378 #    if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1379 #     define getpagesize() _gl_getpagesize ()
1380 #    else
1381 #     if !GNULIB_defined_getpagesize_function
1382 _GL_UNISTD_INLINE int
1383 getpagesize ()
     /* [previous][next][first][last][top][bottom][index][help] */
1384 {
1385   return _gl_getpagesize ();
1386 }
1387 #      define GNULIB_defined_getpagesize_function 1
1388 #     endif
1389 #    endif
1390 #   endif
1391 #  endif
1392 /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t.  */
1393 _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void));
1394 # endif
1395 # if @HAVE_DECL_GETPAGESIZE@
1396 _GL_CXXALIASWARN (getpagesize);
1397 # endif
1398 #elif defined GNULIB_POSIXCHECK
1399 # undef getpagesize
1400 # if HAVE_RAW_DECL_GETPAGESIZE
1401 _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
1402                  "use gnulib module getpagesize for portability");
1403 # endif
1404 #endif
1405 
1406 
1407 #if @GNULIB_GETPASS@
1408 /* Function getpass() from module 'getpass':
1409      Read a password from /dev/tty or stdin.
1410    Function getpass() from module 'getpass-gnu':
1411      Read a password of arbitrary length from /dev/tty or stdin.  */
1412 # if @REPLACE_GETPASS@
1413 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1414 #   undef getpass
1415 #   define getpass rpl_getpass
1416 #  endif
1417 _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt)
1418                                    _GL_ARG_NONNULL ((1)));
1419 _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt));
1420 # else
1421 #  if !@HAVE_GETPASS@
1422 _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt)
1423                                    _GL_ARG_NONNULL ((1)));
1424 #  endif
1425 _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt));
1426 # endif
1427 _GL_CXXALIASWARN (getpass);
1428 #elif defined GNULIB_POSIXCHECK
1429 # undef getpass
1430 # if HAVE_RAW_DECL_GETPASS
1431 _GL_WARN_ON_USE (getpass, "getpass is unportable - "
1432                  "use gnulib module getpass or getpass-gnu for portability");
1433 # endif
1434 #endif
1435 
1436 
1437 #if @GNULIB_MDA_GETPID@
1438 /* On native Windows, map 'getpid' to '_getpid', so that -loldnames is not
1439    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1440    platforms by defining GNULIB_NAMESPACE::getpid always.  */
1441 # if defined _WIN32 && !defined __CYGWIN__
1442 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1443 #   undef getpid
1444 #   define getpid _getpid
1445 #  endif
1446 _GL_CXXALIAS_MDA (getpid, int, (void));
1447 # else
1448 _GL_CXXALIAS_SYS (getpid, pid_t, (void));
1449 # endif
1450 _GL_CXXALIASWARN (getpid);
1451 #endif
1452 
1453 
1454 #if @GNULIB_GETUSERSHELL@
1455 /* Return the next valid login shell on the system, or NULL when the end of
1456    the list has been reached.  */
1457 # if !@HAVE_DECL_GETUSERSHELL@
1458 _GL_FUNCDECL_SYS (getusershell, char *, (void));
1459 # endif
1460 _GL_CXXALIAS_SYS (getusershell, char *, (void));
1461 _GL_CXXALIASWARN (getusershell);
1462 #elif defined GNULIB_POSIXCHECK
1463 # undef getusershell
1464 # if HAVE_RAW_DECL_GETUSERSHELL
1465 _GL_WARN_ON_USE (getusershell, "getusershell is unportable - "
1466                  "use gnulib module getusershell for portability");
1467 # endif
1468 #endif
1469 
1470 #if @GNULIB_GETUSERSHELL@
1471 /* Rewind to pointer that is advanced at each getusershell() call.  */
1472 # if !@HAVE_DECL_GETUSERSHELL@
1473 _GL_FUNCDECL_SYS (setusershell, void, (void));
1474 # endif
1475 _GL_CXXALIAS_SYS (setusershell, void, (void));
1476 _GL_CXXALIASWARN (setusershell);
1477 #elif defined GNULIB_POSIXCHECK
1478 # undef setusershell
1479 # if HAVE_RAW_DECL_SETUSERSHELL
1480 _GL_WARN_ON_USE (setusershell, "setusershell is unportable - "
1481                  "use gnulib module getusershell for portability");
1482 # endif
1483 #endif
1484 
1485 #if @GNULIB_GETUSERSHELL@
1486 /* Free the pointer that is advanced at each getusershell() call and
1487    associated resources.  */
1488 # if !@HAVE_DECL_GETUSERSHELL@
1489 _GL_FUNCDECL_SYS (endusershell, void, (void));
1490 # endif
1491 _GL_CXXALIAS_SYS (endusershell, void, (void));
1492 _GL_CXXALIASWARN (endusershell);
1493 #elif defined GNULIB_POSIXCHECK
1494 # undef endusershell
1495 # if HAVE_RAW_DECL_ENDUSERSHELL
1496 _GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
1497                  "use gnulib module getusershell for portability");
1498 # endif
1499 #endif
1500 
1501 
1502 #if @GNULIB_GROUP_MEMBER@
1503 /* Determine whether group id is in calling user's group list.  */
1504 # if !@HAVE_GROUP_MEMBER@
1505 _GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
1506 # endif
1507 _GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
1508 _GL_CXXALIASWARN (group_member);
1509 #elif defined GNULIB_POSIXCHECK
1510 # undef group_member
1511 # if HAVE_RAW_DECL_GROUP_MEMBER
1512 _GL_WARN_ON_USE (group_member, "group_member is unportable - "
1513                  "use gnulib module group-member for portability");
1514 # endif
1515 #endif
1516 
1517 
1518 #if @GNULIB_ISATTY@
1519 # if @REPLACE_ISATTY@
1520 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1521 #   undef isatty
1522 #   define isatty rpl_isatty
1523 #  endif
1524 #  define GNULIB_defined_isatty 1
1525 _GL_FUNCDECL_RPL (isatty, int, (int fd));
1526 _GL_CXXALIAS_RPL (isatty, int, (int fd));
1527 # elif defined _WIN32 && !defined __CYGWIN__
1528 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1529 #   undef isatty
1530 #   define isatty _isatty
1531 #  endif
1532 _GL_CXXALIAS_MDA (isatty, int, (int fd));
1533 # else
1534 _GL_CXXALIAS_SYS (isatty, int, (int fd));
1535 # endif
1536 _GL_CXXALIASWARN (isatty);
1537 #elif defined GNULIB_POSIXCHECK
1538 # undef isatty
1539 # if HAVE_RAW_DECL_ISATTY
1540 _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
1541                  "use gnulib module isatty for portability");
1542 # endif
1543 #elif @GNULIB_MDA_ISATTY@
1544 /* On native Windows, map 'isatty' to '_isatty', so that -loldnames is not
1545    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1546    platforms by defining GNULIB_NAMESPACE::isatty always.  */
1547 # if defined _WIN32 && !defined __CYGWIN__
1548 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1549 #   undef isatty
1550 #   define isatty _isatty
1551 #  endif
1552 _GL_CXXALIAS_MDA (isatty, int, (int fd));
1553 # else
1554 _GL_CXXALIAS_SYS (isatty, int, (int fd));
1555 # endif
1556 _GL_CXXALIASWARN (isatty);
1557 #endif
1558 
1559 
1560 #if @GNULIB_LCHOWN@
1561 /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
1562    to GID (if GID is not -1).  Do not follow symbolic links.
1563    Return 0 if successful, otherwise -1 and errno set.
1564    See the POSIX:2008 specification
1565    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>.  */
1566 # if @REPLACE_LCHOWN@
1567 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1568 #   undef lchown
1569 #   define lchown rpl_lchown
1570 #  endif
1571 _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)
1572                                _GL_ARG_NONNULL ((1)));
1573 _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group));
1574 # else
1575 #  if !@HAVE_LCHOWN@
1576 _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)
1577                                _GL_ARG_NONNULL ((1)));
1578 #  endif
1579 _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group));
1580 # endif
1581 _GL_CXXALIASWARN (lchown);
1582 #elif defined GNULIB_POSIXCHECK
1583 # undef lchown
1584 # if HAVE_RAW_DECL_LCHOWN
1585 _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
1586                  "use gnulib module lchown for portability");
1587 # endif
1588 #endif
1589 
1590 
1591 #if @GNULIB_LINK@
1592 /* Create a new hard link for an existing file.
1593    Return 0 if successful, otherwise -1 and errno set.
1594    See POSIX:2008 specification
1595    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>.  */
1596 # if @REPLACE_LINK@
1597 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1598 #   define link rpl_link
1599 #  endif
1600 _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2)
1601                              _GL_ARG_NONNULL ((1, 2)));
1602 _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2));
1603 # else
1604 #  if !@HAVE_LINK@
1605 _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2)
1606                              _GL_ARG_NONNULL ((1, 2)));
1607 #  endif
1608 _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2));
1609 # endif
1610 _GL_CXXALIASWARN (link);
1611 #elif defined GNULIB_POSIXCHECK
1612 # undef link
1613 # if HAVE_RAW_DECL_LINK
1614 _GL_WARN_ON_USE (link, "link is unportable - "
1615                  "use gnulib module link for portability");
1616 # endif
1617 #endif
1618 
1619 
1620 #if @GNULIB_LINKAT@
1621 /* Create a new hard link for an existing file, relative to two
1622    directories.  FLAG controls whether symlinks are followed.
1623    Return 0 if successful, otherwise -1 and errno set.  */
1624 # if @REPLACE_LINKAT@
1625 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1626 #   undef linkat
1627 #   define linkat rpl_linkat
1628 #  endif
1629 _GL_FUNCDECL_RPL (linkat, int,
1630                   (int fd1, const char *path1, int fd2, const char *path2,
1631                    int flag)
1632                   _GL_ARG_NONNULL ((2, 4)));
1633 _GL_CXXALIAS_RPL (linkat, int,
1634                   (int fd1, const char *path1, int fd2, const char *path2,
1635                    int flag));
1636 # else
1637 #  if !@HAVE_LINKAT@
1638 _GL_FUNCDECL_SYS (linkat, int,
1639                   (int fd1, const char *path1, int fd2, const char *path2,
1640                    int flag)
1641                   _GL_ARG_NONNULL ((2, 4)));
1642 #  endif
1643 _GL_CXXALIAS_SYS (linkat, int,
1644                   (int fd1, const char *path1, int fd2, const char *path2,
1645                    int flag));
1646 # endif
1647 _GL_CXXALIASWARN (linkat);
1648 #elif defined GNULIB_POSIXCHECK
1649 # undef linkat
1650 # if HAVE_RAW_DECL_LINKAT
1651 _GL_WARN_ON_USE (linkat, "linkat is unportable - "
1652                  "use gnulib module linkat for portability");
1653 # endif
1654 #endif
1655 
1656 
1657 #if @GNULIB_LSEEK@
1658 /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
1659    Return the new offset if successful, otherwise -1 and errno set.
1660    See the POSIX:2008 specification
1661    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>.  */
1662 # if @REPLACE_LSEEK@
1663 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1664 #   define lseek rpl_lseek
1665 #  endif
1666 _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence));
1667 _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence));
1668 # elif defined _WIN32 && !defined __CYGWIN__
1669 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1670 #   undef lseek
1671 #   define lseek _lseek
1672 #  endif
1673 _GL_CXXALIAS_MDA (lseek, off_t, (int fd, off_t offset, int whence));
1674 # else
1675 _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
1676 # endif
1677 _GL_CXXALIASWARN (lseek);
1678 #elif defined GNULIB_POSIXCHECK
1679 # undef lseek
1680 # if HAVE_RAW_DECL_LSEEK
1681 _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
1682                  "systems - use gnulib module lseek for portability");
1683 # endif
1684 #elif @GNULIB_MDA_LSEEK@
1685 /* On native Windows, map 'lseek' to '_lseek', so that -loldnames is not
1686    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1687    platforms by defining GNULIB_NAMESPACE::lseek always.  */
1688 # if defined _WIN32 && !defined __CYGWIN__
1689 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1690 #   undef lseek
1691 #   define lseek _lseek
1692 #  endif
1693 _GL_CXXALIAS_MDA (lseek, long, (int fd, long offset, int whence));
1694 # else
1695 _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
1696 # endif
1697 _GL_CXXALIASWARN (lseek);
1698 #endif
1699 
1700 
1701 #if @GNULIB_PIPE@
1702 /* Create a pipe, defaulting to O_BINARY mode.
1703    Store the read-end as fd[0] and the write-end as fd[1].
1704    Return 0 upon success, or -1 with errno set upon failure.  */
1705 # if !@HAVE_PIPE@
1706 _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
1707 # endif
1708 _GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
1709 _GL_CXXALIASWARN (pipe);
1710 #elif defined GNULIB_POSIXCHECK
1711 # undef pipe
1712 # if HAVE_RAW_DECL_PIPE
1713 _GL_WARN_ON_USE (pipe, "pipe is unportable - "
1714                  "use gnulib module pipe-posix for portability");
1715 # endif
1716 #endif
1717 
1718 
1719 #if @GNULIB_PIPE2@
1720 /* Create a pipe, applying the given flags when opening the read-end of the
1721    pipe and the write-end of the pipe.
1722    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
1723    and O_TEXT, O_BINARY (defined in "binary-io.h").
1724    Store the read-end as fd[0] and the write-end as fd[1].
1725    Return 0 upon success, or -1 with errno set upon failure.
1726    See also the Linux man page at
1727    <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>.  */
1728 # if @HAVE_PIPE2@
1729 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1730 #   define pipe2 rpl_pipe2
1731 #  endif
1732 _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
1733 _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags));
1734 # else
1735 _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
1736 _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
1737 # endif
1738 _GL_CXXALIASWARN (pipe2);
1739 #elif defined GNULIB_POSIXCHECK
1740 # undef pipe2
1741 # if HAVE_RAW_DECL_PIPE2
1742 _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
1743                  "use gnulib module pipe2 for portability");
1744 # endif
1745 #endif
1746 
1747 
1748 #if @GNULIB_PREAD@
1749 /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET.
1750    Return the number of bytes placed into BUF if successful, otherwise
1751    set errno and return -1.  0 indicates EOF.
1752    See the POSIX:2008 specification
1753    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>.  */
1754 # if @REPLACE_PREAD@
1755 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1756 #   undef pread
1757 #   define pread rpl_pread
1758 #  endif
1759 _GL_FUNCDECL_RPL (pread, ssize_t,
1760                   (int fd, void *buf, size_t bufsize, off_t offset)
1761                   _GL_ARG_NONNULL ((2)));
1762 _GL_CXXALIAS_RPL (pread, ssize_t,
1763                   (int fd, void *buf, size_t bufsize, off_t offset));
1764 # else
1765 #  if !@HAVE_PREAD@
1766 _GL_FUNCDECL_SYS (pread, ssize_t,
1767                   (int fd, void *buf, size_t bufsize, off_t offset)
1768                   _GL_ARG_NONNULL ((2)));
1769 #  endif
1770 _GL_CXXALIAS_SYS (pread, ssize_t,
1771                   (int fd, void *buf, size_t bufsize, off_t offset));
1772 # endif
1773 _GL_CXXALIASWARN (pread);
1774 #elif defined GNULIB_POSIXCHECK
1775 # undef pread
1776 # if HAVE_RAW_DECL_PREAD
1777 _GL_WARN_ON_USE (pread, "pread is unportable - "
1778                  "use gnulib module pread for portability");
1779 # endif
1780 #endif
1781 
1782 
1783 #if @GNULIB_PWRITE@
1784 /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
1785    Return the number of bytes written if successful, otherwise
1786    set errno and return -1.  0 indicates nothing written.  See the
1787    POSIX:2008 specification
1788    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>.  */
1789 # if @REPLACE_PWRITE@
1790 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1791 #   undef pwrite
1792 #   define pwrite rpl_pwrite
1793 #  endif
1794 _GL_FUNCDECL_RPL (pwrite, ssize_t,
1795                   (int fd, const void *buf, size_t bufsize, off_t offset)
1796                   _GL_ARG_NONNULL ((2)));
1797 _GL_CXXALIAS_RPL (pwrite, ssize_t,
1798                   (int fd, const void *buf, size_t bufsize, off_t offset));
1799 # else
1800 #  if !@HAVE_PWRITE@
1801 _GL_FUNCDECL_SYS (pwrite, ssize_t,
1802                   (int fd, const void *buf, size_t bufsize, off_t offset)
1803                   _GL_ARG_NONNULL ((2)));
1804 #  endif
1805 _GL_CXXALIAS_SYS (pwrite, ssize_t,
1806                   (int fd, const void *buf, size_t bufsize, off_t offset));
1807 # endif
1808 _GL_CXXALIASWARN (pwrite);
1809 #elif defined GNULIB_POSIXCHECK
1810 # undef pwrite
1811 # if HAVE_RAW_DECL_PWRITE
1812 _GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
1813                  "use gnulib module pwrite for portability");
1814 # endif
1815 #endif
1816 
1817 
1818 #if @GNULIB_READ@
1819 /* Read up to COUNT bytes from file descriptor FD into the buffer starting
1820    at BUF.  See the POSIX:2008 specification
1821    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>.  */
1822 # if @REPLACE_READ@
1823 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1824 #   undef read
1825 #   define read rpl_read
1826 #  endif
1827 _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
1828                                  _GL_ARG_NONNULL ((2)));
1829 _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
1830 # elif defined _WIN32 && !defined __CYGWIN__
1831 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1832 #   undef read
1833 #   define read _read
1834 #  endif
1835 _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, size_t count));
1836 # else
1837 _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count));
1838 # endif
1839 _GL_CXXALIASWARN (read);
1840 #elif @GNULIB_MDA_READ@
1841 /* On native Windows, map 'read' to '_read', so that -loldnames is not
1842    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1843    platforms by defining GNULIB_NAMESPACE::read always.  */
1844 # if defined _WIN32 && !defined __CYGWIN__
1845 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1846 #   undef read
1847 #   define read _read
1848 #  endif
1849 #  ifdef __MINGW32__
1850 _GL_CXXALIAS_MDA (read, int, (int fd, void *buf, unsigned int count));
1851 #  else
1852 _GL_CXXALIAS_MDA (read, ssize_t, (int fd, void *buf, unsigned int count));
1853 #  endif
1854 # else
1855 _GL_CXXALIAS_SYS (read, ssize_t, (int fd, void *buf, size_t count));
1856 # endif
1857 _GL_CXXALIASWARN (read);
1858 #endif
1859 
1860 
1861 #if @GNULIB_READLINK@
1862 /* Read the contents of the symbolic link FILE and place the first BUFSIZE
1863    bytes of it into BUF.  Return the number of bytes placed into BUF if
1864    successful, otherwise -1 and errno set.
1865    See the POSIX:2008 specification
1866    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>.  */
1867 # if @REPLACE_READLINK@
1868 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1869 #   define readlink rpl_readlink
1870 #  endif
1871 _GL_FUNCDECL_RPL (readlink, ssize_t,
1872                   (const char *restrict file,
1873                    char *restrict buf, size_t bufsize)
1874                   _GL_ARG_NONNULL ((1, 2)));
1875 _GL_CXXALIAS_RPL (readlink, ssize_t,
1876                   (const char *restrict file,
1877                    char *restrict buf, size_t bufsize));
1878 # else
1879 #  if !@HAVE_READLINK@
1880 _GL_FUNCDECL_SYS (readlink, ssize_t,
1881                   (const char *restrict file,
1882                    char *restrict buf, size_t bufsize)
1883                   _GL_ARG_NONNULL ((1, 2)));
1884 #  endif
1885 _GL_CXXALIAS_SYS (readlink, ssize_t,
1886                   (const char *restrict file,
1887                    char *restrict buf, size_t bufsize));
1888 # endif
1889 _GL_CXXALIASWARN (readlink);
1890 #elif defined GNULIB_POSIXCHECK
1891 # undef readlink
1892 # if HAVE_RAW_DECL_READLINK
1893 _GL_WARN_ON_USE (readlink, "readlink is unportable - "
1894                  "use gnulib module readlink for portability");
1895 # endif
1896 #endif
1897 
1898 
1899 #if @GNULIB_READLINKAT@
1900 # if @REPLACE_READLINKAT@
1901 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1902 #   define readlinkat rpl_readlinkat
1903 #  endif
1904 _GL_FUNCDECL_RPL (readlinkat, ssize_t,
1905                   (int fd, char const *restrict file,
1906                    char *restrict buf, size_t len)
1907                   _GL_ARG_NONNULL ((2, 3)));
1908 _GL_CXXALIAS_RPL (readlinkat, ssize_t,
1909                   (int fd, char const *restrict file,
1910                    char *restrict buf, size_t len));
1911 # else
1912 #  if !@HAVE_READLINKAT@
1913 _GL_FUNCDECL_SYS (readlinkat, ssize_t,
1914                   (int fd, char const *restrict file,
1915                    char *restrict buf, size_t len)
1916                   _GL_ARG_NONNULL ((2, 3)));
1917 #  endif
1918 _GL_CXXALIAS_SYS (readlinkat, ssize_t,
1919                   (int fd, char const *restrict file,
1920                    char *restrict buf, size_t len));
1921 # endif
1922 _GL_CXXALIASWARN (readlinkat);
1923 #elif defined GNULIB_POSIXCHECK
1924 # undef readlinkat
1925 # if HAVE_RAW_DECL_READLINKAT
1926 _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
1927                  "use gnulib module readlinkat for portability");
1928 # endif
1929 #endif
1930 
1931 
1932 #if @GNULIB_RMDIR@
1933 /* Remove the directory DIR.  */
1934 # if @REPLACE_RMDIR@
1935 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1936 #   define rmdir rpl_rmdir
1937 #  endif
1938 _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1)));
1939 _GL_CXXALIAS_RPL (rmdir, int, (char const *name));
1940 # elif defined _WIN32 && !defined __CYGWIN__
1941 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1942 #   undef rmdir
1943 #   define rmdir _rmdir
1944 #  endif
1945 _GL_CXXALIAS_MDA (rmdir, int, (char const *name));
1946 # else
1947 _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
1948 # endif
1949 _GL_CXXALIASWARN (rmdir);
1950 #elif defined GNULIB_POSIXCHECK
1951 # undef rmdir
1952 # if HAVE_RAW_DECL_RMDIR
1953 _GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
1954                  "use gnulib module rmdir for portability");
1955 # endif
1956 #elif @GNULIB_MDA_RMDIR@
1957 /* On native Windows, map 'rmdir' to '_rmdir', so that -loldnames is not
1958    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
1959    platforms by defining GNULIB_NAMESPACE::rmdir always.  */
1960 # if defined _WIN32 && !defined __CYGWIN__
1961 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1962 #   undef rmdir
1963 #   define rmdir _rmdir
1964 #  endif
1965 _GL_CXXALIAS_MDA (rmdir, int, (char const *name));
1966 # else
1967 _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
1968 # endif
1969 _GL_CXXALIASWARN (rmdir);
1970 #endif
1971 
1972 
1973 #if @GNULIB_SETHOSTNAME@
1974 /* Set the host name of the machine.
1975    The host name may or may not be fully qualified.
1976 
1977    Put LEN bytes of NAME into the host name.
1978    Return 0 if successful, otherwise, set errno and return -1.
1979 
1980    Platforms with no ability to set the hostname return -1 and set
1981    errno = ENOSYS.  */
1982 # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
1983 _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
1984                                     _GL_ARG_NONNULL ((1)));
1985 # endif
1986 /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
1987    and FreeBSD 6.4 the second parameter is int.  On Solaris 11
1988    2011-10, the first parameter is not const.  */
1989 _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
1990 _GL_CXXALIASWARN (sethostname);
1991 #elif defined GNULIB_POSIXCHECK
1992 # undef sethostname
1993 # if HAVE_RAW_DECL_SETHOSTNAME
1994 _GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
1995                  "use gnulib module sethostname for portability");
1996 # endif
1997 #endif
1998 
1999 
2000 #if @GNULIB_SLEEP@
2001 /* Pause the execution of the current thread for N seconds.
2002    Returns the number of seconds left to sleep.
2003    See the POSIX:2008 specification
2004    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>.  */
2005 # if @REPLACE_SLEEP@
2006 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2007 #   undef sleep
2008 #   define sleep rpl_sleep
2009 #  endif
2010 _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n));
2011 _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n));
2012 # else
2013 #  if !@HAVE_SLEEP@
2014 _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n));
2015 #  endif
2016 _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n));
2017 # endif
2018 _GL_CXXALIASWARN (sleep);
2019 #elif defined GNULIB_POSIXCHECK
2020 # undef sleep
2021 # if HAVE_RAW_DECL_SLEEP
2022 _GL_WARN_ON_USE (sleep, "sleep is unportable - "
2023                  "use gnulib module sleep for portability");
2024 # endif
2025 #endif
2026 
2027 
2028 #if @GNULIB_MDA_SWAB@
2029 /* On native Windows, map 'swab' to '_swab', so that -loldnames is not
2030    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
2031    platforms by defining GNULIB_NAMESPACE::swab always.  */
2032 # if defined _WIN32 && !defined __CYGWIN__
2033 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2034 #   undef swab
2035 #   define swab _swab
2036 #  endif
2037 /* Need to cast, because in old mingw the arguments are
2038                              (const char *from, char *to, size_t n).  */
2039 _GL_CXXALIAS_MDA_CAST (swab, void, (char *from, char *to, int n));
2040 # else
2041 #  if defined __hpux /* HP-UX */
2042 _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, int n));
2043 #  elif defined __sun && !defined _XPG4 /* Solaris */
2044 _GL_CXXALIAS_SYS (swab, void, (const char *from, char *to, ssize_t n));
2045 #  else
2046 _GL_CXXALIAS_SYS (swab, void, (const void *from, void *to, ssize_t n));
2047 #  endif
2048 # endif
2049 _GL_CXXALIASWARN (swab);
2050 #endif
2051 
2052 
2053 #if @GNULIB_SYMLINK@
2054 # if @REPLACE_SYMLINK@
2055 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2056 #   undef symlink
2057 #   define symlink rpl_symlink
2058 #  endif
2059 _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file)
2060                                 _GL_ARG_NONNULL ((1, 2)));
2061 _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file));
2062 # else
2063 #  if !@HAVE_SYMLINK@
2064 _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file)
2065                                 _GL_ARG_NONNULL ((1, 2)));
2066 #  endif
2067 _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file));
2068 # endif
2069 _GL_CXXALIASWARN (symlink);
2070 #elif defined GNULIB_POSIXCHECK
2071 # undef symlink
2072 # if HAVE_RAW_DECL_SYMLINK
2073 _GL_WARN_ON_USE (symlink, "symlink is not portable - "
2074                  "use gnulib module symlink for portability");
2075 # endif
2076 #endif
2077 
2078 
2079 #if @GNULIB_SYMLINKAT@
2080 # if @REPLACE_SYMLINKAT@
2081 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2082 #   undef symlinkat
2083 #   define symlinkat rpl_symlinkat
2084 #  endif
2085 _GL_FUNCDECL_RPL (symlinkat, int,
2086                   (char const *contents, int fd, char const *file)
2087                   _GL_ARG_NONNULL ((1, 3)));
2088 _GL_CXXALIAS_RPL (symlinkat, int,
2089                   (char const *contents, int fd, char const *file));
2090 # else
2091 #  if !@HAVE_SYMLINKAT@
2092 _GL_FUNCDECL_SYS (symlinkat, int,
2093                   (char const *contents, int fd, char const *file)
2094                   _GL_ARG_NONNULL ((1, 3)));
2095 #  endif
2096 _GL_CXXALIAS_SYS (symlinkat, int,
2097                   (char const *contents, int fd, char const *file));
2098 # endif
2099 _GL_CXXALIASWARN (symlinkat);
2100 #elif defined GNULIB_POSIXCHECK
2101 # undef symlinkat
2102 # if HAVE_RAW_DECL_SYMLINKAT
2103 _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - "
2104                  "use gnulib module symlinkat for portability");
2105 # endif
2106 #endif
2107 
2108 
2109 #if @GNULIB_TRUNCATE@
2110 /* Change the size of the file designated by FILENAME to become equal to LENGTH.
2111    Return 0 if successful, otherwise -1 and errno set.
2112    See the POSIX:2008 specification
2113    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/truncate.html>.  */
2114 # if @REPLACE_TRUNCATE@
2115 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2116 #   undef truncate
2117 #   define truncate rpl_truncate
2118 #  endif
2119 _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length)
2120                                  _GL_ARG_NONNULL ((1)));
2121 _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length));
2122 # else
2123 #  if !@HAVE_DECL_TRUNCATE@
2124 _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
2125                                  _GL_ARG_NONNULL ((1)));
2126 #  endif
2127 _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
2128 # endif
2129 _GL_CXXALIASWARN (truncate);
2130 #elif defined GNULIB_POSIXCHECK
2131 # undef truncate
2132 # if HAVE_RAW_DECL_TRUNCATE
2133 _GL_WARN_ON_USE (truncate, "truncate is unportable - "
2134                  "use gnulib module truncate for portability");
2135 # endif
2136 #endif
2137 
2138 
2139 #if @GNULIB_TTYNAME_R@
2140 /* Store at most BUFLEN characters of the pathname of the terminal FD is
2141    open on in BUF.  Return 0 on success, otherwise an error number.  */
2142 # if @REPLACE_TTYNAME_R@
2143 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2144 #   undef ttyname_r
2145 #   define ttyname_r rpl_ttyname_r
2146 #  endif
2147 _GL_FUNCDECL_RPL (ttyname_r, int,
2148                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
2149 _GL_CXXALIAS_RPL (ttyname_r, int,
2150                   (int fd, char *buf, size_t buflen));
2151 # else
2152 #  if !@HAVE_DECL_TTYNAME_R@
2153 _GL_FUNCDECL_SYS (ttyname_r, int,
2154                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
2155 #  endif
2156 _GL_CXXALIAS_SYS (ttyname_r, int,
2157                   (int fd, char *buf, size_t buflen));
2158 # endif
2159 _GL_CXXALIASWARN (ttyname_r);
2160 #elif defined GNULIB_POSIXCHECK
2161 # undef ttyname_r
2162 # if HAVE_RAW_DECL_TTYNAME_R
2163 _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
2164                  "use gnulib module ttyname_r for portability");
2165 # endif
2166 #endif
2167 
2168 
2169 #if @GNULIB_UNLINK@
2170 # if @REPLACE_UNLINK@
2171 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2172 #   undef unlink
2173 #   define unlink rpl_unlink
2174 #  endif
2175 _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1)));
2176 _GL_CXXALIAS_RPL (unlink, int, (char const *file));
2177 # elif defined _WIN32 && !defined __CYGWIN__
2178 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2179 #   undef unlink
2180 #   define unlink _unlink
2181 #  endif
2182 _GL_CXXALIAS_MDA (unlink, int, (char const *file));
2183 # else
2184 _GL_CXXALIAS_SYS (unlink, int, (char const *file));
2185 # endif
2186 _GL_CXXALIASWARN (unlink);
2187 #elif defined GNULIB_POSIXCHECK
2188 # undef unlink
2189 # if HAVE_RAW_DECL_UNLINK
2190 _GL_WARN_ON_USE (unlink, "unlink is not portable - "
2191                  "use gnulib module unlink for portability");
2192 # endif
2193 #elif @GNULIB_MDA_UNLINK@
2194 /* On native Windows, map 'unlink' to '_unlink', so that -loldnames is not
2195    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
2196    platforms by defining GNULIB_NAMESPACE::unlink always.  */
2197 # if defined _WIN32 && !defined __CYGWIN__
2198 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2199 #   undef unlink
2200 #   define unlink _unlink
2201 #  endif
2202 _GL_CXXALIAS_MDA (unlink, int, (char const *file));
2203 # else
2204 _GL_CXXALIAS_SYS (unlink, int, (char const *file));
2205 # endif
2206 _GL_CXXALIASWARN (unlink);
2207 #endif
2208 
2209 
2210 #if @GNULIB_UNLINKAT@
2211 # if @REPLACE_UNLINKAT@
2212 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2213 #   undef unlinkat
2214 #   define unlinkat rpl_unlinkat
2215 #  endif
2216 _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag)
2217                                  _GL_ARG_NONNULL ((2)));
2218 _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag));
2219 # else
2220 #  if !@HAVE_UNLINKAT@
2221 _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag)
2222                                  _GL_ARG_NONNULL ((2)));
2223 #  endif
2224 _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag));
2225 # endif
2226 _GL_CXXALIASWARN (unlinkat);
2227 #elif defined GNULIB_POSIXCHECK
2228 # undef unlinkat
2229 # if HAVE_RAW_DECL_UNLINKAT
2230 _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
2231                  "use gnulib module unlinkat for portability");
2232 # endif
2233 #endif
2234 
2235 
2236 #if @GNULIB_USLEEP@
2237 /* Pause the execution of the current thread for N microseconds.
2238    Returns 0 on completion, or -1 on range error.
2239    See the POSIX:2001 specification
2240    <https://pubs.opengroup.org/onlinepubs/009695399/functions/usleep.html>.  */
2241 # if @REPLACE_USLEEP@
2242 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2243 #   undef usleep
2244 #   define usleep rpl_usleep
2245 #  endif
2246 _GL_FUNCDECL_RPL (usleep, int, (useconds_t n));
2247 _GL_CXXALIAS_RPL (usleep, int, (useconds_t n));
2248 # else
2249 #  if !@HAVE_USLEEP@
2250 _GL_FUNCDECL_SYS (usleep, int, (useconds_t n));
2251 #  endif
2252 /* Need to cast, because on Haiku, the first parameter is
2253                                      unsigned int n.  */
2254 _GL_CXXALIAS_SYS_CAST (usleep, int, (useconds_t n));
2255 # endif
2256 _GL_CXXALIASWARN (usleep);
2257 #elif defined GNULIB_POSIXCHECK
2258 # undef usleep
2259 # if HAVE_RAW_DECL_USLEEP
2260 _GL_WARN_ON_USE (usleep, "usleep is unportable - "
2261                  "use gnulib module usleep for portability");
2262 # endif
2263 #endif
2264 
2265 
2266 #if @GNULIB_WRITE@
2267 /* Write up to COUNT bytes starting at BUF to file descriptor FD.
2268    See the POSIX:2008 specification
2269    <https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>.  */
2270 # if @REPLACE_WRITE@
2271 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2272 #   undef write
2273 #   define write rpl_write
2274 #  endif
2275 _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count)
2276                                   _GL_ARG_NONNULL ((2)));
2277 _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count));
2278 # elif defined _WIN32 && !defined __CYGWIN__
2279 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2280 #   undef write
2281 #   define write _write
2282 #  endif
2283 _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, size_t count));
2284 # else
2285 _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count));
2286 # endif
2287 _GL_CXXALIASWARN (write);
2288 #elif @GNULIB_MDA_WRITE@
2289 /* On native Windows, map 'write' to '_write', so that -loldnames is not
2290    required.  In C++ with GNULIB_NAMESPACE, avoid differences between
2291    platforms by defining GNULIB_NAMESPACE::write always.  */
2292 # if defined _WIN32 && !defined __CYGWIN__
2293 #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
2294 #   undef write
2295 #   define write _write
2296 #  endif
2297 #  ifdef __MINGW32__
2298 _GL_CXXALIAS_MDA (write, int, (int fd, const void *buf, unsigned int count));
2299 #  else
2300 _GL_CXXALIAS_MDA (write, ssize_t, (int fd, const void *buf, unsigned int count));
2301 #  endif
2302 # else
2303 _GL_CXXALIAS_SYS (write, ssize_t, (int fd, const void *buf, size_t count));
2304 # endif
2305 _GL_CXXALIASWARN (write);
2306 #endif
2307 
2308 _GL_INLINE_HEADER_END
2309 
2310 #endif /* _@GUARD_PREFIX@_UNISTD_H */
2311 #endif /* _GL_INCLUDING_UNISTD_H */
2312 #endif /* _@GUARD_PREFIX@_UNISTD_H */

/* [previous][next][first][last][top][bottom][index][help] */