Annotation of embedaddon/libiconv/srclib/unistd.in.h, revision 1.1.1.3

1.1       misho       1: /* Substitute for and wrapper around <unistd.h>.
1.1.1.3 ! misho       2:    Copyright (C) 2003-2019 Free Software Foundation, Inc.
1.1       misho       3: 
                      4:    This program is free software; you can redistribute it and/or modify
                      5:    it under the terms of the GNU General Public License as published by
                      6:    the Free Software Foundation; either version 3, or (at your option)
                      7:    any later version.
                      8: 
                      9:    This program 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 General Public License for more details.
                     13: 
                     14:    You should have received a copy of the GNU General Public License
1.1.1.3 ! misho      15:    along with this program; if not, see <https://www.gnu.org/licenses/>.  */
        !            16: 
        !            17: #ifndef _@GUARD_PREFIX@_UNISTD_H
1.1       misho      18: 
                     19: #if __GNUC__ >= 3
                     20: @PRAGMA_SYSTEM_HEADER@
                     21: #endif
1.1.1.2   misho      22: @PRAGMA_COLUMNS@
                     23: 
1.1.1.3 ! misho      24: #ifdef _GL_INCLUDING_UNISTD_H
1.1.1.2   misho      25: /* Special invocation convention:
1.1.1.3 ! misho      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.  */
1.1.1.2   misho      30: 
1.1.1.3 ! misho      31: #@INCLUDE_NEXT@ @NEXT_UNISTD_H@
        !            32: 
        !            33: #else
        !            34: /* Normal invocation convention.  */
1.1       misho      35: 
                     36: /* The include_next requires a split double-inclusion guard.  */
                     37: #if @HAVE_UNISTD_H@
1.1.1.3 ! misho      38: # define _GL_INCLUDING_UNISTD_H
1.1       misho      39: # @INCLUDE_NEXT@ @NEXT_UNISTD_H@
1.1.1.3 ! misho      40: # undef _GL_INCLUDING_UNISTD_H
1.1       misho      41: #endif
                     42: 
1.1.1.2   misho      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: #include <stddef.h>
1.1       misho      56: 
                     57: /* mingw doesn't define the SEEK_* or *_FILENO macros in <unistd.h>.  */
1.1.1.3 ! misho      58: /* MSVC declares 'unlink' in <stdio.h>, not in <unistd.h>.  We must include
        !            59:    it before we  #define unlink rpl_unlink.  */
1.1.1.2   misho      60: /* Cygwin 1.7.1 declares symlinkat in <stdio.h>, not in <unistd.h>.  */
                     61: /* But avoid namespace pollution on glibc systems.  */
                     62: #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \
1.1.1.3 ! misho      63:      || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \
        !            64:          && (defined _WIN32 && ! defined __CYGWIN__)) \
1.1.1.2   misho      65:      || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \
                     66:          && defined __CYGWIN__)) \
                     67:     && ! defined __GLIBC__
1.1       misho      68: # include <stdio.h>
                     69: #endif
                     70: 
1.1.1.3 ! misho      71: /* Cygwin 1.7.1 and Android 4.3 declare unlinkat in <fcntl.h>, not in
        !            72:    <unistd.h>.  */
1.1.1.2   misho      73: /* But avoid namespace pollution on glibc systems.  */
1.1.1.3 ! misho      74: #if (@GNULIB_UNLINKAT@ || defined GNULIB_POSIXCHECK) \
        !            75:     && (defined __CYGWIN__ || defined __ANDROID__) \
1.1.1.2   misho      76:     && ! defined __GLIBC__
                     77: # include <fcntl.h>
                     78: #endif
                     79: 
1.1       misho      80: /* mingw fails to declare _exit in <unistd.h>.  */
1.1.1.3 ! misho      81: /* mingw, MSVC, BeOS, Haiku declare environ in <stdlib.h>, not in
        !            82:    <unistd.h>.  */
1.1.1.2   misho      83: /* Solaris declares getcwd not only in <unistd.h> but also in <stdlib.h>.  */
1.1.1.3 ! misho      84: /* OSF Tru64 Unix cannot see gnulib rpl_strtod when system <stdlib.h> is
        !            85:    included here.  */
1.1.1.2   misho      86: /* But avoid namespace pollution on glibc systems.  */
1.1.1.3 ! misho      87: #if !defined __GLIBC__ && !defined __osf__
        !            88: # define __need_system_stdlib_h
1.1.1.2   misho      89: # include <stdlib.h>
1.1.1.3 ! misho      90: # undef __need_system_stdlib_h
1.1.1.2   misho      91: #endif
1.1       misho      92: 
1.1.1.3 ! misho      93: /* Native Windows platforms declare chdir, getcwd, rmdir in
        !            94:    <io.h> and/or <direct.h>, not in <unistd.h>.
        !            95:    They also declare access(), chmod(), close(), dup(), dup2(), isatty(),
        !            96:    lseek(), read(), unlink(), write() in <io.h>.  */
        !            97: #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \
        !            98:       || defined GNULIB_POSIXCHECK) \
        !            99:      && (defined _WIN32 && ! defined __CYGWIN__))
        !           100: # include <io.h>     /* mingw32, mingw64 */
        !           101: # include <direct.h> /* mingw64, MSVC 9 */
        !           102: #elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \
        !           103:        || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \
        !           104:        || defined GNULIB_POSIXCHECK) \
        !           105:       && (defined _WIN32 && ! defined __CYGWIN__)
1.1.1.2   misho     106: # include <io.h>
                    107: #endif
                    108: 
                    109: /* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
                    110:    NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>.  */
                    111: /* But avoid namespace pollution on glibc systems.  */
                    112: #if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \
                    113:      || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \
                    114:     && !defined __GLIBC__
                    115: # include <netdb.h>
                    116: #endif
                    117: 
1.1.1.3 ! misho     118: /* Android 4.3 declares fchownat in <sys/stat.h>, not in <unistd.h>.  */
        !           119: /* But avoid namespace pollution on glibc systems.  */
        !           120: #if (@GNULIB_FCHOWNAT@ || defined GNULIB_POSIXCHECK) && defined __ANDROID__ \
        !           121:     && !defined __GLIBC__
        !           122: # include <sys/stat.h>
        !           123: #endif
        !           124: 
        !           125: /* MSVC defines off_t in <sys/types.h>.
        !           126:    May also define off_t to a 64-bit type on native Windows.  */
        !           127: #if !@HAVE_UNISTD_H@ || @WINDOWS_64_BIT_OFF_T@
        !           128: /* Get off_t.  */
        !           129: # include <sys/types.h>
        !           130: #endif
        !           131: 
1.1.1.2   misho     132: #if (@GNULIB_READ@ || @GNULIB_WRITE@ \
                    133:      || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
                    134:      || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || defined GNULIB_POSIXCHECK)
1.1       misho     135: /* Get ssize_t.  */
                    136: # include <sys/types.h>
                    137: #endif
                    138: 
1.1.1.2   misho     139: /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
                    140: 
                    141: /* The definition of _GL_ARG_NONNULL is copied here.  */
                    142: 
                    143: /* The definition of _GL_WARN_ON_USE is copied here.  */
                    144: 
                    145: 
1.1.1.3 ! misho     146: /* Get getopt(), optarg, optind, opterr, optopt.  */
        !           147: #if @GNULIB_UNISTD_H_GETOPT@ && !defined _GL_SYSTEM_GETOPT
        !           148: # include <getopt-cdefs.h>
        !           149: # include <getopt-pfx-core.h>
        !           150: #endif
        !           151: 
        !           152: #ifndef _GL_INLINE_HEADER_BEGIN
        !           153:  #error "Please include config.h first."
        !           154: #endif
        !           155: _GL_INLINE_HEADER_BEGIN
        !           156: #ifndef _GL_UNISTD_INLINE
        !           157: # define _GL_UNISTD_INLINE _GL_INLINE
        !           158: #endif
        !           159: 
1.1.1.2   misho     160: /* Hide some function declarations from <winsock2.h>.  */
                    161: 
                    162: #if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
                    163: # if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
                    164: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1.1       misho     165: #   undef socket
1.1.1.2   misho     166: #   define socket              socket_used_without_including_sys_socket_h
1.1       misho     167: #   undef connect
1.1.1.2   misho     168: #   define connect             connect_used_without_including_sys_socket_h
1.1       misho     169: #   undef accept
1.1.1.2   misho     170: #   define accept              accept_used_without_including_sys_socket_h
1.1       misho     171: #   undef bind
1.1.1.2   misho     172: #   define bind                bind_used_without_including_sys_socket_h
1.1       misho     173: #   undef getpeername
1.1.1.2   misho     174: #   define getpeername         getpeername_used_without_including_sys_socket_h
1.1       misho     175: #   undef getsockname
1.1.1.2   misho     176: #   define getsockname         getsockname_used_without_including_sys_socket_h
1.1       misho     177: #   undef getsockopt
1.1.1.2   misho     178: #   define getsockopt          getsockopt_used_without_including_sys_socket_h
1.1       misho     179: #   undef listen
1.1.1.2   misho     180: #   define listen              listen_used_without_including_sys_socket_h
1.1       misho     181: #   undef recv
1.1.1.2   misho     182: #   define recv                recv_used_without_including_sys_socket_h
1.1       misho     183: #   undef send
1.1.1.2   misho     184: #   define send                send_used_without_including_sys_socket_h
1.1       misho     185: #   undef recvfrom
1.1.1.2   misho     186: #   define recvfrom            recvfrom_used_without_including_sys_socket_h
1.1       misho     187: #   undef sendto
1.1.1.2   misho     188: #   define sendto              sendto_used_without_including_sys_socket_h
1.1       misho     189: #   undef setsockopt
1.1.1.2   misho     190: #   define setsockopt          setsockopt_used_without_including_sys_socket_h
1.1       misho     191: #   undef shutdown
1.1.1.2   misho     192: #   define shutdown            shutdown_used_without_including_sys_socket_h
                    193: #  else
                    194:     _GL_WARN_ON_USE (socket,
                    195:                      "socket() used without including <sys/socket.h>");
                    196:     _GL_WARN_ON_USE (connect,
                    197:                      "connect() used without including <sys/socket.h>");
                    198:     _GL_WARN_ON_USE (accept,
                    199:                      "accept() used without including <sys/socket.h>");
                    200:     _GL_WARN_ON_USE (bind,
                    201:                      "bind() used without including <sys/socket.h>");
                    202:     _GL_WARN_ON_USE (getpeername,
                    203:                      "getpeername() used without including <sys/socket.h>");
                    204:     _GL_WARN_ON_USE (getsockname,
                    205:                      "getsockname() used without including <sys/socket.h>");
                    206:     _GL_WARN_ON_USE (getsockopt,
                    207:                      "getsockopt() used without including <sys/socket.h>");
                    208:     _GL_WARN_ON_USE (listen,
                    209:                      "listen() used without including <sys/socket.h>");
                    210:     _GL_WARN_ON_USE (recv,
                    211:                      "recv() used without including <sys/socket.h>");
                    212:     _GL_WARN_ON_USE (send,
                    213:                      "send() used without including <sys/socket.h>");
                    214:     _GL_WARN_ON_USE (recvfrom,
                    215:                      "recvfrom() used without including <sys/socket.h>");
                    216:     _GL_WARN_ON_USE (sendto,
                    217:                      "sendto() used without including <sys/socket.h>");
                    218:     _GL_WARN_ON_USE (setsockopt,
                    219:                      "setsockopt() used without including <sys/socket.h>");
                    220:     _GL_WARN_ON_USE (shutdown,
                    221:                      "shutdown() used without including <sys/socket.h>");
