VirtualBox

source: kBuild/trunk/src/grep/lib/unistd.in.h

Last change on this file was 3529, checked in by bird, 3 years ago

Imported grep 3.7 from grep-3.7.tar.gz (sha256: c22b0cf2d4f6bbe599c902387e8058990e1eee99aef333a203829e5fd3dbb342), applying minimal auto-props.

  • Property svn:eol-style set to native
File size: 78.2 KB
Line 
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
572extern "C" {
573# endif
574extern 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 - "
584 "use gnulib module environ for portability")
585rpl_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
1383getpagesize ()
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 */
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette