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