1.1       misho     222: #  endif
1.1.1.2   misho     223: # endif
                    224: # if !defined _@GUARD_PREFIX@_SYS_SELECT_H
                    225: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
1.1       misho     226: #   undef select
1.1.1.2   misho     227: #   define select              select_used_without_including_sys_select_h
                    228: #  else
                    229:     _GL_WARN_ON_USE (select,
                    230:                      "select() used without including <sys/select.h>");
1.1       misho     231: #  endif
                    232: # endif
                    233: #endif
                    234: 
                    235: 
                    236: /* OS/2 EMX lacks these macros.  */
                    237: #ifndef STDIN_FILENO
                    238: # define STDIN_FILENO 0
                    239: #endif
                    240: #ifndef STDOUT_FILENO
                    241: # define STDOUT_FILENO 1
                    242: #endif
                    243: #ifndef STDERR_FILENO
                    244: # define STDERR_FILENO 2
                    245: #endif
                    246: 
1.1.1.2   misho     247: /* Ensure *_OK macros exist.  */
                    248: #ifndef F_OK
                    249: # define F_OK 0
                    250: # define X_OK 1
                    251: # define W_OK 2
                    252: # define R_OK 4
                    253: #endif
                    254: 
                    255: 
1.1       misho     256: /* Declare overridden functions.  */
                    257: 
1.1.1.2   misho     258: 
                    259: #if defined GNULIB_POSIXCHECK
                    260: /* The access() function is a security risk.  */
                    261: _GL_WARN_ON_USE (access, "the access function is a security risk - "
                    262:                  "use the gnulib module faccessat instead");
1.1       misho     263: #endif
                    264: 
                    265: 
1.1.1.3 ! misho     266: #if @GNULIB_CHDIR@
        !           267: _GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
        !           268: _GL_CXXALIASWARN (chdir);
        !           269: #elif defined GNULIB_POSIXCHECK
        !           270: # undef chdir
        !           271: # if HAVE_RAW_DECL_CHDIR
        !           272: _GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
        !           273:                  "use gnulib module chdir for portability");
        !           274: # endif
        !           275: #endif
        !           276: 
        !           277: 
1.1       misho     278: #if @GNULIB_CHOWN@
                    279: /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
                    280:    to GID (if GID is not -1).  Follow symbolic links.
                    281:    Return 0 if successful, otherwise -1 and errno set.
1.1.1.3 ! misho     282:    See the POSIX:2008 specification
        !           283:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/chown.html.  */
1.1.1.2   misho     284: # if @REPLACE_CHOWN@
                    285: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    286: #   undef chown
1.1       misho     287: #   define chown rpl_chown
                    288: #  endif
1.1.1.2   misho     289: _GL_FUNCDECL_RPL (chown, int, (const char *file, uid_t uid, gid_t gid)
                    290:                               _GL_ARG_NONNULL ((1)));
                    291: _GL_CXXALIAS_RPL (chown, int, (const char *file, uid_t uid, gid_t gid));
                    292: # else
                    293: #  if !@HAVE_CHOWN@
                    294: _GL_FUNCDECL_SYS (chown, int, (const char *file, uid_t uid, gid_t gid)
                    295:                               _GL_ARG_NONNULL ((1)));
                    296: #  endif
                    297: _GL_CXXALIAS_SYS (chown, int, (const char *file, uid_t uid, gid_t gid));
1.1       misho     298: # endif
1.1.1.2   misho     299: _GL_CXXALIASWARN (chown);
1.1       misho     300: #elif defined GNULIB_POSIXCHECK
                    301: # undef chown
1.1.1.2   misho     302: # if HAVE_RAW_DECL_CHOWN
                    303: _GL_WARN_ON_USE (chown, "chown fails to follow symlinks on some systems and "
                    304:                  "doesn't treat a uid or gid of -1 on some systems - "
                    305:                  "use gnulib module chown for portability");
                    306: # endif
1.1       misho     307: #endif
                    308: 
                    309: 
                    310: #if @GNULIB_CLOSE@
                    311: # if @REPLACE_CLOSE@
                    312: /* Automatically included by modules that need a replacement for close.  */
1.1.1.2   misho     313: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    314: #   undef close
                    315: #   define close rpl_close
                    316: #  endif
                    317: _GL_FUNCDECL_RPL (close, int, (int fd));
                    318: _GL_CXXALIAS_RPL (close, int, (int fd));
                    319: # else
                    320: _GL_CXXALIAS_SYS (close, int, (int fd));
1.1       misho     321: # endif
1.1.1.2   misho     322: _GL_CXXALIASWARN (close);
                    323: #elif @UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@
1.1       misho     324: # undef close
                    325: # define close close_used_without_requesting_gnulib_module_close
                    326: #elif defined GNULIB_POSIXCHECK
                    327: # undef close
1.1.1.2   misho     328: /* Assume close is always declared.  */
                    329: _GL_WARN_ON_USE (close, "close does not portably work on sockets - "
                    330:                  "use gnulib module close for portability");
1.1       misho     331: #endif
                    332: 
                    333: 
1.1.1.3 ! misho     334: #if @GNULIB_DUP@
        !           335: # if @REPLACE_DUP@
        !           336: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           337: #   define dup rpl_dup
        !           338: #  endif
1.1.1.2   misho     339: _GL_FUNCDECL_RPL (dup, int, (int oldfd));
                    340: _GL_CXXALIAS_RPL (dup, int, (int oldfd));
1.1.1.3 ! misho     341: # else
1.1.1.2   misho     342: _GL_CXXALIAS_SYS (dup, int, (int oldfd));
1.1.1.3 ! misho     343: # endif
1.1.1.2   misho     344: _GL_CXXALIASWARN (dup);
1.1.1.3 ! misho     345: #elif defined GNULIB_POSIXCHECK
        !           346: # undef dup
        !           347: # if HAVE_RAW_DECL_DUP
        !           348: _GL_WARN_ON_USE (dup, "dup is unportable - "
        !           349:                  "use gnulib module dup for portability");
        !           350: # endif
        !           351: #endif
1.1.1.2   misho     352: 
                    353: 
1.1       misho     354: #if @GNULIB_DUP2@
                    355: /* Copy the file descriptor OLDFD into file descriptor NEWFD.  Do nothing if
                    356:    NEWFD = OLDFD, otherwise close NEWFD first if it is open.
1.1.1.2   misho     357:    Return newfd if successful, otherwise -1 and errno set.
1.1.1.3 ! misho     358:    See the POSIX:2008 specification
        !           359:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/dup2.html>.  */
1.1.1.2   misho     360: # if @REPLACE_DUP2@
                    361: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    362: #   define dup2 rpl_dup2
                    363: #  endif
                    364: _GL_FUNCDECL_RPL (dup2, int, (int oldfd, int newfd));
                    365: _GL_CXXALIAS_RPL (dup2, int, (int oldfd, int newfd));
                    366: # else
                    367: #  if !@HAVE_DUP2@
                    368: _GL_FUNCDECL_SYS (dup2, int, (int oldfd, int newfd));
                    369: #  endif
                    370: _GL_CXXALIAS_SYS (dup2, int, (int oldfd, int newfd));
1.1       misho     371: # endif
1.1.1.2   misho     372: _GL_CXXALIASWARN (dup2);
1.1       misho     373: #elif defined GNULIB_POSIXCHECK
                    374: # undef dup2
1.1.1.2   misho     375: # if HAVE_RAW_DECL_DUP2
                    376: _GL_WARN_ON_USE (dup2, "dup2 is unportable - "
                    377:                  "use gnulib module dup2 for portability");
                    378: # endif
                    379: #endif
                    380: 
                    381: 
                    382: #if @GNULIB_DUP3@
                    383: /* Copy the file descriptor OLDFD into file descriptor NEWFD, with the
                    384:    specified flags.
                    385:    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
                    386:    and O_TEXT, O_BINARY (defined in "binary-io.h").
                    387:    Close NEWFD first if it is open.
                    388:    Return newfd if successful, otherwise -1 and errno set.
                    389:    See the Linux man page at
1.1.1.3 ! misho     390:    <https://www.kernel.org/doc/man-pages/online/pages/man2/dup3.2.html>.  */
1.1.1.2   misho     391: # if @HAVE_DUP3@
                    392: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    393: #   define dup3 rpl_dup3
                    394: #  endif
                    395: _GL_FUNCDECL_RPL (dup3, int, (int oldfd, int newfd, int flags));
                    396: _GL_CXXALIAS_RPL (dup3, int, (int oldfd, int newfd, int flags));
                    397: # else
                    398: _GL_FUNCDECL_SYS (dup3, int, (int oldfd, int newfd, int flags));
                    399: _GL_CXXALIAS_SYS (dup3, int, (int oldfd, int newfd, int flags));
                    400: # endif
                    401: _GL_CXXALIASWARN (dup3);
                    402: #elif defined GNULIB_POSIXCHECK
                    403: # undef dup3
                    404: # if HAVE_RAW_DECL_DUP3
                    405: _GL_WARN_ON_USE (dup3, "dup3 is unportable - "
                    406:                  "use gnulib module dup3 for portability");
                    407: # endif
1.1       misho     408: #endif
                    409: 
                    410: 
                    411: #if @GNULIB_ENVIRON@
1.1.1.3 ! misho     412: # if defined __CYGWIN__ && !defined __i386__
        !           413: /* The 'environ' variable is defined in a DLL. Therefore its declaration needs
        !           414:    the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it.
        !           415:    This leads to a link error on 64-bit Cygwin when the option
        !           416:    -Wl,--disable-auto-import is in use.  */
        !           417: _GL_EXTERN_C __declspec(dllimport) char **environ;
        !           418: # endif
1.1       misho     419: # if !@HAVE_DECL_ENVIRON@
                    420: /* Set of environment variables and values.  An array of strings of the form
                    421:    "VARIABLE=VALUE", terminated with a NULL.  */
                    422: #  if defined __APPLE__ && defined __MACH__
