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