1.1.1.3 ! misho     423: #   include <TargetConditionals.h>
        !           424: #   if !TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR
        !           425: #    define _GL_USE_CRT_EXTERNS
        !           426: #   endif
        !           427: #  endif
        !           428: #  ifdef _GL_USE_CRT_EXTERNS
1.1       misho     429: #   include <crt_externs.h>
                    430: #   define environ (*_NSGetEnviron ())
                    431: #  else
1.1.1.2   misho     432: #   ifdef __cplusplus
                    433: extern "C" {
                    434: #   endif
1.1       misho     435: extern char **environ;
1.1.1.2   misho     436: #   ifdef __cplusplus
                    437: }
                    438: #   endif
1.1       misho     439: #  endif
                    440: # endif
                    441: #elif defined GNULIB_POSIXCHECK
1.1.1.2   misho     442: # if HAVE_RAW_DECL_ENVIRON
1.1.1.3 ! misho     443: _GL_UNISTD_INLINE char ***
        !           444: _GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - "
        !           445:                            "use gnulib module environ for portability")
1.1.1.2   misho     446: rpl_environ (void)
                    447: {
                    448:   return &environ;
                    449: }
                    450: #  undef environ
                    451: #  define environ (*rpl_environ ())
                    452: # endif
1.1       misho     453: #endif
                    454: 
                    455: 
                    456: #if @GNULIB_EUIDACCESS@
1.1.1.2   misho     457: /* Like access(), except that it uses the effective user id and group id of
1.1       misho     458:    the current process.  */
1.1.1.2   misho     459: # if !@HAVE_EUIDACCESS@
                    460: _GL_FUNCDECL_SYS (euidaccess, int, (const char *filename, int mode)
                    461:                                    _GL_ARG_NONNULL ((1)));
                    462: # endif
                    463: _GL_CXXALIAS_SYS (euidaccess, int, (const char *filename, int mode));
                    464: _GL_CXXALIASWARN (euidaccess);
                    465: # if defined GNULIB_POSIXCHECK
                    466: /* Like access(), this function is a security risk.  */
                    467: _GL_WARN_ON_USE (euidaccess, "the euidaccess function is a security risk - "
                    468:                  "use the gnulib module faccessat instead");
1.1       misho     469: # endif
                    470: #elif defined GNULIB_POSIXCHECK
                    471: # undef euidaccess
1.1.1.2   misho     472: # if HAVE_RAW_DECL_EUIDACCESS
                    473: _GL_WARN_ON_USE (euidaccess, "euidaccess is unportable - "
                    474:                  "use gnulib module euidaccess for portability");
                    475: # endif
1.1       misho     476: #endif
                    477: 
                    478: 
1.1.1.2   misho     479: #if @GNULIB_FACCESSAT@
1.1.1.3 ! misho     480: # if @REPLACE_FACCESSAT@
        !           481: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           482: #   undef faccessat
        !           483: #   define faccessat rpl_faccessat
        !           484: #  endif
        !           485: _GL_FUNCDECL_RPL (faccessat, int,
        !           486:                   (int fd, char const *name, int mode, int flag)
        !           487:                   _GL_ARG_NONNULL ((2)));
        !           488: _GL_CXXALIAS_RPL (faccessat, int,
        !           489:                   (int fd, char const *name, int mode, int flag));
        !           490: # else
        !           491: #  if !@HAVE_FACCESSAT@
1.1.1.2   misho     492: _GL_FUNCDECL_SYS (faccessat, int,
                    493:                   (int fd, char const *file, int mode, int flag)
                    494:                   _GL_ARG_NONNULL ((2)));
1.1.1.3 ! misho     495: #  endif
1.1.1.2   misho     496: _GL_CXXALIAS_SYS (faccessat, int,
                    497:                   (int fd, char const *file, int mode, int flag));
1.1.1.3 ! misho     498: # endif
1.1.1.2   misho     499: _GL_CXXALIASWARN (faccessat);
                    500: #elif defined GNULIB_POSIXCHECK
                    501: # undef faccessat
                    502: # if HAVE_RAW_DECL_FACCESSAT
                    503: _GL_WARN_ON_USE (faccessat, "faccessat is not portable - "
                    504:                  "use gnulib module faccessat for portability");
                    505: # endif
                    506: #endif
                    507: 
1.1       misho     508: 
1.1.1.2   misho     509: #if @GNULIB_FCHDIR@
1.1       misho     510: /* Change the process' current working directory to the directory on which
                    511:    the given file descriptor is open.
                    512:    Return 0 if successful, otherwise -1 and errno set.
1.1.1.3 ! misho     513:    See the POSIX:2008 specification
        !           514:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>.  */
1.1.1.2   misho     515: # if ! @HAVE_FCHDIR@
                    516: _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
1.1       misho     517: 
1.1.1.2   misho     518: /* Gnulib internal hooks needed to maintain the fchdir metadata.  */
                    519: _GL_EXTERN_C int _gl_register_fd (int fd, const char *filename)
                    520:      _GL_ARG_NONNULL ((2));
                    521: _GL_EXTERN_C void _gl_unregister_fd (int fd);
                    522: _GL_EXTERN_C int _gl_register_dup (int oldfd, int newfd);
                    523: _GL_EXTERN_C const char *_gl_directory_name (int fd);
                    524: 
                    525: # else
                    526: #  if !@HAVE_DECL_FCHDIR@
                    527: _GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
                    528: #  endif
1.1       misho     529: # endif
1.1.1.2   misho     530: _GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
                    531: _GL_CXXALIASWARN (fchdir);
1.1       misho     532: #elif defined GNULIB_POSIXCHECK
                    533: # undef fchdir
1.1.1.2   misho     534: # if HAVE_RAW_DECL_FCHDIR
                    535: _GL_WARN_ON_USE (fchdir, "fchdir is unportable - "
                    536:                  "use gnulib module fchdir for portability");
                    537: # endif
                    538: #endif
                    539: 
                    540: 
                    541: #if @GNULIB_FCHOWNAT@
                    542: # if @REPLACE_FCHOWNAT@
                    543: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    544: #   undef fchownat
                    545: #   define fchownat rpl_fchownat
                    546: #  endif
                    547: _GL_FUNCDECL_RPL (fchownat, int, (int fd, char const *file,
                    548:                                   uid_t owner, gid_t group, int flag)
                    549:                                  _GL_ARG_NONNULL ((2)));
                    550: _GL_CXXALIAS_RPL (fchownat, int, (int fd, char const *file,
                    551:                                   uid_t owner, gid_t group, int flag));
                    552: # else
                    553: #  if !@HAVE_FCHOWNAT@
                    554: _GL_FUNCDECL_SYS (fchownat, int, (int fd, char const *file,
                    555:                                   uid_t owner, gid_t group, int flag)
                    556:                                  _GL_ARG_NONNULL ((2)));
                    557: #  endif
                    558: _GL_CXXALIAS_SYS (fchownat, int, (int fd, char const *file,
                    559:                                   uid_t owner, gid_t group, int flag));
                    560: # endif
                    561: _GL_CXXALIASWARN (fchownat);
                    562: #elif defined GNULIB_POSIXCHECK
                    563: # undef fchownat
                    564: # if HAVE_RAW_DECL_FCHOWNAT
                    565: _GL_WARN_ON_USE (fchownat, "fchownat is not portable - "
                    566:                  "use gnulib module openat for portability");
                    567: # endif
1.1       misho     568: #endif
                    569: 
                    570: 
1.1.1.3 ! misho     571: #if @GNULIB_FDATASYNC@
1.1       misho     572: /* Synchronize changes to a file.
                    573:    Return 0 if successful, otherwise -1 and errno set.
1.1.1.3 ! misho     574:    See POSIX:2008 specification
        !           575:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>.  */
        !           576: # if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@
        !           577: _GL_FUNCDECL_SYS (fdatasync, int, (int fd));
        !           578: # endif
        !           579: _GL_CXXALIAS_SYS (fdatasync, int, (int fd));
        !           580: _GL_CXXALIASWARN (fdatasync);
        !           581: #elif defined GNULIB_POSIXCHECK
        !           582: # undef fdatasync
        !           583: # if HAVE_RAW_DECL_FDATASYNC
        !           584: _GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
        !           585:                  "use gnulib module fdatasync for portability");
        !           586: # endif
        !           587: #endif
        !           588: 
        !           589: 
        !           590: #if @GNULIB_FSYNC@
        !           591: /* Synchronize changes, including metadata, to a file.
        !           592:    Return 0 if successful, otherwise -1 and errno set.
        !           593:    See POSIX:2008 specification
        !           594:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fsync.html>.  */
1.1       misho     595: # if !@HAVE_FSYNC@
1.1.1.2   misho     596: _GL_FUNCDECL_SYS (fsync, int, (int fd));
1.1       misho     597: # endif
1.1.1.2   misho     598: _GL_CXXALIAS_SYS (fsync, int, (int fd));
                    599: _GL_CXXALIASWARN (fsync);
1.1       misho     600: #elif defined GNULIB_POSIXCHECK
                    601: # undef fsync
1.1.1.2   misho     602: # if HAVE_RAW_DECL_FSYNC
                    603: _GL_WARN_ON_USE (fsync, "fsync is unportable - "
                    604:                  "use gnulib module fsync for portability");
                    605: # endif
1.1       misho     606: #endif
                    607: 
                    608: 
                    609: #if @GNULIB_FTRUNCATE@
                    610: /* Change the size of the file to which FD is opened to become equal to LENGTH.
                    611:    Return 0 if successful, otherwise -1 and errno set.
1.1.1.3 ! misho     612:    See the POSIX:2008 specification
        !           613:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html>.  */
        !           614: # if @REPLACE_FTRUNCATE@
        !           615: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           616: #   undef ftruncate
        !           617: #   define ftruncate rpl_ftruncate
        !           618: #  endif
        !           619: _GL_FUNCDECL_RPL (ftruncate, int, (int fd, off_t length));
        !           620: _GL_CXXALIAS_RPL (ftruncate, int, (int fd, off_t length));
        !           621: # else
        !           622: #  if !@HAVE_FTRUNCATE@
1.1.1.2   misho     623: _GL_FUNCDECL_SYS (ftruncate, int, (int fd, off_t length));
1.1.1.3 ! misho     624: #  endif
1.1.1.2   misho     625: _GL_CXXALIAS_SYS (ftruncate, int, (int fd, off_t length));
1.1.1.3 ! misho     626: # endif
1.1.1.2   misho     627: _GL_CXXALIASWARN (ftruncate);
1.1       misho     628: #elif defined GNULIB_POSIXCHECK
                    629: # undef ftruncate
1.1.1.2   misho     630: # if HAVE_RAW_DECL_FTRUNCATE
                    631: _GL_WARN_ON_USE (ftruncate, "ftruncate is unportable - "
                    632:                  "use gnulib module ftruncate for portability");
                    633: # endif
1.1       misho     634: #endif
                    635: 
                    636: 
                    637: #if @GNULIB_GETCWD@
                    638: /* Get the name of the current working directory, and put it in SIZE bytes
                    639:    of BUF.
                    640:    Return BUF if successful, or NULL if the directory couldn't be determined
                    641:    or SIZE was too small.
1.1.1.3 ! misho     642:    See the POSIX:2008 specification
        !           643:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/getcwd.html>.
1.1       misho     644:    Additionally, the gnulib module 'getcwd' guarantees the following GNU
                    645:    extension: If BUF is NULL, an array is allocated with 'malloc'; the array
                    646:    is SIZE bytes long, unless SIZE == 0, in which case it is as big as
                    647:    necessary.  */
1.1.1.2   misho     648: # if @REPLACE_GETCWD@
                    649: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    650: #   define getcwd rpl_getcwd
                    651: #  endif
                    652: _GL_FUNCDECL_RPL (getcwd, char *, (char *buf, size_t size));
                    653: _GL_CXXALIAS_RPL (getcwd, char *, (char *buf, size_t size));
                    654: # else
                    655: /* Need to cast, because on mingw, the second parameter is
                    656:                                                    int size.  */
                    657: _GL_CXXALIAS_SYS_CAST (getcwd, char *, (char *buf, size_t size));
1.1       misho     658: # endif
1.1.1.2   misho     659: _GL_CXXALIASWARN (getcwd);
1.1       misho     660: #elif defined GNULIB_POSIXCHECK
                    661: # undef getcwd
1.1.1.2   misho     662: # if HAVE_RAW_DECL_GETCWD
                    663: _GL_WARN_ON_USE (getcwd, "getcwd is unportable - "
                    664:                  "use gnulib module getcwd for portability");
                    665: # endif
1.1       misho     666: #endif
                    667: 
                    668: 
                    669: #if @GNULIB_GETDOMAINNAME@
                    670: /* Return the NIS domain name of the machine.
                    671:    WARNING! The NIS domain name is unrelated to the fully qualified host name
                    672:             of the machine.  It is also unrelated to email addresses.
                    673:    WARNING! The NIS domain name is usually the empty string or "(none)" when
                    674:             not using NIS.
                    675: 
                    676:    Put up to LEN bytes of the NIS domain name into NAME.
                    677:    Null terminate it if the name is shorter than LEN.
                    678:    If the NIS domain name is longer than LEN, set errno = EINVAL and return -1.
                    679:    Return 0 if successful, otherwise set errno and return -1.  */
1.1.1.2   misho     680: # if @REPLACE_GETDOMAINNAME@
                    681: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    682: #   undef getdomainname
                    683: #   define getdomainname rpl_getdomainname
                    684: #  endif
                    685: _GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
                    686:                                       _GL_ARG_NONNULL ((1)));
                    687: _GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
                    688: # else
                    689: #  if !@HAVE_DECL_GETDOMAINNAME@
                    690: _GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
                    691:                                       _GL_ARG_NONNULL ((1)));
                    692: #  endif
                    693: _GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
1.1       misho     694: # endif
1.1.1.2   misho     695: _GL_CXXALIASWARN (getdomainname);
1.1       misho     696: #elif defined GNULIB_POSIXCHECK
                    697: # undef getdomainname
1.1.1.2   misho     698: # if HAVE_RAW_DECL_GETDOMAINNAME
                    699: _GL_WARN_ON_USE (getdomainname, "getdomainname is unportable - "
                    700:                  "use gnulib module getdomainname for portability");
                    701: # endif
1.1       misho     702: #endif
                    703: 
                    704: 
                    705: #if @GNULIB_GETDTABLESIZE@
1.1.1.2   misho     706: /* Return the maximum number of file descriptors in the current process.
                    707:    In POSIX, this is same as sysconf (_SC_OPEN_MAX).  */
1.1.1.3 ! misho     708: # if @REPLACE_GETDTABLESIZE@
        !           709: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           710: #   undef getdtablesize
        !           711: #   define getdtablesize rpl_getdtablesize
        !           712: #  endif
        !           713: _GL_FUNCDECL_RPL (getdtablesize, int, (void));
        !           714: _GL_CXXALIAS_RPL (getdtablesize, int, (void));
        !           715: # else
        !           716: #  if !@HAVE_GETDTABLESIZE@
1.1.1.2   misho     717: _GL_FUNCDECL_SYS (getdtablesize, int, (void));
1.1.1.3 ! misho     718: #  endif
1.1.1.2   misho     719: _GL_CXXALIAS_SYS (getdtablesize, int, (void));
1.1.1.3 ! misho     720: # endif
1.1.1.2   misho     721: _GL_CXXALIASWARN (getdtablesize);
1.1       misho     722: #elif defined GNULIB_POSIXCHECK
                    723: # undef getdtablesize
1.1.1.2   misho     724: # if HAVE_RAW_DECL_GETDTABLESIZE
                    725: _GL_WARN_ON_USE (getdtablesize, "getdtablesize is unportable - "
                    726:                  "use gnulib module getdtablesize for portability");
                    727: # endif
                    728: #endif
                    729: 
                    730: 
                    731: #if @GNULIB_GETGROUPS@
                    732: /* Return the supplemental groups that the current process belongs to.
                    733:    It is unspecified whether the effective group id is in the list.
                    734:    If N is 0, return the group count; otherwise, N describes how many
                    735:    entries are available in GROUPS.  Return -1 and set errno if N is
                    736:    not 0 and not large enough.  Fails with ENOSYS on some systems.  */
                    737: # if @REPLACE_GETGROUPS@
                    738: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    739: #   undef getgroups
                    740: #   define getgroups rpl_getgroups
                    741: #  endif
                    742: _GL_FUNCDECL_RPL (getgroups, int, (int n, gid_t *groups));
                    743: _GL_CXXALIAS_RPL (getgroups, int, (int n, gid_t *groups));
                    744: # else
                    745: #  if !@HAVE_GETGROUPS@
                    746: _GL_FUNCDECL_SYS (getgroups, int, (int n, gid_t *groups));
                    747: #  endif
                    748: _GL_CXXALIAS_SYS (getgroups, int, (int n, gid_t *groups));
                    749: # endif
                    750: _GL_CXXALIASWARN (getgroups);
                    751: #elif defined GNULIB_POSIXCHECK
                    752: # undef getgroups
                    753: # if HAVE_RAW_DECL_GETGROUPS
                    754: _GL_WARN_ON_USE (getgroups, "getgroups is unportable - "
                    755:                  "use gnulib module getgroups for portability");
                    756: # endif
1.1       misho     757: #endif
                    758: 
                    759: 
                    760: #if @GNULIB_GETHOSTNAME@
                    761: /* Return the standard host name of the machine.
                    762:    WARNING! The host name may or may not be fully qualified.
                    763: 
                    764:    Put up to LEN bytes of the host name into NAME.
                    765:    Null terminate it if the name is shorter than LEN.
                    766:    If the host name is longer than LEN, set errno = EINVAL and return -1.
                    767:    Return 0 if successful, otherwise set errno and return -1.  */
                    768: # if @UNISTD_H_HAVE_WINSOCK2_H@
1.1.1.2   misho     769: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    770: #   undef gethostname
                    771: #   define gethostname rpl_gethostname
                    772: #  endif
                    773: _GL_FUNCDECL_RPL (gethostname, int, (char *name, size_t len)
                    774:                                     _GL_ARG_NONNULL ((1)));
                    775: _GL_CXXALIAS_RPL (gethostname, int, (char *name, size_t len));
                    776: # else
                    777: #  if !@HAVE_GETHOSTNAME@
                    778: _GL_FUNCDECL_SYS (gethostname, int, (char *name, size_t len)
                    779:                                     _GL_ARG_NONNULL ((1)));
                    780: #  endif
                    781: /* Need to cast, because on Solaris 10 and OSF/1 5.1 systems, the second
                    782:    parameter is
                    783:                                                       int len.  */
                    784: _GL_CXXALIAS_SYS_CAST (gethostname, int, (char *name, size_t len));
1.1       misho     785: # endif
1.1.1.2   misho     786: _GL_CXXALIASWARN (gethostname);
1.1       misho     787: #elif @UNISTD_H_HAVE_WINSOCK2_H@
                    788: # undef gethostname
                    789: # define gethostname gethostname_used_without_requesting_gnulib_module_gethostname
                    790: #elif defined GNULIB_POSIXCHECK
                    791: # undef gethostname
1.1.1.2   misho     792: # if HAVE_RAW_DECL_GETHOSTNAME
                    793: _GL_WARN_ON_USE (gethostname, "gethostname is unportable - "
                    794:                  "use gnulib module gethostname for portability");
                    795: # endif
                    796: #endif
                    797: 
                    798: 
                    799: #if @GNULIB_GETLOGIN@
                    800: /* Returns the user's login name, or NULL if it cannot be found.  Upon error,
                    801:    returns NULL with errno set.
                    802: 
                    803:    See <http://www.opengroup.org/susv3xsh/getlogin.html>.
                    804: 
                    805:    Most programs don't need to use this function, because the information is
                    806:    available through environment variables:
                    807:      ${LOGNAME-$USER}        on Unix platforms,
                    808:      $USERNAME               on native Windows platforms.
                    809:  */
1.1.1.3 ! misho     810: # if !@HAVE_DECL_GETLOGIN@
1.1.1.2   misho     811: _GL_FUNCDECL_SYS (getlogin, char *, (void));
                    812: # endif
                    813: _GL_CXXALIAS_SYS (getlogin, char *, (void));
                    814: _GL_CXXALIASWARN (getlogin);
                    815: #elif defined GNULIB_POSIXCHECK
                    816: # undef getlogin
                    817: # if HAVE_RAW_DECL_GETLOGIN
                    818: _GL_WARN_ON_USE (getlogin, "getlogin is unportable - "
                    819:                  "use gnulib module getlogin for portability");
                    820: # endif
1.1       misho     821: #endif
                    822: 
                    823: 
                    824: #if @GNULIB_GETLOGIN_R@
                    825: /* Copies the user's login name to NAME.
                    826:    The array pointed to by NAME has room for SIZE bytes.
                    827: 
                    828:    Returns 0 if successful.  Upon error, an error number is returned, or -1 in
                    829:    the case that the login name cannot be found but no specific error is
                    830:    provided (this case is hopefully rare but is left open by the POSIX spec).
                    831: 
                    832:    See <http://www.opengroup.org/susv3xsh/getlogin.html>.
1.1.1.2   misho     833: 
                    834:    Most programs don't need to use this function, because the information is
                    835:    available through environment variables:
                    836:      ${LOGNAME-$USER}        on Unix platforms,
                    837:      $USERNAME               on native Windows platforms.
1.1       misho     838:  */
1.1.1.2   misho     839: # if @REPLACE_GETLOGIN_R@
                    840: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    841: #   define getlogin_r rpl_getlogin_r
                    842: #  endif
                    843: _GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size)
                    844:                                    _GL_ARG_NONNULL ((1)));
                    845: _GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size));
                    846: # else
                    847: #  if !@HAVE_DECL_GETLOGIN_R@
                    848: _GL_FUNCDECL_SYS (getlogin_r, int, (char *name, size_t size)
                    849:                                    _GL_ARG_NONNULL ((1)));
                    850: #  endif
                    851: /* Need to cast, because on Solaris 10 systems, the second argument is
                    852:                                                      int size.  */
                    853: _GL_CXXALIAS_SYS_CAST (getlogin_r, int, (char *name, size_t size));
1.1       misho     854: # endif
1.1.1.2   misho     855: _GL_CXXALIASWARN (getlogin_r);
1.1       misho     856: #elif defined GNULIB_POSIXCHECK
                    857: # undef getlogin_r
1.1.1.2   misho     858: # if HAVE_RAW_DECL_GETLOGIN_R
                    859: _GL_WARN_ON_USE (getlogin_r, "getlogin_r is unportable - "
                    860:                  "use gnulib module getlogin_r for portability");
                    861: # endif
1.1       misho     862: #endif
                    863: 
                    864: 
                    865: #if @GNULIB_GETPAGESIZE@
                    866: # if @REPLACE_GETPAGESIZE@
1.1.1.2   misho     867: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    868: #   define getpagesize rpl_getpagesize
1.1       misho     869: #  endif
1.1.1.2   misho     870: _GL_FUNCDECL_RPL (getpagesize, int, (void));
                    871: _GL_CXXALIAS_RPL (getpagesize, int, (void));
                    872: # else
                    873: #  if !@HAVE_GETPAGESIZE@
                    874: #   if !defined getpagesize
                    875: /* This is for POSIX systems.  */
                    876: #    if !defined _gl_getpagesize && defined _SC_PAGESIZE
                    877: #     if ! (defined __VMS && __VMS_VER < 70000000)
                    878: #      define _gl_getpagesize() sysconf (_SC_PAGESIZE)
                    879: #     endif
                    880: #    endif
1.1       misho     881: /* This is for older VMS.  */
1.1.1.2   misho     882: #    if !defined _gl_getpagesize && defined __VMS
                    883: #     ifdef __ALPHA
                    884: #      define _gl_getpagesize() 8192
                    885: #     else
                    886: #      define _gl_getpagesize() 512
                    887: #     endif
                    888: #    endif
1.1       misho     889: /* This is for BeOS.  */
1.1.1.2   misho     890: #    if !defined _gl_getpagesize && @HAVE_OS_H@
                    891: #     include <OS.h>
                    892: #     if defined B_PAGE_SIZE
                    893: #      define _gl_getpagesize() B_PAGE_SIZE
                    894: #     endif
                    895: #    endif
1.1       misho     896: /* This is for AmigaOS4.0.  */
1.1.1.2   misho     897: #    if !defined _gl_getpagesize && defined __amigaos4__
                    898: #     define _gl_getpagesize() 2048
                    899: #    endif
1.1       misho     900: /* This is for older Unix systems.  */
1.1.1.2   misho     901: #    if !defined _gl_getpagesize && @HAVE_SYS_PARAM_H@
                    902: #     include <sys/param.h>
                    903: #     ifdef EXEC_PAGESIZE
                    904: #      define _gl_getpagesize() EXEC_PAGESIZE
                    905: #     else
                    906: #      ifdef NBPG
                    907: #       ifndef CLSIZE
                    908: #        define CLSIZE 1
                    909: #       endif
                    910: #       define _gl_getpagesize() (NBPG * CLSIZE)
                    911: #      else
                    912: #       ifdef NBPC
                    913: #        define _gl_getpagesize() NBPC
                    914: #       endif
                    915: #      endif
1.1       misho     916: #     endif
1.1.1.2   misho     917: #    endif
                    918: #    if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                    919: #     define getpagesize() _gl_getpagesize ()
1.1       misho     920: #    else
1.1.1.2   misho     921: #     if !GNULIB_defined_getpagesize_function
1.1.1.3 ! misho     922: _GL_UNISTD_INLINE int
1.1.1.2   misho     923: getpagesize ()
                    924: {
                    925:   return _gl_getpagesize ();
                    926: }
                    927: #      define GNULIB_defined_getpagesize_function 1
1.1       misho     928: #     endif
                    929: #    endif
                    930: #   endif
                    931: #  endif
1.1.1.2   misho     932: /* Need to cast, because on Cygwin 1.5.x systems, the return type is size_t.  */
                    933: _GL_CXXALIAS_SYS_CAST (getpagesize, int, (void));
                    934: # endif
                    935: # if @HAVE_DECL_GETPAGESIZE@
                    936: _GL_CXXALIASWARN (getpagesize);
1.1       misho     937: # endif
                    938: #elif defined GNULIB_POSIXCHECK
                    939: # undef getpagesize
1.1.1.2   misho     940: # if HAVE_RAW_DECL_GETPAGESIZE
                    941: _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - "
                    942:                  "use gnulib module getpagesize for portability");
                    943: # endif
1.1       misho     944: #endif
                    945: 
                    946: 
1.1.1.3 ! misho     947: #if @GNULIB_GETPASS@
        !           948: /* Function getpass() from module 'getpass':
        !           949:      Read a password from /dev/tty or stdin.
        !           950:    Function getpass() from module 'getpass-gnu':
        !           951:      Read a password of arbitrary length from /dev/tty or stdin.  */
        !           952: # if @REPLACE_GETPASS@
        !           953: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !           954: #   undef getpass
        !           955: #   define getpass rpl_getpass
        !           956: #  endif
        !           957: _GL_FUNCDECL_RPL (getpass, char *, (const char *prompt)
        !           958:                                    _GL_ARG_NONNULL ((1)));
        !           959: _GL_CXXALIAS_RPL (getpass, char *, (const char *prompt));
        !           960: # else
        !           961: #  if !@HAVE_GETPASS@
        !           962: _GL_FUNCDECL_SYS (getpass, char *, (const char *prompt)
        !           963:                                    _GL_ARG_NONNULL ((1)));
        !           964: #  endif
        !           965: _GL_CXXALIAS_SYS (getpass, char *, (const char *prompt));
        !           966: # endif
        !           967: _GL_CXXALIASWARN (getpass);
        !           968: #elif defined GNULIB_POSIXCHECK
        !           969: # undef getpass
        !           970: # if HAVE_RAW_DECL_GETPASS
        !           971: _GL_WARN_ON_USE (getpass, "getpass is unportable - "
        !           972:                  "use gnulib module getpass or getpass-gnu for portability");
        !           973: # endif
        !           974: #endif
        !           975: 
        !           976: 
1.1       misho     977: #if @GNULIB_GETUSERSHELL@
                    978: /* Return the next valid login shell on the system, or NULL when the end of
                    979:    the list has been reached.  */
1.1.1.2   misho     980: # if !@HAVE_DECL_GETUSERSHELL@
                    981: _GL_FUNCDECL_SYS (getusershell, char *, (void));
                    982: # endif
                    983: _GL_CXXALIAS_SYS (getusershell, char *, (void));
                    984: _GL_CXXALIASWARN (getusershell);
                    985: #elif defined GNULIB_POSIXCHECK
                    986: # undef getusershell
                    987: # if HAVE_RAW_DECL_GETUSERSHELL
                    988: _GL_WARN_ON_USE (getusershell, "getusershell is unportable - "
                    989:                  "use gnulib module getusershell for portability");
                    990: # endif
                    991: #endif
                    992: 
                    993: #if @GNULIB_GETUSERSHELL@
1.1       misho     994: /* Rewind to pointer that is advanced at each getusershell() call.  */
1.1.1.2   misho     995: # if !@HAVE_DECL_GETUSERSHELL@
                    996: _GL_FUNCDECL_SYS (setusershell, void, (void));
                    997: # endif
                    998: _GL_CXXALIAS_SYS (setusershell, void, (void));
                    999: _GL_CXXALIASWARN (setusershell);
                   1000: #elif defined GNULIB_POSIXCHECK
                   1001: # undef setusershell
                   1002: # if HAVE_RAW_DECL_SETUSERSHELL
                   1003: _GL_WARN_ON_USE (setusershell, "setusershell is unportable - "
                   1004:                  "use gnulib module getusershell for portability");
                   1005: # endif
                   1006: #endif
                   1007: 
                   1008: #if @GNULIB_GETUSERSHELL@
1.1       misho    1009: /* Free the pointer that is advanced at each getusershell() call and
                   1010:    associated resources.  */
1.1.1.2   misho    1011: # if !@HAVE_DECL_GETUSERSHELL@
                   1012: _GL_FUNCDECL_SYS (endusershell, void, (void));
1.1       misho    1013: # endif
1.1.1.2   misho    1014: _GL_CXXALIAS_SYS (endusershell, void, (void));
                   1015: _GL_CXXALIASWARN (endusershell);
1.1       misho    1016: #elif defined GNULIB_POSIXCHECK
                   1017: # undef endusershell
1.1.1.2   misho    1018: # if HAVE_RAW_DECL_ENDUSERSHELL
                   1019: _GL_WARN_ON_USE (endusershell, "endusershell is unportable - "
                   1020:                  "use gnulib module getusershell for portability");
                   1021: # endif
                   1022: #endif
                   1023: 
                   1024: 
                   1025: #if @GNULIB_GROUP_MEMBER@
                   1026: /* Determine whether group id is in calling user's group list.  */
                   1027: # if !@HAVE_GROUP_MEMBER@
                   1028: _GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
                   1029: # endif
                   1030: _GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
                   1031: _GL_CXXALIASWARN (group_member);
                   1032: #elif defined GNULIB_POSIXCHECK
                   1033: # undef group_member
                   1034: # if HAVE_RAW_DECL_GROUP_MEMBER
                   1035: _GL_WARN_ON_USE (group_member, "group_member is unportable - "
                   1036:                  "use gnulib module group-member for portability");
                   1037: # endif
1.1       misho    1038: #endif
                   1039: 
                   1040: 
1.1.1.3 ! misho    1041: #if @GNULIB_ISATTY@
        !          1042: # if @REPLACE_ISATTY@
        !          1043: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !          1044: #   undef isatty
        !          1045: #   define isatty rpl_isatty
        !          1046: #  endif
        !          1047: _GL_FUNCDECL_RPL (isatty, int, (int fd));
        !          1048: _GL_CXXALIAS_RPL (isatty, int, (int fd));
        !          1049: # else
        !          1050: _GL_CXXALIAS_SYS (isatty, int, (int fd));
        !          1051: # endif
        !          1052: _GL_CXXALIASWARN (isatty);
        !          1053: #elif defined GNULIB_POSIXCHECK
        !          1054: # undef isatty
        !          1055: # if HAVE_RAW_DECL_ISATTY
        !          1056: _GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
        !          1057:                  "use gnulib module isatty for portability");
        !          1058: # endif
        !          1059: #endif
        !          1060: 
        !          1061: 
1.1       misho    1062: #if @GNULIB_LCHOWN@
                   1063: /* Change the owner of FILE to UID (if UID is not -1) and the group of FILE
                   1064:    to GID (if GID is not -1).  Do not follow symbolic links.
                   1065:    Return 0 if successful, otherwise -1 and errno set.
1.1.1.3 ! misho    1066:    See the POSIX:2008 specification
        !          1067:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lchown.html>.  */
1.1.1.2   misho    1068: # if @REPLACE_LCHOWN@
                   1069: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1070: #   undef lchown
                   1071: #   define lchown rpl_lchown
                   1072: #  endif
                   1073: _GL_FUNCDECL_RPL (lchown, int, (char const *file, uid_t owner, gid_t group)
                   1074:                                _GL_ARG_NONNULL ((1)));
                   1075: _GL_CXXALIAS_RPL (lchown, int, (char const *file, uid_t owner, gid_t group));
                   1076: # else
                   1077: #  if !@HAVE_LCHOWN@
                   1078: _GL_FUNCDECL_SYS (lchown, int, (char const *file, uid_t owner, gid_t group)
                   1079:                                _GL_ARG_NONNULL ((1)));
                   1080: #  endif
                   1081: _GL_CXXALIAS_SYS (lchown, int, (char const *file, uid_t owner, gid_t group));
1.1       misho    1082: # endif
1.1.1.2   misho    1083: _GL_CXXALIASWARN (lchown);
1.1       misho    1084: #elif defined GNULIB_POSIXCHECK
                   1085: # undef lchown
1.1.1.2   misho    1086: # if HAVE_RAW_DECL_LCHOWN
                   1087: _GL_WARN_ON_USE (lchown, "lchown is unportable to pre-POSIX.1-2001 systems - "
                   1088:                  "use gnulib module lchown for portability");
                   1089: # endif
1.1       misho    1090: #endif
                   1091: 
                   1092: 
                   1093: #if @GNULIB_LINK@
                   1094: /* Create a new hard link for an existing file.
                   1095:    Return 0 if successful, otherwise -1 and errno set.
1.1.1.3 ! misho    1096:    See POSIX:2008 specification
        !          1097:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html>.  */
1.1.1.2   misho    1098: # if @REPLACE_LINK@
                   1099: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1100: #   define link rpl_link
                   1101: #  endif
                   1102: _GL_FUNCDECL_RPL (link, int, (const char *path1, const char *path2)
                   1103:                              _GL_ARG_NONNULL ((1, 2)));
                   1104: _GL_CXXALIAS_RPL (link, int, (const char *path1, const char *path2));
                   1105: # else
                   1106: #  if !@HAVE_LINK@
                   1107: _GL_FUNCDECL_SYS (link, int, (const char *path1, const char *path2)
                   1108:                              _GL_ARG_NONNULL ((1, 2)));
                   1109: #  endif
                   1110: _GL_CXXALIAS_SYS (link, int, (const char *path1, const char *path2));
1.1       misho    1111: # endif
1.1.1.2   misho    1112: _GL_CXXALIASWARN (link);
1.1       misho    1113: #elif defined GNULIB_POSIXCHECK
                   1114: # undef link
1.1.1.2   misho    1115: # if HAVE_RAW_DECL_LINK
                   1116: _GL_WARN_ON_USE (link, "link is unportable - "
                   1117:                  "use gnulib module link for portability");
                   1118: # endif
                   1119: #endif
                   1120: 
                   1121: 
                   1122: #if @GNULIB_LINKAT@
                   1123: /* Create a new hard link for an existing file, relative to two
                   1124:    directories.  FLAG controls whether symlinks are followed.
                   1125:    Return 0 if successful, otherwise -1 and errno set.  */
                   1126: # if @REPLACE_LINKAT@
                   1127: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1128: #   undef linkat
                   1129: #   define linkat rpl_linkat
                   1130: #  endif
                   1131: _GL_FUNCDECL_RPL (linkat, int,
                   1132:                   (int fd1, const char *path1, int fd2, const char *path2,
                   1133:                    int flag)
                   1134:                   _GL_ARG_NONNULL ((2, 4)));
                   1135: _GL_CXXALIAS_RPL (linkat, int,
                   1136:                   (int fd1, const char *path1, int fd2, const char *path2,
                   1137:                    int flag));
                   1138: # else
                   1139: #  if !@HAVE_LINKAT@
                   1140: _GL_FUNCDECL_SYS (linkat, int,
                   1141:                   (int fd1, const char *path1, int fd2, const char *path2,
                   1142:                    int flag)
                   1143:                   _GL_ARG_NONNULL ((2, 4)));
                   1144: #  endif
                   1145: _GL_CXXALIAS_SYS (linkat, int,
                   1146:                   (int fd1, const char *path1, int fd2, const char *path2,
                   1147:                    int flag));
                   1148: # endif
                   1149: _GL_CXXALIASWARN (linkat);
                   1150: #elif defined GNULIB_POSIXCHECK
                   1151: # undef linkat
                   1152: # if HAVE_RAW_DECL_LINKAT
                   1153: _GL_WARN_ON_USE (linkat, "linkat is unportable - "
                   1154:                  "use gnulib module linkat for portability");
                   1155: # endif
1.1       misho    1156: #endif
                   1157: 
                   1158: 
                   1159: #if @GNULIB_LSEEK@
                   1160: /* Set the offset of FD relative to SEEK_SET, SEEK_CUR, or SEEK_END.
                   1161:    Return the new offset if successful, otherwise -1 and errno set.
1.1.1.3 ! misho    1162:    See the POSIX:2008 specification
        !          1163:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/lseek.html>.  */
1.1.1.2   misho    1164: # if @REPLACE_LSEEK@
                   1165: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1166: #   define lseek rpl_lseek
                   1167: #  endif
                   1168: _GL_FUNCDECL_RPL (lseek, off_t, (int fd, off_t offset, int whence));
                   1169: _GL_CXXALIAS_RPL (lseek, off_t, (int fd, off_t offset, int whence));
                   1170: # else
                   1171: _GL_CXXALIAS_SYS (lseek, off_t, (int fd, off_t offset, int whence));
1.1       misho    1172: # endif
1.1.1.2   misho    1173: _GL_CXXALIASWARN (lseek);
1.1       misho    1174: #elif defined GNULIB_POSIXCHECK
                   1175: # undef lseek
1.1.1.2   misho    1176: # if HAVE_RAW_DECL_LSEEK
                   1177: _GL_WARN_ON_USE (lseek, "lseek does not fail with ESPIPE on pipes on some "
                   1178:                  "systems - use gnulib module lseek for portability");
                   1179: # endif
                   1180: #endif
                   1181: 
                   1182: 
                   1183: #if @GNULIB_PIPE@
                   1184: /* Create a pipe, defaulting to O_BINARY mode.
                   1185:    Store the read-end as fd[0] and the write-end as fd[1].
                   1186:    Return 0 upon success, or -1 with errno set upon failure.  */
                   1187: # if !@HAVE_PIPE@
                   1188: _GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
                   1189: # endif
                   1190: _GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
                   1191: _GL_CXXALIASWARN (pipe);
                   1192: #elif defined GNULIB_POSIXCHECK
                   1193: # undef pipe
                   1194: # if HAVE_RAW_DECL_PIPE
                   1195: _GL_WARN_ON_USE (pipe, "pipe is unportable - "
                   1196:                  "use gnulib module pipe-posix for portability");
                   1197: # endif
                   1198: #endif
                   1199: 
                   1200: 
                   1201: #if @GNULIB_PIPE2@
                   1202: /* Create a pipe, applying the given flags when opening the read-end of the
                   1203:    pipe and the write-end of the pipe.
                   1204:    The flags are a bitmask, possibly including O_CLOEXEC (defined in <fcntl.h>)
                   1205:    and O_TEXT, O_BINARY (defined in "binary-io.h").
                   1206:    Store the read-end as fd[0] and the write-end as fd[1].
                   1207:    Return 0 upon success, or -1 with errno set upon failure.
                   1208:    See also the Linux man page at
1.1.1.3 ! misho    1209:    <https://www.kernel.org/doc/man-pages/online/pages/man2/pipe2.2.html>.  */
1.1.1.2   misho    1210: # if @HAVE_PIPE2@
                   1211: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1212: #   define pipe2 rpl_pipe2
                   1213: #  endif
                   1214: _GL_FUNCDECL_RPL (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
                   1215: _GL_CXXALIAS_RPL (pipe2, int, (int fd[2], int flags));
                   1216: # else
                   1217: _GL_FUNCDECL_SYS (pipe2, int, (int fd[2], int flags) _GL_ARG_NONNULL ((1)));
                   1218: _GL_CXXALIAS_SYS (pipe2, int, (int fd[2], int flags));
                   1219: # endif
                   1220: _GL_CXXALIASWARN (pipe2);
                   1221: #elif defined GNULIB_POSIXCHECK
                   1222: # undef pipe2
                   1223: # if HAVE_RAW_DECL_PIPE2
                   1224: _GL_WARN_ON_USE (pipe2, "pipe2 is unportable - "
                   1225:                  "use gnulib module pipe2 for portability");
                   1226: # endif
                   1227: #endif
                   1228: 
                   1229: 
                   1230: #if @GNULIB_PREAD@
                   1231: /* Read at most BUFSIZE bytes from FD into BUF, starting at OFFSET.
                   1232:    Return the number of bytes placed into BUF if successful, otherwise
1.1.1.3 ! misho    1233:    set errno and return -1.  0 indicates EOF.
        !          1234:    See the POSIX:2008 specification
        !          1235:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>.  */
1.1.1.2   misho    1236: # if @REPLACE_PREAD@
                   1237: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1238: #   undef pread
                   1239: #   define pread rpl_pread
                   1240: #  endif
                   1241: _GL_FUNCDECL_RPL (pread, ssize_t,
                   1242:                   (int fd, void *buf, size_t bufsize, off_t offset)
                   1243:                   _GL_ARG_NONNULL ((2)));
                   1244: _GL_CXXALIAS_RPL (pread, ssize_t,
                   1245:                   (int fd, void *buf, size_t bufsize, off_t offset));
                   1246: # else
                   1247: #  if !@HAVE_PREAD@
                   1248: _GL_FUNCDECL_SYS (pread, ssize_t,
                   1249:                   (int fd, void *buf, size_t bufsize, off_t offset)
                   1250:                   _GL_ARG_NONNULL ((2)));
                   1251: #  endif
                   1252: _GL_CXXALIAS_SYS (pread, ssize_t,
                   1253:                   (int fd, void *buf, size_t bufsize, off_t offset));
                   1254: # endif
                   1255: _GL_CXXALIASWARN (pread);
                   1256: #elif defined GNULIB_POSIXCHECK
                   1257: # undef pread
                   1258: # if HAVE_RAW_DECL_PREAD
                   1259: _GL_WARN_ON_USE (pread, "pread is unportable - "
                   1260:                  "use gnulib module pread for portability");
                   1261: # endif
                   1262: #endif
                   1263: 
                   1264: 
                   1265: #if @GNULIB_PWRITE@
                   1266: /* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
                   1267:    Return the number of bytes written if successful, otherwise
                   1268:    set errno and return -1.  0 indicates nothing written.  See the
1.1.1.3 ! misho    1269:    POSIX:2008 specification
        !          1270:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>.  */
1.1.1.2   misho    1271: # if @REPLACE_PWRITE@
                   1272: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1273: #   undef pwrite
                   1274: #   define pwrite rpl_pwrite
                   1275: #  endif
                   1276: _GL_FUNCDECL_RPL (pwrite, ssize_t,
                   1277:                   (int fd, const void *buf, size_t bufsize, off_t offset)
                   1278:                   _GL_ARG_NONNULL ((2)));
                   1279: _GL_CXXALIAS_RPL (pwrite, ssize_t,
                   1280:                   (int fd, const void *buf, size_t bufsize, off_t offset));
                   1281: # else
                   1282: #  if !@HAVE_PWRITE@
                   1283: _GL_FUNCDECL_SYS (pwrite, ssize_t,
                   1284:                   (int fd, const void *buf, size_t bufsize, off_t offset)
                   1285:                   _GL_ARG_NONNULL ((2)));
                   1286: #  endif
                   1287: _GL_CXXALIAS_SYS (pwrite, ssize_t,
                   1288:                   (int fd, const void *buf, size_t bufsize, off_t offset));
                   1289: # endif
                   1290: _GL_CXXALIASWARN (pwrite);
                   1291: #elif defined GNULIB_POSIXCHECK
                   1292: # undef pwrite
                   1293: # if HAVE_RAW_DECL_PWRITE
                   1294: _GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
                   1295:                  "use gnulib module pwrite for portability");
                   1296: # endif
                   1297: #endif
                   1298: 
                   1299: 
                   1300: #if @GNULIB_READ@
                   1301: /* Read up to COUNT bytes from file descriptor FD into the buffer starting
1.1.1.3 ! misho    1302:    at BUF.  See the POSIX:2008 specification
        !          1303:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>.  */
        !          1304: # if @REPLACE_READ@
1.1.1.2   misho    1305: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1306: #   undef read
                   1307: #   define read rpl_read
                   1308: #  endif
                   1309: _GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
                   1310:                                  _GL_ARG_NONNULL ((2)));
                   1311: _GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
                   1312: # else
                   1313: /* Need to cast, because on mingw, the third parameter is
                   1314:                                                           unsigned int count
                   1315:    and the return type is 'int'.  */
                   1316: _GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count));
                   1317: # endif
                   1318: _GL_CXXALIASWARN (read);
1.1       misho    1319: #endif
                   1320: 
                   1321: 
                   1322: #if @GNULIB_READLINK@
                   1323: /* Read the contents of the symbolic link FILE and place the first BUFSIZE
                   1324:    bytes of it into BUF.  Return the number of bytes placed into BUF if
                   1325:    successful, otherwise -1 and errno set.
1.1.1.3 ! misho    1326:    See the POSIX:2008 specification
        !          1327:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>.  */
1.1.1.2   misho    1328: # if @REPLACE_READLINK@
                   1329: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1330: #   define readlink rpl_readlink
                   1331: #  endif
                   1332: _GL_FUNCDECL_RPL (readlink, ssize_t,
                   1333:                   (const char *file, char *buf, size_t bufsize)
                   1334:                   _GL_ARG_NONNULL ((1, 2)));
                   1335: _GL_CXXALIAS_RPL (readlink, ssize_t,
                   1336:                   (const char *file, char *buf, size_t bufsize));
                   1337: # else
                   1338: #  if !@HAVE_READLINK@
                   1339: _GL_FUNCDECL_SYS (readlink, ssize_t,
                   1340:                   (const char *file, char *buf, size_t bufsize)
                   1341:                   _GL_ARG_NONNULL ((1, 2)));
                   1342: #  endif
                   1343: _GL_CXXALIAS_SYS (readlink, ssize_t,
                   1344:                   (const char *file, char *buf, size_t bufsize));
1.1       misho    1345: # endif
1.1.1.2   misho    1346: _GL_CXXALIASWARN (readlink);
1.1       misho    1347: #elif defined GNULIB_POSIXCHECK
                   1348: # undef readlink
1.1.1.2   misho    1349: # if HAVE_RAW_DECL_READLINK
                   1350: _GL_WARN_ON_USE (readlink, "readlink is unportable - "
                   1351:                  "use gnulib module readlink for portability");
                   1352: # endif
                   1353: #endif
                   1354: 
                   1355: 
                   1356: #if @GNULIB_READLINKAT@
1.1.1.3 ! misho    1357: # if @REPLACE_READLINKAT@
        !          1358: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !          1359: #   define readlinkat rpl_readlinkat
        !          1360: #  endif
        !          1361: _GL_FUNCDECL_RPL (readlinkat, ssize_t,
        !          1362:                   (int fd, char const *file, char *buf, size_t len)
        !          1363:                   _GL_ARG_NONNULL ((2, 3)));
        !          1364: _GL_CXXALIAS_RPL (readlinkat, ssize_t,
        !          1365:                   (int fd, char const *file, char *buf, size_t len));
        !          1366: # else
        !          1367: #  if !@HAVE_READLINKAT@
1.1.1.2   misho    1368: _GL_FUNCDECL_SYS (readlinkat, ssize_t,
                   1369:                   (int fd, char const *file, char *buf, size_t len)
                   1370:                   _GL_ARG_NONNULL ((2, 3)));
1.1.1.3 ! misho    1371: #  endif
1.1.1.2   misho    1372: _GL_CXXALIAS_SYS (readlinkat, ssize_t,
                   1373:                   (int fd, char const *file, char *buf, size_t len));
1.1.1.3 ! misho    1374: # endif
1.1.1.2   misho    1375: _GL_CXXALIASWARN (readlinkat);
                   1376: #elif defined GNULIB_POSIXCHECK
                   1377: # undef readlinkat
                   1378: # if HAVE_RAW_DECL_READLINKAT
                   1379: _GL_WARN_ON_USE (readlinkat, "readlinkat is not portable - "
                   1380:                  "use gnulib module readlinkat for portability");
                   1381: # endif
                   1382: #endif
                   1383: 
                   1384: 
                   1385: #if @GNULIB_RMDIR@
                   1386: /* Remove the directory DIR.  */
                   1387: # if @REPLACE_RMDIR@
                   1388: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1389: #   define rmdir rpl_rmdir
                   1390: #  endif
                   1391: _GL_FUNCDECL_RPL (rmdir, int, (char const *name) _GL_ARG_NONNULL ((1)));
                   1392: _GL_CXXALIAS_RPL (rmdir, int, (char const *name));
                   1393: # else
                   1394: _GL_CXXALIAS_SYS (rmdir, int, (char const *name));
                   1395: # endif
                   1396: _GL_CXXALIASWARN (rmdir);
                   1397: #elif defined GNULIB_POSIXCHECK
                   1398: # undef rmdir
                   1399: # if HAVE_RAW_DECL_RMDIR
                   1400: _GL_WARN_ON_USE (rmdir, "rmdir is unportable - "
                   1401:                  "use gnulib module rmdir for portability");
                   1402: # endif
1.1       misho    1403: #endif
                   1404: 
                   1405: 
1.1.1.3 ! misho    1406: #if @GNULIB_SETHOSTNAME@
        !          1407: /* Set the host name of the machine.
        !          1408:    The host name may or may not be fully qualified.
        !          1409: 
        !          1410:    Put LEN bytes of NAME into the host name.
        !          1411:    Return 0 if successful, otherwise, set errno and return -1.
        !          1412: 
        !          1413:    Platforms with no ability to set the hostname return -1 and set
        !          1414:    errno = ENOSYS.  */
        !          1415: # if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
        !          1416: _GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
        !          1417:                                     _GL_ARG_NONNULL ((1)));
        !          1418: # endif
        !          1419: /* Need to cast, because on Solaris 11 2011-10, Mac OS X 10.5, IRIX 6.5
        !          1420:    and FreeBSD 6.4 the second parameter is int.  On Solaris 11
        !          1421:    2011-10, the first parameter is not const.  */
        !          1422: _GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
        !          1423: _GL_CXXALIASWARN (sethostname);
        !          1424: #elif defined GNULIB_POSIXCHECK
        !          1425: # undef sethostname
        !          1426: # if HAVE_RAW_DECL_SETHOSTNAME
        !          1427: _GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
        !          1428:                  "use gnulib module sethostname for portability");
        !          1429: # endif
        !          1430: #endif
        !          1431: 
        !          1432: 
1.1       misho    1433: #if @GNULIB_SLEEP@
                   1434: /* Pause the execution of the current thread for N seconds.
                   1435:    Returns the number of seconds left to sleep.
1.1.1.3 ! misho    1436:    See the POSIX:2008 specification
        !          1437:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/sleep.html>.  */
1.1.1.2   misho    1438: # if @REPLACE_SLEEP@
                   1439: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1440: #   undef sleep
                   1441: #   define sleep rpl_sleep
                   1442: #  endif
                   1443: _GL_FUNCDECL_RPL (sleep, unsigned int, (unsigned int n));
                   1444: _GL_CXXALIAS_RPL (sleep, unsigned int, (unsigned int n));
                   1445: # else
                   1446: #  if !@HAVE_SLEEP@
                   1447: _GL_FUNCDECL_SYS (sleep, unsigned int, (unsigned int n));
                   1448: #  endif
                   1449: _GL_CXXALIAS_SYS (sleep, unsigned int, (unsigned int n));
1.1       misho    1450: # endif
1.1.1.2   misho    1451: _GL_CXXALIASWARN (sleep);
1.1       misho    1452: #elif defined GNULIB_POSIXCHECK
                   1453: # undef sleep
1.1.1.2   misho    1454: # if HAVE_RAW_DECL_SLEEP
                   1455: _GL_WARN_ON_USE (sleep, "sleep is unportable - "
                   1456:                  "use gnulib module sleep for portability");
                   1457: # endif
1.1       misho    1458: #endif
                   1459: 
                   1460: 
1.1.1.2   misho    1461: #if @GNULIB_SYMLINK@
                   1462: # if @REPLACE_SYMLINK@
                   1463: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1464: #   undef symlink
                   1465: #   define symlink rpl_symlink
                   1466: #  endif
                   1467: _GL_FUNCDECL_RPL (symlink, int, (char const *contents, char const *file)
                   1468:                                 _GL_ARG_NONNULL ((1, 2)));
                   1469: _GL_CXXALIAS_RPL (symlink, int, (char const *contents, char const *file));
                   1470: # else
                   1471: #  if !@HAVE_SYMLINK@
                   1472: _GL_FUNCDECL_SYS (symlink, int, (char const *contents, char const *file)
                   1473:                                 _GL_ARG_NONNULL ((1, 2)));
                   1474: #  endif
                   1475: _GL_CXXALIAS_SYS (symlink, int, (char const *contents, char const *file));
                   1476: # endif
                   1477: _GL_CXXALIASWARN (symlink);
                   1478: #elif defined GNULIB_POSIXCHECK
                   1479: # undef symlink
                   1480: # if HAVE_RAW_DECL_SYMLINK
                   1481: _GL_WARN_ON_USE (symlink, "symlink is not portable - "
                   1482:                  "use gnulib module symlink for portability");
                   1483: # endif
1.1       misho    1484: #endif
                   1485: 
                   1486: 
1.1.1.2   misho    1487: #if @GNULIB_SYMLINKAT@
1.1.1.3 ! misho    1488: # if @REPLACE_SYMLINKAT@
        !          1489: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !          1490: #   undef symlinkat
        !          1491: #   define symlinkat rpl_symlinkat
        !          1492: #  endif
        !          1493: _GL_FUNCDECL_RPL (symlinkat, int,
        !          1494:                   (char const *contents, int fd, char const *file)
        !          1495:                   _GL_ARG_NONNULL ((1, 3)));
        !          1496: _GL_CXXALIAS_RPL (symlinkat, int,
        !          1497:                   (char const *contents, int fd, char const *file));
        !          1498: # else
        !          1499: #  if !@HAVE_SYMLINKAT@
1.1.1.2   misho    1500: _GL_FUNCDECL_SYS (symlinkat, int,
                   1501:                   (char const *contents, int fd, char const *file)
                   1502:                   _GL_ARG_NONNULL ((1, 3)));
1.1.1.3 ! misho    1503: #  endif
1.1.1.2   misho    1504: _GL_CXXALIAS_SYS (symlinkat, int,
                   1505:                   (char const *contents, int fd, char const *file));
1.1.1.3 ! misho    1506: # endif
1.1.1.2   misho    1507: _GL_CXXALIASWARN (symlinkat);
                   1508: #elif defined GNULIB_POSIXCHECK
                   1509: # undef symlinkat
                   1510: # if HAVE_RAW_DECL_SYMLINKAT
                   1511: _GL_WARN_ON_USE (symlinkat, "symlinkat is not portable - "
                   1512:                  "use gnulib module symlinkat for portability");
                   1513: # endif
1.1       misho    1514: #endif
                   1515: 
                   1516: 
1.1.1.3 ! misho    1517: #if @GNULIB_TRUNCATE@
        !          1518: /* Change the size of the file designated by FILENAME to become equal to LENGTH.
        !          1519:    Return 0 if successful, otherwise -1 and errno set.
        !          1520:    See the POSIX:2008 specification
        !          1521:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/truncate.html>.  */
        !          1522: # if @REPLACE_TRUNCATE@
        !          1523: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
        !          1524: #   undef truncate
        !          1525: #   define truncate rpl_truncate
        !          1526: #  endif
        !          1527: _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length)
        !          1528:                                  _GL_ARG_NONNULL ((1)));
        !          1529: _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length));
        !          1530: # else
        !          1531: #  if !@HAVE_DECL_TRUNCATE@
        !          1532: _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length)
        !          1533:                                  _GL_ARG_NONNULL ((1)));
        !          1534: #  endif
        !          1535: _GL_CXXALIAS_SYS (truncate, int, (const char *filename, off_t length));
        !          1536: # endif
        !          1537: _GL_CXXALIASWARN (truncate);
        !          1538: #elif defined GNULIB_POSIXCHECK
        !          1539: # undef truncate
        !          1540: # if HAVE_RAW_DECL_TRUNCATE
        !          1541: _GL_WARN_ON_USE (truncate, "truncate is unportable - "
        !          1542:                  "use gnulib module truncate for portability");
        !          1543: # endif
        !          1544: #endif
        !          1545: 
        !          1546: 
1.1.1.2   misho    1547: #if @GNULIB_TTYNAME_R@
                   1548: /* Store at most BUFLEN characters of the pathname of the terminal FD is
                   1549:    open on in BUF.  Return 0 on success, otherwise an error number.  */
                   1550: # if @REPLACE_TTYNAME_R@
                   1551: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1552: #   undef ttyname_r
                   1553: #   define ttyname_r rpl_ttyname_r
                   1554: #  endif
                   1555: _GL_FUNCDECL_RPL (ttyname_r, int,
                   1556:                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
                   1557: _GL_CXXALIAS_RPL (ttyname_r, int,
                   1558:                   (int fd, char *buf, size_t buflen));
                   1559: # else
                   1560: #  if !@HAVE_DECL_TTYNAME_R@
                   1561: _GL_FUNCDECL_SYS (ttyname_r, int,
                   1562:                   (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
                   1563: #  endif
                   1564: _GL_CXXALIAS_SYS (ttyname_r, int,
                   1565:                   (int fd, char *buf, size_t buflen));
                   1566: # endif
                   1567: _GL_CXXALIASWARN (ttyname_r);
                   1568: #elif defined GNULIB_POSIXCHECK
                   1569: # undef ttyname_r
                   1570: # if HAVE_RAW_DECL_TTYNAME_R
                   1571: _GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
                   1572:                  "use gnulib module ttyname_r for portability");
                   1573: # endif
                   1574: #endif
                   1575: 
                   1576: 
                   1577: #if @GNULIB_UNLINK@
                   1578: # if @REPLACE_UNLINK@
                   1579: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1580: #   undef unlink
                   1581: #   define unlink rpl_unlink
                   1582: #  endif
                   1583: _GL_FUNCDECL_RPL (unlink, int, (char const *file) _GL_ARG_NONNULL ((1)));
                   1584: _GL_CXXALIAS_RPL (unlink, int, (char const *file));
                   1585: # else
                   1586: _GL_CXXALIAS_SYS (unlink, int, (char const *file));
                   1587: # endif
                   1588: _GL_CXXALIASWARN (unlink);
                   1589: #elif defined GNULIB_POSIXCHECK
                   1590: # undef unlink
                   1591: # if HAVE_RAW_DECL_UNLINK
                   1592: _GL_WARN_ON_USE (unlink, "unlink is not portable - "
                   1593:                  "use gnulib module unlink for portability");
                   1594: # endif
                   1595: #endif
                   1596: 
                   1597: 
                   1598: #if @GNULIB_UNLINKAT@
                   1599: # if @REPLACE_UNLINKAT@
                   1600: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1601: #   undef unlinkat
                   1602: #   define unlinkat rpl_unlinkat
                   1603: #  endif
                   1604: _GL_FUNCDECL_RPL (unlinkat, int, (int fd, char const *file, int flag)
                   1605:                                  _GL_ARG_NONNULL ((2)));
                   1606: _GL_CXXALIAS_RPL (unlinkat, int, (int fd, char const *file, int flag));
                   1607: # else
                   1608: #  if !@HAVE_UNLINKAT@
                   1609: _GL_FUNCDECL_SYS (unlinkat, int, (int fd, char const *file, int flag)
                   1610:                                  _GL_ARG_NONNULL ((2)));
                   1611: #  endif
                   1612: _GL_CXXALIAS_SYS (unlinkat, int, (int fd, char const *file, int flag));
                   1613: # endif
                   1614: _GL_CXXALIASWARN (unlinkat);
                   1615: #elif defined GNULIB_POSIXCHECK
                   1616: # undef unlinkat
                   1617: # if HAVE_RAW_DECL_UNLINKAT
                   1618: _GL_WARN_ON_USE (unlinkat, "unlinkat is not portable - "
                   1619:                  "use gnulib module openat for portability");
                   1620: # endif
                   1621: #endif
                   1622: 
                   1623: 
                   1624: #if @GNULIB_USLEEP@
                   1625: /* Pause the execution of the current thread for N microseconds.
                   1626:    Returns 0 on completion, or -1 on range error.
                   1627:    See the POSIX:2001 specification
1.1.1.3 ! misho    1628:    <http://www.opengroup.org/susv3xsh/usleep.html>.  */
1.1.1.2   misho    1629: # if @REPLACE_USLEEP@
                   1630: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1631: #   undef usleep
                   1632: #   define usleep rpl_usleep
                   1633: #  endif
                   1634: _GL_FUNCDECL_RPL (usleep, int, (useconds_t n));
                   1635: _GL_CXXALIAS_RPL (usleep, int, (useconds_t n));
                   1636: # else
                   1637: #  if !@HAVE_USLEEP@
                   1638: _GL_FUNCDECL_SYS (usleep, int, (useconds_t n));
                   1639: #  endif
                   1640: _GL_CXXALIAS_SYS (usleep, int, (useconds_t n));
                   1641: # endif
                   1642: _GL_CXXALIASWARN (usleep);
                   1643: #elif defined GNULIB_POSIXCHECK
                   1644: # undef usleep
                   1645: # if HAVE_RAW_DECL_USLEEP
                   1646: _GL_WARN_ON_USE (usleep, "usleep is unportable - "
                   1647:                  "use gnulib module usleep for portability");
                   1648: # endif
                   1649: #endif
                   1650: 
                   1651: 
                   1652: #if @GNULIB_WRITE@
                   1653: /* Write up to COUNT bytes starting at BUF to file descriptor FD.
1.1.1.3 ! misho    1654:    See the POSIX:2008 specification
        !          1655:    <http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>.  */
        !          1656: # if @REPLACE_WRITE@
1.1.1.2   misho    1657: #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
                   1658: #   undef write
                   1659: #   define write rpl_write
                   1660: #  endif
                   1661: _GL_FUNCDECL_RPL (write, ssize_t, (int fd, const void *buf, size_t count)
                   1662:                                   _GL_ARG_NONNULL ((2)));
                   1663: _GL_CXXALIAS_RPL (write, ssize_t, (int fd, const void *buf, size_t count));
                   1664: # else
                   1665: /* Need to cast, because on mingw, the third parameter is
                   1666:                                                              unsigned int count
                   1667:    and the return type is 'int'.  */
                   1668: _GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count));
                   1669: # endif
                   1670: _GL_CXXALIASWARN (write);
1.1       misho    1671: #endif
                   1672: 
1.1.1.3 ! misho    1673: _GL_INLINE_HEADER_END
1.1       misho    1674: 
1.1.1.2   misho    1675: #endif /* _@GUARD_PREFIX@_UNISTD_H */
1.1.1.3 ! misho    1676: #endif /* _GL_INCLUDING_UNISTD_H */
1.1.1.2   misho    1677: #endif /* _@GUARD_PREFIX@_UNISTD_H */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>