# GNU Gnulib

## Table of Contents

- 1 Introduction
  - 1.1 Benefits of using Gnulib
  - 1.2 Library vs. Reusable Code
  - 1.3 Portability and Application Code
  - 1.4 Target Platforms
  - 1.5 Modules
  - 1.6 Various Kinds of Modules
    - 1.6.1 Support for ISO C or POSIX functions.
    - 1.6.2 Enhancements of ISO C or POSIX functions
    - 1.6.3 Portable general use facilities
    - 1.6.4 Reusable application code
    - 1.6.5 Object oriented classes
    - 1.6.6 Interfaces to external libraries
    - 1.6.7 Build / maintenance infrastructure
  - 1.7 Collaborative Development
  - 1.8 Copyright
  - 1.9 Steady Development
  - 1.10 Openness
- 2 Invoking gnulib-tool
  - 2.1 Finding modules
  - 2.2 Initial import
  - 2.3 Modified imports
  - 2.4 Simple update
  - 2.5 Changing your sources for use with Gnulib
  - 2.6 Caveat: `gettextize` and `autopoint` users
  - 2.7 Handling Gnulib’s own message translations
  - 2.8 Issues with Version Control Systems
  - 2.9 Bundling the unit tests of the Gnulib modules
  - 2.10 Avoiding unnecessary checks and compilations
- 3 Writing modules
  - 3.1 Source code files
  - 3.2 Header files
  - 3.3 Implementation files
  - 3.4 Specification
  - 3.5 Module description
  - 3.6 Autoconf macros
  - 3.7 Unit test modules
  - 3.8 Incompatible changes
- 4 Extending Gnulib
- 5 Miscellaneous Notes
  - 5.1 Out of memory handling
  - 5.2 Obsolete modules
  - 5.3 Extra tests modules
  - 5.4 A C++ namespace for gnulib
  - 5.5 Library version handling
  - 5.6 Windows sockets
    - 5.6.1 Getaddrinfo and WINVER
  - 5.7 Libtool and Windows
  - 5.8 License Texinfo sources
  - 5.9 Build robot for gnulib
- 6 Building the ISO C and POSIX Substitutes
- 7 ISO C and POSIX Header File Substitutes
  - 7.1 `aio.h`
  - 7.2 `arpa/inet.h`
  - 7.3 `assert.h`
  - 7.4 `complex.h`
  - 7.5 `cpio.h`
  - 7.6 `ctype.h`
  - 7.7 `dirent.h`
  - 7.8 `dlfcn.h`
  - 7.9 `errno.h`
  - 7.10 `fcntl.h`
  - 7.11 `fenv.h`
  - 7.12 `float.h`
  - 7.13 `fmtmsg.h`
  - 7.14 `fnmatch.h`
  - 7.15 `ftw.h`
  - 7.16 `glob.h`
  - 7.17 `grp.h`
  - 7.18 `iconv.h`
  - 7.19 `inttypes.h`
  - 7.20 `iso646.h`
  - 7.21 `langinfo.h`
  - 7.22 `libgen.h`
  - 7.23 `limits.h`
  - 7.24 `locale.h`
  - 7.25 `math.h`
  - 7.26 `monetary.h`
  - 7.27 `mqueue.h`
  - 7.28 `ndbm.h`
  - 7.29 `net/if.h`
  - 7.30 `netdb.h`
  - 7.31 `netinet/in.h`
  - 7.32 `netinet/tcp.h`
  - 7.33 `nl_types.h`
  - 7.34 `poll.h`
  - 7.35 `pthread.h`
  - 7.36 `pwd.h`
  - 7.37 `regex.h`
  - 7.38 `sched.h`
  - 7.39 `search.h`
  - 7.40 `semaphore.h`
  - 7.41 `setjmp.h`
  - 7.42 `signal.h`
  - 7.43 `spawn.h`
  - 7.44 `stdalign.h`
  - 7.45 `stdarg.h`
  - 7.46 `stdbool.h`
  - 7.47 `stddef.h`
  - 7.48 `stdint.h`
  - 7.49 `stdio.h`
  - 7.50 `stdlib.h`
  - 7.51 `stdnoreturn.h`
  - 7.52 `string.h`
  - 7.53 `strings.h`
  - 7.54 `stropts.h`
  - 7.55 `sys/ipc.h`
  - 7.56 `sys/mman.h`
  - 7.57 `sys/msg.h`
  - 7.58 `sys/resource.h`
  - 7.59 `sys/select.h`
  - 7.60 `sys/sem.h`
  - 7.61 `sys/shm.h`
  - 7.62 `sys/socket.h`
  - 7.63 `sys/stat.h`
  - 7.64 `sys/statvfs.h`
  - 7.65 `sys/time.h`
  - 7.66 `sys/timeb.h`
  - 7.67 `sys/times.h`
  - 7.68 `sys/types.h`
  - 7.69 `sys/uio.h`
  - 7.70 `sys/un.h`
  - 7.71 `sys/utsname.h`
  - 7.72 `sys/wait.h`
  - 7.73 `syslog.h`
  - 7.74 `tar.h`
  - 7.75 `termios.h`
  - 7.76 `tgmath.h`
  - 7.77 `time.h`
  - 7.78 `trace.h`
  - 7.79 `uchar.h`
  - 7.80 `ucontext.h`
  - 7.81 `ulimit.h`
  - 7.82 `unistd.h`
  - 7.83 `utime.h`
  - 7.84 `utmpx.h`
  - 7.85 `wchar.h`
  - 7.86 `wctype.h`
  - 7.87 `wordexp.h`
- 8 ISO C and POSIX Function Substitutes
  - 8.1 `FD_CLR`
  - 8.2 `FD_ISSET`
  - 8.3 `FD_SET`
  - 8.4 `FD_ZERO`
  - 8.5 `_Exit`
  - 8.6 `_exit`
  - 8.7 `_longjmp`
  - 8.8 `_setjmp`
  - 8.9 `_tolower`
  - 8.10 `_toupper`
  - 8.11 `a64l`
  - 8.12 `abort`
  - 8.13 `abs`
  - 8.14 `accept`
  - 8.15 `access`
  - 8.16 `acos`
  - 8.17 `acosf`
  - 8.18 `acosh`
  - 8.19 `acoshf`
  - 8.20 `acoshl`
  - 8.21 `acosl`
  - 8.22 `aio_cancel`
  - 8.23 `aio_error`
  - 8.24 `aio_fsync`
  - 8.25 `aio_read`
  - 8.26 `aio_return`
  - 8.27 `aio_suspend`
  - 8.28 `aio_write`
  - 8.29 `alarm`
  - 8.30 `aligned_alloc`
  - 8.31 `alphasort`
  - 8.32 `asctime`
  - 8.33 `asctime_r`
  - 8.34 `asin`
  - 8.35 `asinf`
  - 8.36 `asinh`
  - 8.37 `asinhf`
  - 8.38 `asinhl`
  - 8.39 `asinl`
  - 8.40 `assert`
  - 8.41 `atan`
  - 8.42 `atan2`
  - 8.43 `atan2f`
  - 8.44 `atan2l`
  - 8.45 `atanf`
  - 8.46 `atanh`
  - 8.47 `atanhf`
  - 8.48 `atanhl`
  - 8.49 `atanl`
  - 8.50 `atexit`
  - 8.51 `atof`
  - 8.52 `atoi`
  - 8.53 `atol`
  - 8.54 `atoll`
  - 8.55 `basename`
  - 8.56 `bind`
  - 8.57 `bsearch`
  - 8.58 `btowc`
  - 8.59 `c16rtomb`
  - 8.60 `c32rtomb`
  - 8.61 `cabs`
  - 8.62 `cabsf`
  - 8.63 `cabsl`
  - 8.64 `cacos`
  - 8.65 `cacosf`
  - 8.66 `cacosh`
  - 8.67 `cacoshf`
  - 8.68 `cacoshl`
  - 8.69 `cacosl`
  - 8.70 `calloc`
  - 8.71 `carg`
  - 8.72 `cargf`
  - 8.73 `cargl`
  - 8.74 `casin`
  - 8.75 `casinf`
  - 8.76 `casinh`
  - 8.77 `casinhf`
  - 8.78 `casinhl`
  - 8.79 `casinl`
  - 8.80 `catan`
  - 8.81 `catanf`
  - 8.82 `catanh`
  - 8.83 `catanhf`
  - 8.84 `catanhl`
  - 8.85 `catanl`
  - 8.86 `catclose`
  - 8.87 `catgets`
  - 8.88 `catopen`
  - 8.89 `cbrt`
  - 8.90 `cbrtf`
  - 8.91 `cbrtl`
  - 8.92 `ccos`
  - 8.93 `ccosf`
  - 8.94 `ccosh`
  - 8.95 `ccoshf`
  - 8.96 `ccoshl`
  - 8.97 `ccosl`
  - 8.98 `ceil`
  - 8.99 `ceilf`
  - 8.100 `ceill`
  - 8.101 `cexp`
  - 8.102 `cexpf`
  - 8.103 `cexpl`
  - 8.104 `cfgetispeed`
  - 8.105 `cfgetospeed`
  - 8.106 `cfsetispeed`
  - 8.107 `cfsetospeed`
  - 8.108 `chdir`
  - 8.109 `chmod`
  - 8.110 `chown`
  - 8.111 `cimag`
  - 8.112 `cimagf`
  - 8.113 `cimagl`
  - 8.114 `clearerr`
  - 8.115 `clock`
  - 8.116 `clock_getcpuclockid`
  - 8.117 `clock_getres`
  - 8.118 `clock_gettime`
  - 8.119 `clock_nanosleep`
  - 8.120 `clock_settime`
  - 8.121 `clog`
  - 8.122 `clogf`
  - 8.123 `clogl`
  - 8.124 `close`
  - 8.125 `closedir`
  - 8.126 `closelog`
  - 8.127 `confstr`
  - 8.128 `conj`
  - 8.129 `conjf`
  - 8.130 `conjl`
  - 8.131 `connect`
  - 8.132 `copysign`
  - 8.133 `copysignf`
  - 8.134 `copysignl`
  - 8.135 `cos`
  - 8.136 `cosf`
  - 8.137 `cosh`
  - 8.138 `coshf`
  - 8.139 `coshl`
  - 8.140 `cosl`
  - 8.141 `cpow`
  - 8.142 `cpowf`
  - 8.143 `cpowl`
  - 8.144 `cproj`
  - 8.145 `cprojf`
  - 8.146 `cprojl`
  - 8.147 `creal`
  - 8.148 `crealf`
  - 8.149 `creall`
  - 8.150 `creat`
  - 8.151 `crypt`
  - 8.152 `csin`
  - 8.153 `csinf`
  - 8.154 `csinh`
  - 8.155 `csinhf`
  - 8.156 `csinhl`
  - 8.157 `csinl`
  - 8.158 `csqrt`
  - 8.159 `csqrtf`
  - 8.160 `csqrtl`
  - 8.161 `ctan`
  - 8.162 `ctanf`
  - 8.163 `ctanh`
  - 8.164 `ctanhf`
  - 8.165 `ctanhl`
  - 8.166 `ctanl`
  - 8.167 `ctermid`
  - 8.168 `ctime`
  - 8.169 `ctime_r`
  - 8.170 `daylight`
  - 8.171 `dbm_clearerr`
  - 8.172 `dbm_close`
  - 8.173 `dbm_delete`
  - 8.174 `dbm_error`
  - 8.175 `dbm_fetch`
  - 8.176 `dbm_firstkey`
  - 8.177 `dbm_nextkey`
  - 8.178 `dbm_open`
  - 8.179 `dbm_store`
  - 8.180 `difftime`
  - 8.181 `dirfd`
  - 8.182 `dirname`
  - 8.183 `div`
  - 8.184 `dlclose`
  - 8.185 `dlerror`
  - 8.186 `dlopen`
  - 8.187 `dlsym`
  - 8.188 `dprintf`
  - 8.189 `drand48`
  - 8.190 `dup`
  - 8.191 `dup2`
  - 8.192 `duplocale`
  - 8.193 `encrypt`
  - 8.194 `endgrent`
  - 8.195 `endhostent`
  - 8.196 `endnetent`
  - 8.197 `endprotoent`
  - 8.198 `endpwent`
  - 8.199 `endservent`
  - 8.200 `endutxent`
  - 8.201 `environ`
  - 8.202 `erand48`
  - 8.203 `erf`
  - 8.204 `erfc`
  - 8.205 `erfcf`
  - 8.206 `erfcl`
  - 8.207 `erff`
  - 8.208 `erfl`
  - 8.209 `errno`
  - 8.210 `execl`
  - 8.211 `execle`
  - 8.212 `execlp`
  - 8.213 `execv`
  - 8.214 `execve`
  - 8.215 `execvp`
  - 8.216 `exit`
  - 8.217 `exp`
  - 8.218 `exp2`
  - 8.219 `exp2f`
  - 8.220 `exp2l`
  - 8.221 `expf`
  - 8.222 `expl`
  - 8.223 `expm1`
  - 8.224 `expm1f`
  - 8.225 `expm1l`
  - 8.226 `fabs`
  - 8.227 `fabsf`
  - 8.228 `fabsl`
  - 8.229 `faccessat`
  - 8.230 `fattach`
  - 8.231 `fchdir`
  - 8.232 `fchmod`
  - 8.233 `fchmodat`
  - 8.234 `fchown`
  - 8.235 `fchownat`
  - 8.236 `fclose`
  - 8.237 `fcntl`
  - 8.238 `fdatasync`
  - 8.239 `fdetach`
  - 8.240 `fdim`
  - 8.241 `fdimf`
  - 8.242 `fdiml`
  - 8.243 `fdopen`
  - 8.244 `fdopendir`
  - 8.245 `feclearexcept`
  - 8.246 `fegetenv`
  - 8.247 `fegetexceptflag`
  - 8.248 `fegetround`
  - 8.249 `feholdexcept`
  - 8.250 `feof`
  - 8.251 `feraiseexcept`
  - 8.252 `ferror`
  - 8.253 `fesetenv`
  - 8.254 `fesetexceptflag`
  - 8.255 `fesetround`
  - 8.256 `fetestexcept`
  - 8.257 `feupdateenv`
  - 8.258 `fexecve`
  - 8.259 `fflush`
  - 8.260 `ffs`
  - 8.261 `fgetc`
  - 8.262 `fgetpos`
  - 8.263 `fgets`
  - 8.264 `fgetwc`
  - 8.265 `fgetws`
  - 8.266 `fileno`
  - 8.267 `flockfile`
  - 8.268 `floor`
  - 8.269 `floorf`
  - 8.270 `floorl`
  - 8.271 `fma`
  - 8.272 `fmaf`
  - 8.273 `fmal`
  - 8.274 `fmax`
  - 8.275 `fmaxf`
  - 8.276 `fmaxl`
  - 8.277 `fmemopen`
  - 8.278 `fmin`
  - 8.279 `fminf`
  - 8.280 `fminl`
  - 8.281 `fmod`
  - 8.282 `fmodf`
  - 8.283 `fmodl`
  - 8.284 `fmtmsg`
  - 8.285 `fnmatch`
  - 8.286 `fopen`
  - 8.287 `fork`
  - 8.288 `fpathconf`
  - 8.289 `fpclassify`
  - 8.290 `fprintf`
  - 8.291 `fputc`
  - 8.292 `fputs`
  - 8.293 `fputwc`
  - 8.294 `fputws`
  - 8.295 `fread`
  - 8.296 `free`
  - 8.297 `freeaddrinfo`
  - 8.298 `freelocale`
  - 8.299 `freopen`
  - 8.300 `frexp`
  - 8.301 `frexpf`
  - 8.302 `frexpl`
  - 8.303 `fscanf`
  - 8.304 `fseek`
  - 8.305 `fseeko`
  - 8.306 `fsetpos`
  - 8.307 `fstat`
  - 8.308 `fstatat`
  - 8.309 `fstatvfs`
  - 8.310 `fsync`
  - 8.311 `ftell`
  - 8.312 `ftello`
  - 8.313 `ftok`
  - 8.314 `ftruncate`
  - 8.315 `ftrylockfile`
  - 8.316 `ftw`
  - 8.317 `funlockfile`
  - 8.318 `futimens`
  - 8.319 `fwide`
  - 8.320 `fwprintf`
  - 8.321 `fwrite`
  - 8.322 `fwscanf`
  - 8.323 `gai_strerror`
  - 8.324 `getaddrinfo`
  - 8.325 `getc`
  - 8.326 `getc_unlocked`
  - 8.327 `getchar`
  - 8.328 `getchar_unlocked`
  - 8.329 `getcwd`
  - 8.330 `getdate`
  - 8.331 `getdate_err`
  - 8.332 `getdelim`
  - 8.333 `getegid`
  - 8.334 `getenv`
  - 8.335 `geteuid`
  - 8.336 `getgid`
  - 8.337 `getgrent`
  - 8.338 `getgrgid`
  - 8.339 `getgrgid_r`
  - 8.340 `getgrnam`
  - 8.341 `getgrnam_r`
  - 8.342 `getgroups`
  - 8.343 `gethostent`
  - 8.344 `gethostid`
  - 8.345 `gethostname`
  - 8.346 `getitimer`
  - 8.347 `getline`
  - 8.348 `getlogin`
  - 8.349 `getlogin_r`
  - 8.350 `getmsg`
  - 8.351 `getnameinfo`
  - 8.352 `getnetbyaddr`
  - 8.353 `getnetbyname`
  - 8.354 `getnetent`
  - 8.355 `getopt`
  - 8.356 `getpeername`
  - 8.357 `getpgid`
  - 8.358 `getpgrp`
  - 8.359 `getpid`
  - 8.360 `getpmsg`
  - 8.361 `getppid`
  - 8.362 `getpriority`
  - 8.363 `getprotobyname`
  - 8.364 `getprotobynumber`
  - 8.365 `getprotoent`
  - 8.366 `getpwent`
  - 8.367 `getpwnam`
  - 8.368 `getpwnam_r`
  - 8.369 `getpwuid`
  - 8.370 `getpwuid_r`
  - 8.371 `getrlimit`
  - 8.372 `getrusage`
  - 8.373 `gets`
  - 8.374 `getservbyname`
  - 8.375 `getservbyport`
  - 8.376 `getservent`
  - 8.377 `getsid`
  - 8.378 `getsockname`
  - 8.379 `getsockopt`
  - 8.380 `getsubopt`
  - 8.381 `gettimeofday`
  - 8.382 `getuid`
  - 8.383 `getutxent`
  - 8.384 `getutxid`
  - 8.385 `getutxline`
  - 8.386 `getwc`
  - 8.387 `getwchar`
  - 8.388 `glob`
  - 8.389 `globfree`
  - 8.390 `gmtime`
  - 8.391 `gmtime_r`
  - 8.392 `grantpt`
  - 8.393 `hcreate`
  - 8.394 `hdestroy`
  - 8.395 `hsearch`
  - 8.396 `htonl`
  - 8.397 `htons`
  - 8.398 `hypot`
  - 8.399 `hypotf`
  - 8.400 `hypotl`
  - 8.401 `iconv`
  - 8.402 `iconv_close`
  - 8.403 `iconv_open`
  - 8.404 `if_freenameindex`
  - 8.405 `if_indextoname`
  - 8.406 `if_nameindex`
  - 8.407 `if_nametoindex`
  - 8.408 `ilogb`
  - 8.409 `ilogbf`
  - 8.410 `ilogbl`
  - 8.411 `imaxabs`
  - 8.412 `imaxdiv`
  - 8.413 `inet_addr`
  - 8.414 `inet_ntoa`
  - 8.415 `inet_ntop`
  - 8.416 `inet_pton`
  - 8.417 `initstate`
  - 8.418 `insque`
  - 8.419 `ioctl`
  - 8.420 `isalnum`
  - 8.421 `isalnum_l`
  - 8.422 `isalpha`
  - 8.423 `isalpha_l`
  - 8.424 `isascii`
  - 8.425 `isastream`
  - 8.426 `isatty`
  - 8.427 `isblank`
  - 8.428 `isblank_l`
  - 8.429 `iscntrl`
  - 8.430 `iscntrl_l`
  - 8.431 `isdigit`
  - 8.432 `isdigit_l`
  - 8.433 `isfinite`
  - 8.434 `isgraph`
  - 8.435 `isgraph_l`
  - 8.436 `isgreater`
  - 8.437 `isgreaterequal`
  - 8.438 `isinf`
  - 8.439 `isless`
  - 8.440 `islessequal`
  - 8.441 `islessgreater`
  - 8.442 `islower`
  - 8.443 `islower_l`
  - 8.444 `isnan`
  - 8.445 `isnormal`
  - 8.446 `isprint`
  - 8.447 `isprint_l`
  - 8.448 `ispunct`
  - 8.449 `ispunct_l`
  - 8.450 `isspace`
  - 8.451 `isspace_l`
  - 8.452 `isunordered`
  - 8.453 `isupper`
  - 8.454 `isupper_l`
  - 8.455 `iswalnum`
  - 8.456 `iswalnum_l`
  - 8.457 `iswalpha`
  - 8.458 `iswalpha_l`
  - 8.459 `iswblank`
  - 8.460 `iswblank_l`
  - 8.461 `iswcntrl`
  - 8.462 `iswcntrl_l`
  - 8.463 `iswctype`
  - 8.464 `iswctype_l`
  - 8.465 `iswdigit`
  - 8.466 `iswdigit_l`
  - 8.467 `iswgraph`
  - 8.468 `iswgraph_l`
  - 8.469 `iswlower`
  - 8.470 `iswlower_l`
  - 8.471 `iswprint`
  - 8.472 `iswprint_l`
  - 8.473 `iswpunct`
  - 8.474 `iswpunct_l`
  - 8.475 `iswspace`
  - 8.476 `iswspace_l`
  - 8.477 `iswupper`
  - 8.478 `iswupper_l`
  - 8.479 `iswxdigit`
  - 8.480 `iswxdigit_l`
  - 8.481 `isxdigit`
  - 8.482 `isxdigit_l`
  - 8.483 `j0`
  - 8.484 `j1`
  - 8.485 `jn`
  - 8.486 `jrand48`
  - 8.487 `kill`
  - 8.488 `killpg`
  - 8.489 `l64a`
  - 8.490 `labs`
  - 8.491 `lchown`
  - 8.492 `lcong48`
  - 8.493 `ldexp`
  - 8.494 `ldexpf`
  - 8.495 `ldexpl`
  - 8.496 `ldiv`
  - 8.497 `lfind`
  - 8.498 `lgamma`
  - 8.499 `lgammaf`
  - 8.500 `lgammal`
  - 8.501 `link`
  - 8.502 `linkat`
  - 8.503 `lio_listio`
  - 8.504 `listen`
  - 8.505 `llabs`
  - 8.506 `lldiv`
  - 8.507 `llrint`
  - 8.508 `llrintf`
  - 8.509 `llrintl`
  - 8.510 `llround`
  - 8.511 `llroundf`
  - 8.512 `llroundl`
  - 8.513 `localeconv`
  - 8.514 `localtime`
  - 8.515 `localtime_r`
  - 8.516 `lockf`
  - 8.517 `log`
  - 8.518 `log10`
  - 8.519 `log10f`
  - 8.520 `log10l`
  - 8.521 `log1p`
  - 8.522 `log1pf`
  - 8.523 `log1pl`
  - 8.524 `log2`
  - 8.525 `log2f`
  - 8.526 `log2l`
  - 8.527 `logb`
  - 8.528 `logbf`
  - 8.529 `logbl`
  - 8.530 `logf`
  - 8.531 `logl`
  - 8.532 `longjmp`
  - 8.533 `lrand48`
  - 8.534 `lrint`
  - 8.535 `lrintf`
  - 8.536 `lrintl`
  - 8.537 `lround`
  - 8.538 `lroundf`
  - 8.539 `lroundl`
  - 8.540 `lsearch`
  - 8.541 `lseek`
  - 8.542 `lstat`
  - 8.543 `malloc`
  - 8.544 `mblen`
  - 8.545 `mbrlen`
  - 8.546 `mbrtoc16`
  - 8.547 `mbrtoc32`
  - 8.548 `mbrtowc`
  - 8.549 `mbsinit`
  - 8.550 `mbsnrtowcs`
  - 8.551 `mbsrtowcs`
  - 8.552 `mbstowcs`
  - 8.553 `mbtowc`
  - 8.554 `memccpy`
  - 8.555 `memchr`
  - 8.556 `memcmp`
  - 8.557 `memcpy`
  - 8.558 `memmove`
  - 8.559 `memset`
  - 8.560 `mkdir`
  - 8.561 `mkdirat`
  - 8.562 `mkdtemp`
  - 8.563 `mkfifo`
  - 8.564 `mkfifoat`
  - 8.565 `mknod`
  - 8.566 `mknodat`
  - 8.567 `mkstemp`
  - 8.568 `mktime`
  - 8.569 `mlock`
  - 8.570 `mlockall`
  - 8.571 `mmap`
  - 8.572 `modf`
  - 8.573 `modff`
  - 8.574 `modfl`
  - 8.575 `mprotect`
  - 8.576 `mq_close`
  - 8.577 `mq_getattr`
  - 8.578 `mq_notify`
  - 8.579 `mq_open`
  - 8.580 `mq_receive`
  - 8.581 `mq_send`
  - 8.582 `mq_setattr`
  - 8.583 `mq_timedreceive`
  - 8.584 `mq_timedsend`
  - 8.585 `mq_unlink`
  - 8.586 `mrand48`
  - 8.587 `msgctl`
  - 8.588 `msgget`
  - 8.589 `msgrcv`
  - 8.590 `msgsnd`
  - 8.591 `msync`
  - 8.592 `munlock`
  - 8.593 `munlockall`
  - 8.594 `munmap`
  - 8.595 `nan`
  - 8.596 `nanf`
  - 8.597 `nanl`
  - 8.598 `nanosleep`
  - 8.599 `nearbyint`
  - 8.600 `nearbyintf`
  - 8.601 `nearbyintl`
  - 8.602 `newlocale`
  - 8.603 `nextafter`
  - 8.604 `nextafterf`
  - 8.605 `nextafterl`
  - 8.606 `nexttoward`
  - 8.607 `nexttowardf`
  - 8.608 `nexttowardl`
  - 8.609 `nftw`
  - 8.610 `nice`
  - 8.611 `nl_langinfo`
  - 8.612 `nl_langinfo_l`
  - 8.613 `nrand48`
  - 8.614 `ntohl`
  - 8.615 `ntohs`
  - 8.616 `open`
  - 8.617 `openat`
  - 8.618 `opendir`
  - 8.619 `openlog`
  - 8.620 `open_memstream`
  - 8.621 `open_wmemstream`
  - 8.622 `optarg`
  - 8.623 `opterr`
  - 8.624 `optind`
  - 8.625 `optopt`
  - 8.626 `pathconf`
  - 8.627 `pause`
  - 8.628 `pclose`
  - 8.629 `perror`
  - 8.630 `pipe`
  - 8.631 `poll`
  - 8.632 `popen`
  - 8.633 `posix_fadvise`
  - 8.634 `posix_fallocate`
  - 8.635 `posix_madvise`
  - 8.636 `posix_mem_offset`
  - 8.637 `posix_memalign`
  - 8.638 `posix_openpt`
  - 8.639 `posix_spawn`
  - 8.640 `posix_spawn_file_actions_addclose`
  - 8.641 `posix_spawn_file_actions_adddup2`
  - 8.642 `posix_spawn_file_actions_addopen`
  - 8.643 `posix_spawn_file_actions_destroy`
  - 8.644 `posix_spawn_file_actions_init`
  - 8.645 `posix_spawnattr_destroy`
  - 8.646 `posix_spawnattr_getflags`
  - 8.647 `posix_spawnattr_getpgroup`
  - 8.648 `posix_spawnattr_getschedparam`
  - 8.649 `posix_spawnattr_getschedpolicy`
  - 8.650 `posix_spawnattr_getsigdefault`
  - 8.651 `posix_spawnattr_getsigmask`
  - 8.652 `posix_spawnattr_init`
  - 8.653 `posix_spawnattr_setflags`
  - 8.654 `posix_spawnattr_setpgroup`
  - 8.655 `posix_spawnattr_setschedparam`
  - 8.656 `posix_spawnattr_setschedpolicy`
  - 8.657 `posix_spawnattr_setsigdefault`
  - 8.658 `posix_spawnattr_setsigmask`
  - 8.659 `posix_spawnp`
  - 8.660 `posix_trace_attr_destroy`
  - 8.661 `posix_trace_attr_getclockres`
  - 8.662 `posix_trace_attr_getcreatetime`
  - 8.663 `posix_trace_attr_getgenversion`
  - 8.664 `posix_trace_attr_getinherited`
  - 8.665 `posix_trace_attr_getlogfullpolicy`
  - 8.666 `posix_trace_attr_getlogsize`
  - 8.667 `posix_trace_attr_getmaxdatasize`
  - 8.668 `posix_trace_attr_getmaxsystemeventsize`
  - 8.669 `posix_trace_attr_getmaxusereventsize`
  - 8.670 `posix_trace_attr_getname`
  - 8.671 `posix_trace_attr_getstreamfullpolicy`
  - 8.672 `posix_trace_attr_getstreamsize`
  - 8.673 `posix_trace_attr_init`
  - 8.674 `posix_trace_attr_setinherited`
  - 8.675 `posix_trace_attr_setlogfullpolicy`
  - 8.676 `posix_trace_attr_setlogsize`
  - 8.677 `posix_trace_attr_setmaxdatasize`
  - 8.678 `posix_trace_attr_setname`
  - 8.679 `posix_trace_attr_setstreamfullpolicy`
  - 8.680 `posix_trace_attr_setstreamsize`
  - 8.681 `posix_trace_clear`
  - 8.682 `posix_trace_close`
  - 8.683 `posix_trace_create`
  - 8.684 `posix_trace_create_withlog`
  - 8.685 `posix_trace_event`
  - 8.686 `posix_trace_eventid_equal`
  - 8.687 `posix_trace_eventid_get_name`
  - 8.688 `posix_trace_eventid_open`
  - 8.689 `posix_trace_eventset_add`
  - 8.690 `posix_trace_eventset_del`
  - 8.691 `posix_trace_eventset_empty`
  - 8.692 `posix_trace_eventset_fill`
  - 8.693 `posix_trace_eventset_ismember`
  - 8.694 `posix_trace_eventtypelist_getnext_id`
  - 8.695 `posix_trace_eventtypelist_rewind`
  - 8.696 `posix_trace_flush`
  - 8.697 `posix_trace_get_attr`
  - 8.698 `posix_trace_get_filter`
  - 8.699 `posix_trace_get_status`
  - 8.700 `posix_trace_getnext_event`
  - 8.701 `posix_trace_open`
  - 8.702 `posix_trace_rewind`
  - 8.703 `posix_trace_set_filter`
  - 8.704 `posix_trace_shutdown`
  - 8.705 `posix_trace_start`
  - 8.706 `posix_trace_stop`
  - 8.707 `posix_trace_timedgetnext_event`
  - 8.708 `posix_trace_trid_eventid_open`
  - 8.709 `posix_trace_trygetnext_event`
  - 8.710 `posix_typed_mem_get_info`
  - 8.711 `posix_typed_mem_open`
  - 8.712 `pow`
  - 8.713 `powf`
  - 8.714 `powl`
  - 8.715 `pread`
  - 8.716 `printf`
  - 8.717 `pselect`
  - 8.718 `psiginfo`
  - 8.719 `psignal`
  - 8.720 `pthread_atfork`
  - 8.721 `pthread_attr_destroy`
  - 8.722 `pthread_attr_getdetachstate`
  - 8.723 `pthread_attr_getguardsize`
  - 8.724 `pthread_attr_getinheritsched`
  - 8.725 `pthread_attr_getschedparam`
  - 8.726 `pthread_attr_getschedpolicy`
  - 8.727 `pthread_attr_getscope`
  - 8.728 `pthread_attr_getstack`
  - 8.729 `pthread_attr_getstacksize`
  - 8.730 `pthread_attr_init`
  - 8.731 `pthread_attr_setdetachstate`
  - 8.732 `pthread_attr_setguardsize`
  - 8.733 `pthread_attr_setinheritsched`
  - 8.734 `pthread_attr_setschedparam`
  - 8.735 `pthread_attr_setschedpolicy`
  - 8.736 `pthread_attr_setscope`
  - 8.737 `pthread_attr_setstack`
  - 8.738 `pthread_attr_setstacksize`
  - 8.739 `pthread_barrier_destroy`
  - 8.740 `pthread_barrier_init`
  - 8.741 `pthread_barrier_wait`
  - 8.742 `pthread_barrierattr_destroy`
  - 8.743 `pthread_barrierattr_getpshared`
  - 8.744 `pthread_barrierattr_init`
  - 8.745 `pthread_barrierattr_setpshared`
  - 8.746 `pthread_cancel`
  - 8.747 `pthread_cleanup_pop`
  - 8.748 `pthread_cleanup_push`
  - 8.749 `pthread_cond_broadcast`
  - 8.750 `pthread_cond_destroy`
  - 8.751 `pthread_cond_init`
  - 8.752 `pthread_cond_signal`
  - 8.753 `pthread_cond_timedwait`
  - 8.754 `pthread_cond_wait`
  - 8.755 `pthread_condattr_destroy`
  - 8.756 `pthread_condattr_getclock`
  - 8.757 `pthread_condattr_getpshared`
  - 8.758 `pthread_condattr_init`
  - 8.759 `pthread_condattr_setclock`
  - 8.760 `pthread_condattr_setpshared`
  - 8.761 `pthread_create`
  - 8.762 `pthread_detach`
  - 8.763 `pthread_equal`
  - 8.764 `pthread_exit`
  - 8.765 `pthread_getconcurrency`
  - 8.766 `pthread_getcpuclockid`
  - 8.767 `pthread_getschedparam`
  - 8.768 `pthread_getspecific`
  - 8.769 `pthread_join`
  - 8.770 `pthread_key_create`
  - 8.771 `pthread_key_delete`
  - 8.772 `pthread_kill`
  - 8.773 `pthread_mutex_consistent`
  - 8.774 `pthread_mutex_destroy`
  - 8.775 `pthread_mutex_getprioceiling`
  - 8.776 `pthread_mutex_init`
  - 8.777 `pthread_mutex_lock`
  - 8.778 `pthread_mutex_setprioceiling`
  - 8.779 `pthread_mutex_timedlock`
  - 8.780 `pthread_mutex_trylock`
  - 8.781 `pthread_mutex_unlock`
  - 8.782 `pthread_mutexattr_destroy`
  - 8.783 `pthread_mutexattr_getprioceiling`
  - 8.784 `pthread_mutexattr_getprotocol`
  - 8.785 `pthread_mutexattr_getpshared`
  - 8.786 `pthread_mutexattr_getrobust`
  - 8.787 `pthread_mutexattr_gettype`
  - 8.788 `pthread_mutexattr_init`
  - 8.789 `pthread_mutexattr_setprioceiling`
  - 8.790 `pthread_mutexattr_setprotocol`
  - 8.791 `pthread_mutexattr_setpshared`
  - 8.792 `pthread_mutexattr_setrobust`
  - 8.793 `pthread_mutexattr_settype`
  - 8.794 `pthread_once`
  - 8.795 `pthread_rwlock_destroy`
  - 8.796 `pthread_rwlock_init`
  - 8.797 `pthread_rwlock_rdlock`
  - 8.798 `pthread_rwlock_timedrdlock`
  - 8.799 `pthread_rwlock_timedwrlock`
  - 8.800 `pthread_rwlock_tryrdlock`
  - 8.801 `pthread_rwlock_trywrlock`
  - 8.802 `pthread_rwlock_unlock`
  - 8.803 `pthread_rwlock_wrlock`
  - 8.804 `pthread_rwlockattr_destroy`
  - 8.805 `pthread_rwlockattr_getpshared`
  - 8.806 `pthread_rwlockattr_init`
  - 8.807 `pthread_rwlockattr_setpshared`
  - 8.808 `pthread_self`
  - 8.809 `pthread_setcancelstate`
  - 8.810 `pthread_setcanceltype`
  - 8.811 `pthread_setconcurrency`
  - 8.812 `pthread_setschedparam`
  - 8.813 `pthread_setschedprio`
  - 8.814 `pthread_setspecific`
  - 8.815 `pthread_sigmask`
  - 8.816 `pthread_spin_destroy`
  - 8.817 `pthread_spin_init`
  - 8.818 `pthread_spin_lock`
  - 8.819 `pthread_spin_trylock`
  - 8.820 `pthread_spin_unlock`
  - 8.821 `pthread_testcancel`
  - 8.822 `ptsname`
  - 8.823 `putc`
  - 8.824 `putc_unlocked`
  - 8.825 `putchar`
  - 8.826 `putchar_unlocked`
  - 8.827 `putenv`
  - 8.828 `putmsg`
  - 8.829 `putpmsg`
  - 8.830 `puts`
  - 8.831 `pututxline`
  - 8.832 `putwc`
  - 8.833 `putwchar`
  - 8.834 `pwrite`
  - 8.835 `qsort`
  - 8.836 `quick_exit`
  - 8.837 `raise`
  - 8.838 `rand`
  - 8.839 `rand_r`
  - 8.840 `random`
  - 8.841 `read`
  - 8.842 `readdir`
  - 8.843 `readdir_r`
  - 8.844 `readlink`
  - 8.845 `readlinkat`
  - 8.846 `readv`
  - 8.847 `realloc`
  - 8.848 `realpath`
  - 8.849 `recv`
  - 8.850 `recvfrom`
  - 8.851 `recvmsg`
  - 8.852 `regcomp`
  - 8.853 `regerror`
  - 8.854 `regexec`
  - 8.855 `regfree`
  - 8.856 `remainder`
  - 8.857 `remainderf`
  - 8.858 `remainderl`
  - 8.859 `remove`
  - 8.860 `remque`
  - 8.861 `remquo`
  - 8.862 `remquof`
  - 8.863 `remquol`
  - 8.864 `rename`
  - 8.865 `renameat`
  - 8.866 `rewind`
  - 8.867 `rewinddir`
  - 8.868 `rint`
  - 8.869 `rintf`
  - 8.870 `rintl`
  - 8.871 `rmdir`
  - 8.872 `round`
  - 8.873 `roundf`
  - 8.874 `roundl`
  - 8.875 `scalbln`
  - 8.876 `scalblnf`
  - 8.877 `scalblnl`
  - 8.878 `scalbn`
  - 8.879 `scalbnf`
  - 8.880 `scalbnl`
  - 8.881 `scandir`
  - 8.882 `scanf`
  - 8.883 `sched_get_priority_max`
  - 8.884 `sched_get_priority_min`
  - 8.885 `sched_getparam`
  - 8.886 `sched_getscheduler`
  - 8.887 `sched_rr_get_interval`
  - 8.888 `sched_setparam`
  - 8.889 `sched_setscheduler`
  - 8.890 `sched_yield`
  - 8.891 `seed48`
  - 8.892 `seekdir`
  - 8.893 `select`
  - 8.894 `sem_close`
  - 8.895 `sem_destroy`
  - 8.896 `sem_getvalue`
  - 8.897 `sem_init`
  - 8.898 `sem_open`
  - 8.899 `sem_post`
  - 8.900 `sem_timedwait`
  - 8.901 `sem_trywait`
  - 8.902 `sem_unlink`
  - 8.903 `sem_wait`
  - 8.904 `semctl`
  - 8.905 `semget`
  - 8.906 `semop`
  - 8.907 `send`
  - 8.908 `sendmsg`
  - 8.909 `sendto`
  - 8.910 `setbuf`
  - 8.911 `setegid`
  - 8.912 `setenv`
  - 8.913 `seteuid`
  - 8.914 `setgid`
  - 8.915 `setgrent`
  - 8.916 `sethostent`
  - 8.917 `setitimer`
  - 8.918 `setjmp`
  - 8.919 `setkey`
  - 8.920 `setlocale`
  - 8.921 `setlogmask`
  - 8.922 `setnetent`
  - 8.923 `setpgid`
  - 8.924 `setpgrp`
  - 8.925 `setpriority`
  - 8.926 `setprotoent`
  - 8.927 `setpwent`
  - 8.928 `setregid`
  - 8.929 `setreuid`
  - 8.930 `setrlimit`
  - 8.931 `setservent`
  - 8.932 `setsid`
  - 8.933 `setsockopt`
  - 8.934 `setstate`
  - 8.935 `setuid`
  - 8.936 `setutxent`
  - 8.937 `setvbuf`
  - 8.938 `shm_open`
  - 8.939 `shm_unlink`
  - 8.940 `shmat`
  - 8.941 `shmctl`
  - 8.942 `shmdt`
  - 8.943 `shmget`
  - 8.944 `shutdown`
  - 8.945 `sigaction`
  - 8.946 `sigaddset`
  - 8.947 `sigaltstack`
  - 8.948 `sigdelset`
  - 8.949 `sigemptyset`
  - 8.950 `sigfillset`
  - 8.951 `sighold`
  - 8.952 `sigignore`
  - 8.953 `siginterrupt`
  - 8.954 `sigismember`
  - 8.955 `siglongjmp`
  - 8.956 `signal`
  - 8.957 `signbit`
  - 8.958 `signgam`
  - 8.959 `sigpause`
  - 8.960 `sigpending`
  - 8.961 `sigprocmask`
  - 8.962 `sigqueue`
  - 8.963 `sigrelse`
  - 8.964 `sigset`
  - 8.965 `sigsetjmp`
  - 8.966 `sigsuspend`
  - 8.967 `sigtimedwait`
  - 8.968 `sigwait`
  - 8.969 `sigwaitinfo`
  - 8.970 `sin`
  - 8.971 `sinf`
  - 8.972 `sinh`
  - 8.973 `sinhf`
  - 8.974 `sinhl`
  - 8.975 `sinl`
  - 8.976 `sleep`
  - 8.977 `snprintf`
  - 8.978 `sockatmark`
  - 8.979 `socket`
  - 8.980 `socketpair`
  - 8.981 `sprintf`
  - 8.982 `sqrt`
  - 8.983 `sqrtf`
  - 8.984 `sqrtl`
  - 8.985 `srand`
  - 8.986 `srand48`
  - 8.987 `srandom`
  - 8.988 `sscanf`
  - 8.989 `stat`
  - 8.990 `statvfs`
  - 8.991 `stderr`
  - 8.992 `stdin`
  - 8.993 `stdout`
  - 8.994 `stpcpy`
  - 8.995 `stpncpy`
  - 8.996 `strcasecmp`
  - 8.997 `strcasecmp_l`
  - 8.998 `strcat`
  - 8.999 `strchr`
  - 8.1000 `strcmp`
  - 8.1001 `strcoll`
  - 8.1002 `strcoll_l`
  - 8.1003 `strcpy`
  - 8.1004 `strcspn`
  - 8.1005 `strdup`
  - 8.1006 `strerror`
  - 8.1007 `strerror_l`
  - 8.1008 `strerror_r`
  - 8.1009 `strfmon`
  - 8.1010 `strfmon_l`
  - 8.1011 `strftime`
  - 8.1012 `strftime_l`
  - 8.1013 `strlen`
  - 8.1014 `strncasecmp`
  - 8.1015 `strncasecmp_l`
  - 8.1016 `strncat`
  - 8.1017 `strncmp`
  - 8.1018 `strncpy`
  - 8.1019 `strndup`
  - 8.1020 `strnlen`
  - 8.1021 `strpbrk`
  - 8.1022 `strptime`
  - 8.1023 `strrchr`
  - 8.1024 `strsignal`
  - 8.1025 `strspn`
  - 8.1026 `strstr`
  - 8.1027 `strtod`
  - 8.1028 `strtof`
  - 8.1029 `strtoimax`
  - 8.1030 `strtok`
  - 8.1031 `strtok_r`
  - 8.1032 `strtol`
  - 8.1033 `strtold`
  - 8.1034 `strtoll`
  - 8.1035 `strtoul`
  - 8.1036 `strtoull`
  - 8.1037 `strtoumax`
  - 8.1038 `strxfrm`
  - 8.1039 `strxfrm_l`
  - 8.1040 `swab`
  - 8.1041 `swprintf`
  - 8.1042 `swscanf`
  - 8.1043 `symlink`
  - 8.1044 `symlinkat`
  - 8.1045 `sync`
  - 8.1046 `sysconf`
  - 8.1047 `syslog`
  - 8.1048 `system`
  - 8.1049 `tan`
  - 8.1050 `tanf`
  - 8.1051 `tanh`
  - 8.1052 `tanhf`
  - 8.1053 `tanhl`
  - 8.1054 `tanl`
  - 8.1055 `tcdrain`
  - 8.1056 `tcflow`
  - 8.1057 `tcflush`
  - 8.1058 `tcgetattr`
  - 8.1059 `tcgetpgrp`
  - 8.1060 `tcgetsid`
  - 8.1061 `tcsendbreak`
  - 8.1062 `tcsetattr`
  - 8.1063 `tcsetpgrp`
  - 8.1064 `tdelete`
  - 8.1065 `telldir`
  - 8.1066 `tempnam`
  - 8.1067 `tfind`
  - 8.1068 `tgamma`
  - 8.1069 `tgammaf`
  - 8.1070 `tgammal`
  - 8.1071 `time`
  - 8.1072 `timer_create`
  - 8.1073 `timer_delete`
  - 8.1074 `timer_getoverrun`
  - 8.1075 `timer_gettime`
  - 8.1076 `timer_settime`
  - 8.1077 `times`
  - 8.1078 `timezone`
  - 8.1079 `tmpfile`
  - 8.1080 `tmpnam`
  - 8.1081 `toascii`
  - 8.1082 `tolower`
  - 8.1083 `tolower_l`
  - 8.1084 `toupper`
  - 8.1085 `toupper_l`
  - 8.1086 `towctrans`
  - 8.1087 `towctrans_l`
  - 8.1088 `towlower`
  - 8.1089 `towlower_l`
  - 8.1090 `towupper`
  - 8.1091 `towupper_l`
  - 8.1092 `trunc`
  - 8.1093 `truncate`
  - 8.1094 `truncf`
  - 8.1095 `truncl`
  - 8.1096 `tsearch`
  - 8.1097 `ttyname`
  - 8.1098 `ttyname_r`
  - 8.1099 `twalk`
  - 8.1100 `tzname`
  - 8.1101 `tzset`
  - 8.1102 `ulimit`
  - 8.1103 `umask`
  - 8.1104 `uname`
  - 8.1105 `ungetc`
  - 8.1106 `ungetwc`
  - 8.1107 `unlink`
  - 8.1108 `unlinkat`
  - 8.1109 `unlockpt`
  - 8.1110 `unsetenv`
  - 8.1111 `uselocale`
  - 8.1112 `utime`
  - 8.1113 `utimensat`
  - 8.1114 `utimes`
  - 8.1115 `va_arg`
  - 8.1116 `va_copy`
  - 8.1117 `va_end`
  - 8.1118 `va_start`
  - 8.1119 `vdprintf`
  - 8.1120 `vfprintf`
  - 8.1121 `vfscanf`
  - 8.1122 `vfwprintf`
  - 8.1123 `vfwscanf`
  - 8.1124 `vprintf`
  - 8.1125 `vscanf`
  - 8.1126 `vsnprintf`
  - 8.1127 `vsprintf`
  - 8.1128 `vsscanf`
  - 8.1129 `vswprintf`
  - 8.1130 `vswscanf`
  - 8.1131 `vwprintf`
  - 8.1132 `vwscanf`
  - 8.1133 `wait`
  - 8.1134 `waitid`
  - 8.1135 `waitpid`
  - 8.1136 `wcpcpy`
  - 8.1137 `wcpncpy`
  - 8.1138 `wcrtomb`
  - 8.1139 `wcscasecmp`
  - 8.1140 `wcscasecmp_l`
  - 8.1141 `wcscat`
  - 8.1142 `wcschr`
  - 8.1143 `wcscmp`
  - 8.1144 `wcscoll`
  - 8.1145 `wcscoll_l`
  - 8.1146 `wcscpy`
  - 8.1147 `wcscspn`
  - 8.1148 `wcsdup`
  - 8.1149 `wcsftime`
  - 8.1150 `wcslen`
  - 8.1151 `wcsncasecmp`
  - 8.1152 `wcsncasecmp_l`
  - 8.1153 `wcsncat`
  - 8.1154 `wcsncmp`
  - 8.1155 `wcsncpy`
  - 8.1156 `wcsnlen`
  - 8.1157 `wcsnrtombs`
  - 8.1158 `wcspbrk`
  - 8.1159 `wcsrchr`
  - 8.1160 `wcsrtombs`
  - 8.1161 `wcsspn`
  - 8.1162 `wcsstr`
  - 8.1163 `wcstod`
  - 8.1164 `wcstof`
  - 8.1165 `wcstoimax`
  - 8.1166 `wcstok`
  - 8.1167 `wcstol`
  - 8.1168 `wcstold`
  - 8.1169 `wcstoll`
  - 8.1170 `wcstombs`
  - 8.1171 `wcstoul`
  - 8.1172 `wcstoull`
  - 8.1173 `wcstoumax`
  - 8.1174 `wcswidth`
  - 8.1175 `wcsxfrm`
  - 8.1176 `wcsxfrm_l`
  - 8.1177 `wctob`
  - 8.1178 `wctomb`
  - 8.1179 `wctrans`
  - 8.1180 `wctrans_l`
  - 8.1181 `wctype`
  - 8.1182 `wctype_l`
  - 8.1183 `wcwidth`
  - 8.1184 `wmemchr`
  - 8.1185 `wmemcmp`
  - 8.1186 `wmemcpy`
  - 8.1187 `wmemmove`
  - 8.1188 `wmemset`
  - 8.1189 `wordexp`
  - 8.1190 `wordfree`
  - 8.1191 `wprintf`
  - 8.1192 `write`
  - 8.1193 `writev`
  - 8.1194 `wscanf`
  - 8.1195 `y0`
  - 8.1196 `y1`
  - 8.1197 `yn`
- 9 Past POSIX Function Substitutes
  - 9.1 `bcmp`
  - 9.2 `bcopy`
  - 9.3 `bsd_signal`
  - 9.4 `bzero`
  - 9.5 `ecvt`
  - 9.6 `fcvt`
  - 9.7 `ftime`
  - 9.8 `gcvt`
  - 9.9 `getcontext`
  - 9.10 `gethostbyaddr`
  - 9.11 `gethostbyname`
  - 9.12 `getwd`
  - 9.13 `h_errno`
  - 9.14 `index`
  - 9.15 `makecontext`
  - 9.16 `mktemp`
  - 9.17 `pthread_attr_getstackaddr`
  - 9.18 `pthread_attr_setstackaddr`
  - 9.19 `rindex`
  - 9.20 `scalb`
  - 9.21 `setcontext`
  - 9.22 `swapcontext`
  - 9.23 `ualarm`
  - 9.24 `usleep`
  - 9.25 `vfork`
  - 9.26 `wcswcs`
- 10 Glibc Header File Substitutes
  - 10.1 `a.out.h`
  - 10.2 `aliases.h`
  - 10.3 `alloca.h`
  - 10.4 `ar.h`
  - 10.5 `argp.h`
  - 10.6 `argz.h`
  - 10.7 `byteswap.h`
  - 10.8 `crypt.h`
  - 10.9 `endian.h`
  - 10.10 `envz.h`
  - 10.11 `err.h`
  - 10.12 `error.h`
  - 10.13 `execinfo.h`
  - 10.14 `fpu_control.h`
  - 10.15 `fstab.h`
  - 10.16 `fts.h`
  - 10.17 `getopt.h`
  - 10.18 `gshadow.h`
  - 10.19 `ieee754.h`
  - 10.20 `ifaddrs.h`
  - 10.21 `libintl.h`
  - 10.22 `mcheck.h`
  - 10.23 `mntent.h`
  - 10.24 `obstack.h`
  - 10.25 `paths.h`
  - 10.26 `printf.h`
  - 10.27 `pty.h`
  - 10.28 `resolv.h`
  - 10.29 `shadow.h`
  - 10.30 `sys/ioctl.h`
  - 10.31 `sysexits.h`
  - 10.32 `ttyent.h`
- 11 Glibc Function Substitutes
  - 11.1 Glibc Extensions to `<aio.h>`
    - 11.1.1 `aio_init`
  - 11.2 Glibc `<aliases.h>`
    - 11.2.1 `endaliasent`
    - 11.2.2 `getaliasbyname`
    - 11.2.3 `getaliasbyname_r`
    - 11.2.4 `getaliasent`
    - 11.2.5 `getaliasent_r`
    - 11.2.6 `setaliasent`
  - 11.3 Glibc `<argp.h>`
    - 11.3.1 `argp_err_exit_status`
    - 11.3.2 `argp_error`
    - 11.3.3 `argp_failure`
    - 11.3.4 `argp_help`
    - 11.3.5 `argp_parse`
    - 11.3.6 `argp_program_bug_address`
    - 11.3.7 `argp_program_version`
    - 11.3.8 `argp_program_version_hook`
    - 11.3.9 `argp_state_help`
    - 11.3.10 `argp_usage`
  - 11.4 Glibc `<argz.h>`
    - 11.4.1 `argz_add`
    - 11.4.2 `argz_add_sep`
    - 11.4.3 `argz_append`
    - 11.4.4 `argz_count`
    - 11.4.5 `argz_create`
    - 11.4.6 `argz_create_sep`
    - 11.4.7 `argz_delete`
    - 11.4.8 `argz_extract`
    - 11.4.9 `argz_insert`
    - 11.4.10 `argz_next`
    - 11.4.11 `argz_replace`
    - 11.4.12 `argz_stringify`
  - 11.5 Glibc Extensions to `<arpa/inet.h>`
    - 11.5.1 `inet_aton`
    - 11.5.2 `inet_lnaof`
    - 11.5.3 `inet_makeaddr`
    - 11.5.4 `inet_net_ntop`
    - 11.5.5 `inet_net_pton`
    - 11.5.6 `inet_neta`
    - 11.5.7 `inet_netof`
    - 11.5.8 `inet_network`
    - 11.5.9 `inet_nsap_addr`
    - 11.5.10 `inet_nsap_ntoa`
  - 11.6 Glibc `<byteswap.h>`
    - 11.6.1 `bswap_16`
    - 11.6.2 `bswap_32`
    - 11.6.3 `bswap_64`
  - 11.7 Glibc Extensions to `<complex.h>`
    - 11.7.1 `clog10`
    - 11.7.2 `clog10f`
    - 11.7.3 `clog10l`
  - 11.8 Glibc `<crypt.h>`
    - 11.8.1 `crypt_r`
    - 11.8.2 `encrypt_r`
    - 11.8.3 `setkey_r`
  - 11.9 Glibc Extensions to `<ctype.h>`
    - 11.9.1 `isctype`
  - 11.10 Glibc Extensions to `<dirent.h>`
    - 11.10.1 `getdirentries`
    - 11.10.2 `scandirat`
    - 11.10.3 `versionsort`
  - 11.11 Glibc Extensions to `<dlfcn.h>`
    - 11.11.1 `dladdr`
    - 11.11.2 `dladdr1`
    - 11.11.3 `dlinfo`
    - 11.11.4 `dlmopen`
    - 11.11.5 `dlvsym`
  - 11.12 Glibc `<envz.h>`
    - 11.12.1 `envz_add`
    - 11.12.2 `envz_entry`
    - 11.12.3 `envz_get`
    - 11.12.4 `envz_merge`
    - 11.12.5 `envz_remove`
    - 11.12.6 `envz_strip`
  - 11.13 Glibc `<err.h>`
    - 11.13.1 `err`
    - 11.13.2 `errx`
    - 11.13.3 `verr`
    - 11.13.4 `verrx`
    - 11.13.5 `vwarn`
    - 11.13.6 `vwarnx`
    - 11.13.7 `warn`
    - 11.13.8 `warnx`
  - 11.14 Glibc Extensions to `<errno.h>`
    - 11.14.1 `program_invocation_name`
    - 11.14.2 `program_invocation_short_name`
  - 11.15 Glibc `<error.h>`
    - 11.15.1 `error`
    - 11.15.2 `error_at_line`
    - 11.15.3 `error_message_count`
    - 11.15.4 `error_one_per_line`
    - 11.15.5 `error_print_progname`
  - 11.16 Glibc `<execinfo.h>`
    - 11.16.1 `backtrace`
    - 11.16.2 `backtrace_symbols`
    - 11.16.3 `backtrace_symbols_fd`
  - 11.17 Glibc Extensions to `<fcntl.h>`
    - 11.17.1 `fallocate`
    - 11.17.2 `name_to_handle_at`
    - 11.17.3 `readahead`
    - 11.17.4 `open_by_handle_at`
  - 11.18 Glibc Extensions to `<fenv.h>`
    - 11.18.1 `fedisableexcept`
    - 11.18.2 `feenableexcept`
    - 11.18.3 `fegetexcept`
  - 11.19 Glibc Extensions to `<fmtmsg.h>`
    - 11.19.1 `addseverity`
  - 11.20 Glibc `<fstab.h>`
    - 11.20.1 `endfsent`
    - 11.20.2 `getfsent`
    - 11.20.3 `getfsfile`
    - 11.20.4 `getfsspec`
    - 11.20.5 `setfsent`
  - 11.21 Glibc `<fts.h>`
    - 11.21.1 `fts_children`
    - 11.21.2 `fts_close`
    - 11.21.3 `fts_open`
    - 11.21.4 `fts_read`
    - 11.21.5 `fts_set`
  - 11.22 Glibc `<getopt.h>`
    - 11.22.1 `getopt_long`
    - 11.22.2 `getopt_long_only`
  - 11.23 Glibc Extensions to `<glob.h>`
    - 11.23.1 `glob_pattern_p`
  - 11.24 Glibc Extensions to `<gnu/libc-version.h>`
    - 11.24.1 `gnu_get_libc_release`
    - 11.24.2 `gnu_get_libc_version`
  - 11.25 Glibc Extensions to `<grp.h>`
    - 11.25.1 `fgetgrent`
    - 11.25.2 `fgetgrent_r`
    - 11.25.3 `getgrent_r`
    - 11.25.4 `getgrouplist`
    - 11.25.5 `initgroups`
    - 11.25.6 `putgrent`
    - 11.25.7 `setgroups`
  - 11.26 Glibc `<gshadow.h>`
    - 11.26.1 `endsgent`
    - 11.26.2 `fgetsgent`
    - 11.26.3 `fgetsgent_r`
    - 11.26.4 `getsgent`
    - 11.26.5 `getsgent_r`
    - 11.26.6 `getsgnam`
    - 11.26.7 `getsgnam_r`
    - 11.26.8 `putsgent`
    - 11.26.9 `setsgent`
    - 11.26.10 `sgetsgent`
    - 11.26.11 `sgetsgent_r`
  - 11.27 Glibc `<ifaddrs.h>`
    - 11.27.1 `getifaddrs`
    - 11.27.2 `freeifaddrs`
  - 11.28 Glibc `<libintl.h>`
    - 11.28.1 `bind_textdomain_codeset`
    - 11.28.2 `bindtextdomain`
    - 11.28.3 `dcgettext`
    - 11.28.4 `dcngettext`
    - 11.28.5 `dgettext`
    - 11.28.6 `dngettext`
    - 11.28.7 `gettext`
    - 11.28.8 `ngettext`
    - 11.28.9 `textdomain`
  - 11.29 Glibc `<link.h>`
    - 11.29.1 `dl_iterate_phdr`
  - 11.30 Glibc `<malloc.h>`
    - 11.30.1 `mallinfo`
    - 11.30.2 `malloc_get_state`
    - 11.30.3 `malloc_set_state`
    - 11.30.4 `malloc_info`
    - 11.30.5 `malloc_stats`
    - 11.30.6 `malloc_trim`
    - 11.30.7 `malloc_usable_size`
    - 11.30.8 `mallopt`
    - 11.30.9 `memalign`
    - 11.30.10 `pvalloc`
  - 11.31 Glibc Extensions to `<math.h>`
    - 11.31.1 `drem`
    - 11.31.2 `dremf`
    - 11.31.3 `dreml`
    - 11.31.4 `exp10`
    - 11.31.5 `exp10f`
    - 11.31.6 `exp10l`
    - 11.31.7 `finite`
    - 11.31.8 `finitef`
    - 11.31.9 `finitel`
    - 11.31.10 `gamma`
    - 11.31.11 `gammaf`
    - 11.31.12 `gammal`
    - 11.31.13 `isinff`
    - 11.31.14 `isinfl`
    - 11.31.15 `isnanf`
    - 11.31.16 `isnanl`
    - 11.31.17 `j0f`
    - 11.31.18 `j0l`
    - 11.31.19 `j1f`
    - 11.31.20 `j1l`
    - 11.31.21 `jnf`
    - 11.31.22 `jnl`
    - 11.31.23 `lgamma_r`
    - 11.31.24 `lgammaf_r`
    - 11.31.25 `lgammal_r`
    - 11.31.26 `matherr`
    - 11.31.27 `pow10`
    - 11.31.28 `pow10f`
    - 11.31.29 `pow10l`
    - 11.31.30 `scalbf`
    - 11.31.31 `scalbl`
    - 11.31.32 `significand`
    - 11.31.33 `significandf`
    - 11.31.34 `significandl`
    - 11.31.35 `sincos`
    - 11.31.36 `sincosf`
    - 11.31.37 `sincosl`
    - 11.31.38 `y0f`
    - 11.31.39 `y0l`
    - 11.31.40 `y1f`
    - 11.31.41 `y1l`
    - 11.31.42 `ynf`
    - 11.31.43 `ynl`
  - 11.32 Glibc `<mcheck.h>`
    - 11.32.1 `mcheck`
    - 11.32.2 `mcheck_check_all`
    - 11.32.3 `mcheck_pedantic`
    - 11.32.4 `mprobe`
    - 11.32.5 `mtrace`
    - 11.32.6 `muntrace`
  - 11.33 Glibc `<mntent.h>`
    - 11.33.1 `addmntent`
    - 11.33.2 `endmntent`
    - 11.33.3 `getmntent`
    - 11.33.4 `getmntent_r`
    - 11.33.5 `hasmntopt`
    - 11.33.6 `setmntent`
  - 11.34 Glibc Extensions to `<netdb.h>`
    - 11.34.1 `endnetgrent`
    - 11.34.2 `gethostbyaddr_r`
    - 11.34.3 `gethostbyname2`
    - 11.34.4 `gethostbyname2_r`
    - 11.34.5 `gethostbyname_r`
    - 11.34.6 `gethostent_r`
    - 11.34.7 `getnetbyaddr_r`
    - 11.34.8 `getnetbyname_r`
    - 11.34.9 `getnetent_r`
    - 11.34.10 `getnetgrent`
    - 11.34.11 `getnetgrent_r`
    - 11.34.12 `getprotobyname_r`
    - 11.34.13 `getprotobynumber_r`
    - 11.34.14 `getprotoent_r`
    - 11.34.15 `getservbyname_r`
    - 11.34.16 `getservbyport_r`
    - 11.34.17 `getservent_r`
    - 11.34.18 `herror`
    - 11.34.19 `hstrerror`
    - 11.34.20 `innetgr`
    - 11.34.21 `rcmd`
    - 11.34.22 `rcmd_af`
    - 11.34.23 `rexec`
    - 11.34.24 `rexec_af`
    - 11.34.25 `rresvport`
    - 11.34.26 `rresvport_af`
    - 11.34.27 `ruserok`
    - 11.34.28 `ruserok_af`
    - 11.34.29 `setnetgrent`
  - 11.35 Glibc `<netinet/ether.h>`
    - 11.35.1 `ether_aton`
    - 11.35.2 `ether_aton_r`
    - 11.35.3 `ether_hostton`
    - 11.35.4 `ether_line`
    - 11.35.5 `ether_ntoa`
    - 11.35.6 `ether_ntoa_r`
    - 11.35.7 `ether_ntohost`
  - 11.36 Glibc Extensions to `<netinet/in.h>`
    - 11.36.1 `bindresvport`
    - 11.36.2 `getipv4sourcefilter`
    - 11.36.3 `getsourcefilter`
    - 11.36.4 `in6addr_any`
    - 11.36.5 `in6addr_loopback`
    - 11.36.6 `inet6_option_alloc`
    - 11.36.7 `inet6_option_append`
    - 11.36.8 `inet6_option_find`
    - 11.36.9 `inet6_option_init`
    - 11.36.10 `inet6_option_next`
    - 11.36.11 `inet6_option_space`
    - 11.36.12 `inet6_opt_append`
    - 11.36.13 `inet6_opt_find`
    - 11.36.14 `inet6_opt_finish`
    - 11.36.15 `inet6_opt_get_val`
    - 11.36.16 `inet6_opt_init`
    - 11.36.17 `inet6_opt_next`
    - 11.36.18 `inet6_opt_set_val`
    - 11.36.19 `inet6_rth_add`
    - 11.36.20 `inet6_rth_getaddr`
    - 11.36.21 `inet6_rth_init`
    - 11.36.22 `inet6_rth_reverse`
    - 11.36.23 `inet6_rth_segments`
    - 11.36.24 `inet6_rth_space`
    - 11.36.25 `setipv4sourcefilter`
    - 11.36.26 `setsourcefilter`
  - 11.37 Glibc `<obstack.h>`
    - 11.37.1 `obstack_alloc_failed_handler`
    - 11.37.2 `obstack_exit_failure`
    - 11.37.3 `obstack_free`
    - 11.37.4 `obstack_printf`
    - 11.37.5 `obstack_vprintf`
  - 11.38 Glibc `<printf.h>`
    - 11.38.1 `parse_printf_format`
    - 11.38.2 `printf_size`
    - 11.38.3 `printf_size_info`
    - 11.38.4 `register_printf_function`
    - 11.38.5 `register_printf_modifier`
    - 11.38.6 `register_printf_specifier`
    - 11.38.7 `register_printf_type`
  - 11.39 Glibc Extensions to `<pthread.h>`
    - 11.39.1 `pthread_attr_getaffinity_np`
    - 11.39.2 `pthread_attr_setaffinity_np`
    - 11.39.3 `pthread_getaffinity_np`
    - 11.39.4 `pthread_getattr_np`
    - 11.39.5 `pthread_getname_np`
    - 11.39.6 `pthread_kill_other_threads_np`
    - 11.39.7 `pthread_mutex_consistent_np`
    - 11.39.8 `pthread_mutexattr_getrobust_np`
    - 11.39.9 `pthread_mutexattr_setrobust_np`
    - 11.39.10 `pthread_rwlockattr_getkind_np`
    - 11.39.11 `pthread_rwlockattr_setkind_np`
    - 11.39.12 `pthread_setaffinity_np`
    - 11.39.13 `pthread_setname_np`
    - 11.39.14 `pthread_sigqueue`
    - 11.39.15 `pthread_timedjoin_np`
    - 11.39.16 `pthread_tryjoin_np`
    - 11.39.17 `pthread_yield`
  - 11.40 Glibc `<pty.h>`
    - 11.40.1 `forkpty`
    - 11.40.2 `openpty`
  - 11.41 Glibc Extensions to `<pwd.h>`
    - 11.41.1 `fgetpwent`
    - 11.41.2 `fgetpwent_r`
    - 11.41.3 `getpw`
    - 11.41.4 `getpwent_r`
    - 11.41.5 `putpwent`
  - 11.42 Glibc Extensions to `<regex.h>`
    - 11.42.1 `re_comp`
    - 11.42.2 `re_compile_fastmap`
    - 11.42.3 `re_compile_pattern`
    - 11.42.4 `re_exec`
    - 11.42.5 `re_match`
    - 11.42.6 `re_match_2`
    - 11.42.7 `re_search`
    - 11.42.8 `re_search_2`
    - 11.42.9 `re_set_registers`
    - 11.42.10 `re_set_syntax`
    - 11.42.11 `re_syntax_options`
  - 11.43 Glibc `<regexp.h>`
    - 11.43.1 `advance`
    - 11.43.2 `loc1`
    - 11.43.3 `loc2`
    - 11.43.4 `locs`
    - 11.43.5 `step`
  - 11.44 Glibc `<resolv.h>`
    - 11.44.1 `dn_expand`
    - 11.44.2 `res_init`
    - 11.44.3 `res_mkquery`
    - 11.44.4 `res_query`
    - 11.44.5 `res_querydomain`
    - 11.44.6 `res_search`
  - 11.45 Glibc `<rpc/auth.h>`
    - 11.45.1 `authdes_create`
    - 11.45.2 `authdes_pk_create`
    - 11.45.3 `authnone_create`
    - 11.45.4 `authunix_create`
    - 11.45.5 `authunix_create_default`
    - 11.45.6 `getnetname`
    - 11.45.7 `host2netname`
    - 11.45.8 `key_decryptsession`
    - 11.45.9 `key_decryptsession_pk`
    - 11.45.10 `key_encryptsession`
    - 11.45.11 `key_encryptsession_pk`
    - 11.45.12 `key_gendes`
    - 11.45.13 `key_get_conv`
    - 11.45.14 `key_secretkey_is_set`
    - 11.45.15 `key_setsecret`
    - 11.45.16 `netname2host`
    - 11.45.17 `netname2user`
    - 11.45.18 `user2netname`
    - 11.45.19 `xdr_des_block`
    - 11.45.20 `xdr_opaque_auth`
  - 11.46 Glibc `<rpc/auth_des.h>`
    - 11.46.1 `authdes_getucred`
    - 11.46.2 `getpublickey`
    - 11.46.3 `getsecretkey`
    - 11.46.4 `rtime`
  - 11.47 Glibc `<rpc/auth_unix.h>`
    - 11.47.1 `xdr_authunix_parms`
  - 11.48 Glibc `<rpc/clnt.h>`
    - 11.48.1 `callrpc`
    - 11.48.2 `clnt_create`
    - 11.48.3 `clnt_pcreateerror`
    - 11.48.4 `clnt_perrno`
    - 11.48.5 `clnt_perror`
    - 11.48.6 `clnt_spcreateerror`
    - 11.48.7 `clnt_sperrno`
    - 11.48.8 `clnt_sperror`
    - 11.48.9 `clntraw_create`
    - 11.48.10 `clnttcp_create`
    - 11.48.11 `clntudp_bufcreate`
    - 11.48.12 `clntudp_create`
    - 11.48.13 `clntunix_create`
    - 11.48.14 `get_myaddress`
    - 11.48.15 `getrpcport`
    - 11.48.16 `rpc_createerr`
  - 11.49 Glibc `<rpc/des_crypt.h>`
    - 11.49.1 `cbc_crypt`
    - 11.49.2 `des_setparity`
    - 11.49.3 `ecb_crypt`
  - 11.50 Glibc `<rpc/key_prot.h>`
    - 11.50.1 `xdr_cryptkeyarg`
    - 11.50.2 `xdr_cryptkeyarg2`
    - 11.50.3 `xdr_cryptkeyres`
    - 11.50.4 `xdr_getcredres`
    - 11.50.5 `xdr_key_netstarg`
    - 11.50.6 `xdr_key_netstres`
    - 11.50.7 `xdr_keybuf`
    - 11.50.8 `xdr_keystatus`
    - 11.50.9 `xdr_netnamestr`
    - 11.50.10 `xdr_unixcred`
  - 11.51 Glibc `<rpc/netdb.h>`
    - 11.51.1 `endrpcent`
    - 11.51.2 `getrpcbyname`
    - 11.51.3 `getrpcbyname_r`
    - 11.51.4 `getrpcbynumber`
    - 11.51.5 `getrpcbynumber_r`
    - 11.51.6 `getrpcent`
    - 11.51.7 `getrpcent_r`
    - 11.51.8 `setrpcent`
  - 11.52 Glibc `<rpc/pmap_clnt.h>`
    - 11.52.1 `clnt_broadcast`
    - 11.52.2 `pmap_getmaps`
    - 11.52.3 `pmap_getport`
    - 11.52.4 `pmap_rmtcall`
    - 11.52.5 `pmap_set`
    - 11.52.6 `pmap_unset`
  - 11.53 Glibc `<rpc/pmap_prot.h>`
    - 11.53.1 `xdr_pmap`
    - 11.53.2 `xdr_pmaplist`
  - 11.54 Glibc `<rpc/pmap_rmt.h>`
    - 11.54.1 `xdr_rmtcall_args`
    - 11.54.2 `xdr_rmtcallres`
  - 11.55 Glibc `<rpc/rpc_msg.h>`
    - 11.55.1 `xdr_callhdr`
    - 11.55.2 `xdr_callmsg`
    - 11.55.3 `xdr_replymsg`
  - 11.56 Glibc `<rpc/svc.h>`
    - 11.56.1 `svc_exit`
    - 11.56.2 `svc_fdset`
    - 11.56.3 `svc_getreq`
    - 11.56.4 `svc_getreq_common`
    - 11.56.5 `svc_getreq_poll`
    - 11.56.6 `svc_getreqset`
    - 11.56.7 `svc_max_pollfd`
    - 11.56.8 `svc_pollfd`
    - 11.56.9 `svc_register`
    - 11.56.10 `svc_run`
    - 11.56.11 `svc_sendreply`
    - 11.56.12 `svc_unregister`
    - 11.56.13 `svcerr_auth`
    - 11.56.14 `svcerr_decode`
    - 11.56.15 `svcerr_noproc`
    - 11.56.16 `svcerr_noprog`
    - 11.56.17 `svcerr_progvers`
    - 11.56.18 `svcerr_systemerr`
    - 11.56.19 `svcerr_weakauth`
    - 11.56.20 `svcraw_create`
    - 11.56.21 `svctcp_create`
    - 11.56.22 `svcudp_bufcreate`
    - 11.56.23 `svcudp_create`
    - 11.56.24 `svcunix_create`
    - 11.56.25 `xprt_register`
    - 11.56.26 `xprt_unregister`
  - 11.57 Glibc `<rpc/xdr.h>`
    - 11.57.1 `xdr_array`
    - 11.57.2 `xdr_bool`
    - 11.57.3 `xdr_bytes`
    - 11.57.4 `xdr_char`
    - 11.57.5 `xdr_double`
    - 11.57.6 `xdr_enum`
    - 11.57.7 `xdr_float`
    - 11.57.8 `xdr_free`
    - 11.57.9 `xdr_hyper`
    - 11.57.10 `xdr_int`
    - 11.57.11 `xdr_int16_t`
    - 11.57.12 `xdr_int32_t`
    - 11.57.13 `xdr_int64_t`
    - 11.57.14 `xdr_int8_t`
    - 11.57.15 `xdr_long`
    - 11.57.16 `xdr_longlong_t`
    - 11.57.17 `xdr_netobj`
    - 11.57.18 `xdr_opaque`
    - 11.57.19 `xdr_pointer`
    - 11.57.20 `xdr_quad_t`
    - 11.57.21 `xdr_reference`
    - 11.57.22 `xdr_short`
    - 11.57.23 `xdr_sizeof`
    - 11.57.24 `xdr_string`
    - 11.57.25 `xdr_u_char`
    - 11.57.26 `xdr_u_hyper`
    - 11.57.27 `xdr_u_int`
    - 11.57.28 `xdr_u_long`
    - 11.57.29 `xdr_u_longlong_t`
    - 11.57.30 `xdr_u_quad_t`
    - 11.57.31 `xdr_u_short`
    - 11.57.32 `xdr_uint16_t`
    - 11.57.33 `xdr_uint32_t`
    - 11.57.34 `xdr_uint64_t`
    - 11.57.35 `xdr_uint8_t`
    - 11.57.36 `xdr_union`
    - 11.57.37 `xdr_vector`
    - 11.57.38 `xdr_void`
    - 11.57.39 `xdr_wrapstring`
    - 11.57.40 `xdrmem_create`
    - 11.57.41 `xdrrec_create`
    - 11.57.42 `xdrrec_endofrecord`
    - 11.57.43 `xdrrec_eof`
    - 11.57.44 `xdrrec_skiprecord`
    - 11.57.45 `xdrstdio_create`
  - 11.58 Glibc `<rpcsvc/nislib.h>`
    - 11.58.1 `nis_add`
    - 11.58.2 `nis_add_entry`
    - 11.58.3 `nis_addmember`
    - 11.58.4 `nis_checkpoint`
    - 11.58.5 `nis_clone_object`
    - 11.58.6 `nis_creategroup`
    - 11.58.7 `nis_destroy_object`
    - 11.58.8 `nis_destroygroup`
    - 11.58.9 `nis_dir_cmp`
    - 11.58.10 `nis_domain_of`
    - 11.58.11 `nis_domain_of_r`
    - 11.58.12 `nis_first_entry`
    - 11.58.13 `nis_freenames`
    - 11.58.14 `nis_freeresult`
    - 11.58.15 `nis_freeservlist`
    - 11.58.16 `nis_freetags`
    - 11.58.17 `nis_getnames`
    - 11.58.18 `nis_getservlist`
    - 11.58.19 `nis_ismember`
    - 11.58.20 `nis_leaf_of`
    - 11.58.21 `nis_leaf_of_r`
    - 11.58.22 `nis_lerror`
    - 11.58.23 `nis_list`
    - 11.58.24 `nis_local_directory`
    - 11.58.25 `nis_local_group`
    - 11.58.26 `nis_local_host`
    - 11.58.27 `nis_local_principal`
    - 11.58.28 `nis_lookup`
    - 11.58.29 `nis_mkdir`
    - 11.58.30 `nis_modify`
    - 11.58.31 `nis_modify_entry`
    - 11.58.32 `nis_name_of`
    - 11.58.33 `nis_name_of_r`
    - 11.58.34 `nis_next_entry`
    - 11.58.35 `nis_perror`
    - 11.58.36 `nis_ping`
    - 11.58.37 `nis_print_directory`
    - 11.58.38 `nis_print_entry`
    - 11.58.39 `nis_print_group`
    - 11.58.40 `nis_print_group_entry`
    - 11.58.41 `nis_print_link`
    - 11.58.42 `nis_print_object`
    - 11.58.43 `nis_print_result`
    - 11.58.44 `nis_print_rights`
    - 11.58.45 `nis_print_table`
    - 11.58.46 `nis_remove`
    - 11.58.47 `nis_remove_entry`
    - 11.58.48 `nis_removemember`
    - 11.58.49 `nis_rmdir`
    - 11.58.50 `nis_servstate`
    - 11.58.51 `nis_sperrno`
    - 11.58.52 `nis_sperror`
    - 11.58.53 `nis_sperror_r`
    - 11.58.54 `nis_stats`
    - 11.58.55 `nis_verifygroup`
  - 11.59 Glibc `<rpcsvc/nis_callback.h>`
    - 11.59.1 `xdr_cback_data`
    - 11.59.2 `xdr_obj_p`
  - 11.60 Glibc `<rpcsvc/yp.h>`
    - 11.60.1 `xdr_domainname`
    - 11.60.2 `xdr_keydat`
    - 11.60.3 `xdr_mapname`
    - 11.60.4 `xdr_peername`
    - 11.60.5 `xdr_valdat`
    - 11.60.6 `xdr_ypbind_binding`
    - 11.60.7 `xdr_ypbind_resp`
    - 11.60.8 `xdr_ypbind_resptype`
    - 11.60.9 `xdr_ypbind_setdom`
    - 11.60.10 `xdr_ypmap_parms`
    - 11.60.11 `xdr_ypmaplist`
    - 11.60.12 `xdr_yppush_status`
    - 11.60.13 `xdr_yppushresp_xfr`
    - 11.60.14 `xdr_ypreq_key`
    - 11.60.15 `xdr_ypreq_nokey`
    - 11.60.16 `xdr_ypreq_xfr`
    - 11.60.17 `xdr_ypresp_all`
    - 11.60.18 `xdr_ypresp_key_val`
    - 11.60.19 `xdr_ypresp_maplist`
    - 11.60.20 `xdr_ypresp_master`
    - 11.60.21 `xdr_ypresp_order`
    - 11.60.22 `xdr_ypresp_val`
    - 11.60.23 `xdr_ypresp_xfr`
    - 11.60.24 `xdr_ypstat`
    - 11.60.25 `xdr_ypxfrstat`
  - 11.61 Glibc `<rpcsvc/yp_prot.h>`
    - 11.61.1 `xdr_ypall`
  - 11.62 Glibc `<rpcsvc/ypclnt.h>`
    - 11.62.1 `yp_all`
    - 11.62.2 `yp_bind`
    - 11.62.3 `yp_first`
    - 11.62.4 `yp_get_default_domain`
    - 11.62.5 `yp_master`
    - 11.62.6 `yp_match`
    - 11.62.7 `yp_next`
    - 11.62.8 `yp_order`
    - 11.62.9 `yp_unbind`
    - 11.62.10 `yp_update`
    - 11.62.11 `ypbinderr_string`
    - 11.62.12 `yperr_string`
    - 11.62.13 `ypprot_err`
  - 11.63 Glibc `<rpcsvc/ypupd.h>`
    - 11.63.1 `xdr_yp_buf`
    - 11.63.2 `xdr_ypdelete_args`
    - 11.63.3 `xdr_ypupdate_args`
  - 11.64 Glibc Extensions to `<sched.h>`
    - 11.64.1 `clone`
    - 11.64.2 `sched_getaffinity`
    - 11.64.3 `sched_setaffinity`
    - 11.64.4 `setns`
  - 11.65 Glibc Extensions to `<search.h>`
    - 11.65.1 `hcreate_r`
    - 11.65.2 `hdestroy_r`
    - 11.65.3 `hsearch_r`
    - 11.65.4 `tdestroy`
  - 11.66 Glibc Extensions to `<selinux/selinux.h>`
    - 11.66.1 `fgetfilecon`
    - 11.66.2 `getfilecon`
    - 11.66.3 `lgetfilecon`
  - 11.67 Glibc `<shadow.h>`
    - 11.67.1 `endspent`
    - 11.67.2 `fgetspent`
    - 11.67.3 `fgetspent_r`
    - 11.67.4 `getspent`
    - 11.67.5 `getspent_r`
    - 11.67.6 `getspnam`
    - 11.67.7 `getspnam_r`
    - 11.67.8 `lckpwdf`
    - 11.67.9 `putspent`
    - 11.67.10 `setspent`
    - 11.67.11 `sgetspent`
    - 11.67.12 `sgetspent_r`
    - 11.67.13 `ulckpwdf`
  - 11.68 Glibc Extensions to `<signal.h>`
    - 11.68.1 `gsignal`
    - 11.68.2 `sigandset`
    - 11.68.3 `sigblock`
    - 11.68.4 `siggetmask`
    - 11.68.5 `sigisemptyset`
    - 11.68.6 `sigorset`
    - 11.68.7 `sigreturn`
    - 11.68.8 `sigsetmask`
    - 11.68.9 `sigstack`
    - 11.68.10 `sigvec`
    - 11.68.11 `ssignal`
    - 11.68.12 `sys_siglist`
    - 11.68.13 `sysv_signal`
  - 11.69 Glibc Extensions to `<stdio.h>`
    - 11.69.1 `asprintf`
    - 11.69.2 `cuserid`
    - 11.69.3 `clearerr_unlocked`
    - 11.69.4 `fcloseall`
    - 11.69.5 `feof_unlocked`
    - 11.69.6 `ferror_unlocked`
    - 11.69.7 `fflush_unlocked`
    - 11.69.8 `fgetc_unlocked`
    - 11.69.9 `fgets_unlocked`
    - 11.69.10 `fileno_unlocked`
    - 11.69.11 `fopencookie`
    - 11.69.12 `fputc_unlocked`
    - 11.69.13 `fputs_unlocked`
    - 11.69.14 `fread_unlocked`
    - 11.69.15 `fwrite_unlocked`
    - 11.69.16 `getw`
    - 11.69.17 `putw`
    - 11.69.18 `setbuffer`
    - 11.69.19 `setlinebuf`
    - 11.69.20 `sys_errlist`
    - 11.69.21 `sys_nerr`
    - 11.69.22 `tmpnam_r`
    - 11.69.23 `vasprintf`
  - 11.70 Glibc Extensions to `<stdlib.h>`
    - 11.70.1 `canonicalize_file_name`
    - 11.70.2 `cfree`
    - 11.70.3 `clearenv`
    - 11.70.4 `drand48_r`
    - 11.70.5 `ecvt_r`
    - 11.70.6 `erand48_r`
    - 11.70.7 `fcvt_r`
    - 11.70.8 `getloadavg`
    - 11.70.9 `getpt`
    - 11.70.10 `initstate_r`
    - 11.70.11 `jrand48_r`
    - 11.70.12 `lcong48_r`
    - 11.70.13 `lrand48_r`
    - 11.70.14 `mkostemp`
    - 11.70.15 `mkostemps`
    - 11.70.16 `mrand48_r`
    - 11.70.17 `mkstemps`
    - 11.70.18 `nrand48_r`
    - 11.70.19 `on_exit`
    - 11.70.20 `ptsname_r`
    - 11.70.21 `qecvt`
    - 11.70.22 `qecvt_r`
    - 11.70.23 `qfcvt`
    - 11.70.24 `qfcvt_r`
    - 11.70.25 `qgcvt`
    - 11.70.26 `qsort_r`
    - 11.70.27 `random_r`
    - 11.70.28 `rpmatch`
    - 11.70.29 `seed48_r`
    - 11.70.30 `setstate_r`
    - 11.70.31 `srand48_r`
    - 11.70.32 `srandom_r`
    - 11.70.33 `strtod_l`
    - 11.70.34 `strtof_l`
    - 11.70.35 `strtol_l`
    - 11.70.36 `strtold_l`
    - 11.70.37 `strtoll_l`
    - 11.70.38 `strtoq`
    - 11.70.39 `strtoul_l`
    - 11.70.40 `strtoull_l`
    - 11.70.41 `strtouq`
    - 11.70.42 `valloc`
  - 11.71 Glibc Extensions to `<string.h>`
    - 11.71.1 `ffsl`
    - 11.71.2 `ffsll`
    - 11.71.3 `memfrob`
    - 11.71.4 `memmem`
    - 11.71.5 `mempcpy`
    - 11.71.6 `memrchr`
    - 11.71.7 `rawmemchr`
    - 11.71.8 `strcasestr`
    - 11.71.9 `strchrnul`
    - 11.71.10 `strfry`
    - 11.71.11 `strsep`
    - 11.71.12 `strverscmp`
  - 11.72 Glibc `<sys/capability.h>`
    - 11.72.1 `capget`
    - 11.72.2 `capset`
  - 11.73 Glibc `<sys/epoll.h>`
    - 11.73.1 `epoll_create`
    - 11.73.2 `epoll_ctl`
    - 11.73.3 `epoll_wait`
  - 11.74 Glibc `<sys/fanotify.h>`
    - 11.74.1 `fanotify_init`
    - 11.74.2 `fanotify_mark`
  - 11.75 Glibc `<sys/file.h>`
    - 11.75.1 `flock`
  - 11.76 Glibc `<sys/fsuid.h>`
    - 11.76.1 `setfsgid`
    - 11.76.2 `setfsuid`
  - 11.77 Glibc `<sys/gmon.h>`
    - 11.77.1 `monstartup`
  - 11.78 Glibc `<sys/io.h>`, `<sys/perm.h>`
    - 11.78.1 `ioperm`
    - 11.78.2 `iopl`
  - 11.79 Glibc `<sys/kdaemon.h>`
    - 11.79.1 `bdflush`
  - 11.80 Glibc `<sys/klog.h>`
    - 11.80.1 `klogctl`
  - 11.81 Glibc Extensions to `<sys/mman.h>`
    - 11.81.1 `madvise`
    - 11.81.2 `mincore`
    - 11.81.3 `mremap`
    - 11.81.4 `remap_file_pages`
  - 11.82 Glibc `<sys/mount.h>`
    - 11.82.1 `mount`
    - 11.82.2 `umount`
    - 11.82.3 `umount2`
  - 11.83 Glibc `<sys/personality.h>`
    - 11.83.1 `personality`
  - 11.84 Glibc `<sys/prctl.h>`
    - 11.84.1 `prctl`
  - 11.85 Glibc `<sys/profil.h>`
    - 11.85.1 `sprofil`
  - 11.86 Glibc `<sys/ptrace.h>`
    - 11.86.1 `ptrace`
  - 11.87 Glibc `<sys/quota.h>`
    - 11.87.1 `quotactl`
  - 11.88 Glibc `<sys/reboot.h>`
    - 11.88.1 `reboot`
  - 11.89 Glibc Extensions to `<sys/resource.h>`
    - 11.89.1 `prlimit`
  - 11.90 Glibc Extensions to `<sys/sem.h>`
    - 11.90.1 `semtimedop`
  - 11.91 Glibc `<sys/sendfile.h>`
    - 11.91.1 `sendfile`
  - 11.92 Glibc Extensions to `<sys/socket.h>`
    - 11.92.1 `accept4`
    - 11.92.2 `isfdtype`
    - 11.92.3 `recvmmsg`
    - 11.92.4 `sendmmsg`
  - 11.93 Glibc Extensions to `<sys/stat.h>`
    - 11.93.1 `lchmod`
  - 11.94 Glibc `<sys/statfs.h>`
    - 11.94.1 `fstatfs`
    - 11.94.2 `statfs`
  - 11.95 Glibc `<sys/swap.h>`
    - 11.95.1 `swapoff`
    - 11.95.2 `swapon`
  - 11.96 Glibc `<sys/sysctl.h>`
    - 11.96.1 `sysctl`
  - 11.97 Glibc `<sys/sysinfo.h>`
    - 11.97.1 `get_avphys_pages`
    - 11.97.2 `get_nprocs`
    - 11.97.3 `get_nprocs_conf`
    - 11.97.4 `get_phys_pages`
    - 11.97.5 `sysinfo`
  - 11.98 Glibc `<sys/syslog.h>`
    - 11.98.1 `vsyslog`
  - 11.99 Glibc `<sys/sysmacros.h>`
    - 11.99.1 `gnu_dev_major`
    - 11.99.2 `gnu_dev_makedev`
    - 11.99.3 `gnu_dev_minor`
  - 11.100 Glibc Extensions to `<sys/time.h>`
    - 11.100.1 `adjtime`
    - 11.100.2 `futimes`
    - 11.100.3 `futimesat`
    - 11.100.4 `lutimes`
    - 11.100.5 `settimeofday`
  - 11.101 Glibc `<sys/timex.h>`
    - 11.101.1 `adjtimex`
    - 11.101.2 `ntp_adjtime`
    - 11.101.3 `ntp_gettime`
    - 11.101.4 `ntp_gettimex`
  - 11.102 Glibc Extensions to `<sys/uio.h>`
    - 11.102.1 `preadv`
    - 11.102.2 `process_vm_readv`
    - 11.102.3 `process_vm_writev`
    - 11.102.4 `pwritev`
  - 11.103 Glibc `<sys/ustat.h>`
    - 11.103.1 `ustat`
  - 11.104 Glibc `<sys/vlimit.h>`
    - 11.104.1 `vlimit`
  - 11.105 Glibc `<sys/vm86.h>`
    - 11.105.1 `vm86`
  - 11.106 Glibc `<sys/vtimes.h>`
    - 11.106.1 `vtimes`
  - 11.107 Glibc Extensions to `<sys/wait.h>`
    - 11.107.1 `wait3`
    - 11.107.2 `wait4`
  - 11.108 Glibc `<sys/xattr.h>`
    - 11.108.1 `fgetxattr`
    - 11.108.2 `flistxattr`
    - 11.108.3 `fremovexattr`
    - 11.108.4 `fsetxattr`
    - 11.108.5 `getxattr`
    - 11.108.6 `lgetxattr`
    - 11.108.7 `listxattr`
    - 11.108.8 `llistxattr`
    - 11.108.9 `lremovexattr`
    - 11.108.10 `lsetxattr`
    - 11.108.11 `removexattr`
    - 11.108.12 `setxattr`
  - 11.109 Glibc Extensions to `<termios.h>`
    - 11.109.1 `cfmakeraw`
    - 11.109.2 `cfsetspeed`
  - 11.110 Glibc Extensions to `<time.h>`
    - 11.110.1 `clock_adjtime`
    - 11.110.2 `dysize`
    - 11.110.3 `getdate_r`
    - 11.110.4 `stime`
    - 11.110.5 `strptime_l`
    - 11.110.6 `timegm`
    - 11.110.7 `timelocal`
    - 11.110.8 `timespec_get`
  - 11.111 Glibc `<ttyent.h>`
    - 11.111.1 `endttyent`
    - 11.111.2 `getttyent`
    - 11.111.3 `getttynam`
    - 11.111.4 `setttyent`
  - 11.112 Glibc Extensions to `<unistd.h>`
    - 11.112.1 `acct`
    - 11.112.2 `brk`
    - 11.112.3 `chroot`
    - 11.112.4 `daemon`
    - 11.112.5 `dup3`
    - 11.112.6 `endusershell`
    - 11.112.7 `euidaccess`
    - 11.112.8 `execvpe`
    - 11.112.9 `get_current_dir_name`
    - 11.112.10 `getdomainname`
    - 11.112.11 `getdtablesize`
    - 11.112.12 `getpagesize`
    - 11.112.13 `getpass`
    - 11.112.14 `getresgid`
    - 11.112.15 `getresuid`
    - 11.112.16 `getusershell`
    - 11.112.17 `group_member`
    - 11.112.18 `pipe2`
    - 11.112.19 `profil`
    - 11.112.20 `revoke`
    - 11.112.21 `sbrk`
    - 11.112.22 `setlogin`
    - 11.112.23 `setdomainname`
    - 11.112.24 `sethostid`
    - 11.112.25 `sethostname`
    - 11.112.26 `setresgid`
    - 11.112.27 `setresuid`
    - 11.112.28 `setusershell`
    - 11.112.29 `syncfs`
    - 11.112.30 `syscall`
    - 11.112.31 `ttyslot`
    - 11.112.32 `vhangup`
  - 11.113 Glibc `<utmp.h>`
    - 11.113.1 `endutent`
    - 11.113.2 `getutent`
    - 11.113.3 `getutent_r`
    - 11.113.4 `getutid`
    - 11.113.5 `getutid_r`
    - 11.113.6 `getutline`
    - 11.113.7 `getutline_r`
    - 11.113.8 `pututline`
    - 11.113.9 `setutent`
    - 11.113.10 `updwtmp`
    - 11.113.11 `utmpname`
    - 11.113.12 `login`
    - 11.113.13 `login_tty`
  - 11.114 Glibc Extensions to `<utmpx.h>`
    - 11.114.1 `getutmp`
    - 11.114.2 `getutmpx`
    - 11.114.3 `updwtmpx`
    - 11.114.4 `utmpxname`
  - 11.115 Glibc Extensions to `<wchar.h>`
    - 11.115.1 `fgetwc_unlocked`
    - 11.115.2 `fgetws_unlocked`
    - 11.115.3 `fputwc_unlocked`
    - 11.115.4 `fputws_unlocked`
    - 11.115.5 `getwc_unlocked`
    - 11.115.6 `getwchar_unlocked`
    - 11.115.7 `putwc_unlocked`
    - 11.115.8 `putwchar_unlocked`
    - 11.115.9 `wcschrnul`
    - 11.115.10 `wcsftime_l`
    - 11.115.11 `wcstod_l`
    - 11.115.12 `wcstof_l`
    - 11.115.13 `wcstol_l`
    - 11.115.14 `wcstold_l`
    - 11.115.15 `wcstoll_l`
    - 11.115.16 `wcstoq`
    - 11.115.17 `wcstoul_l`
    - 11.115.18 `wcstoull_l`
    - 11.115.19 `wcstouq`
    - 11.115.20 `wmempcpy`
- 12 Particular Modules
  - 12.1 alloca
  - 12.2 alloca-opt
  - 12.3 Safe Allocation Macros
  - 12.4 Compile-time Assertions
  - 12.5 Integer Properties
    - 12.5.1 Integer Type Determination
    - 12.5.2 Integer Bounds
    - 12.5.3 Integer Range Overflow
    - 12.5.4 Integer Type Overflow
  - 12.6 Character and String Functions in C Locale
    - 12.6.1 c-ctype
    - 12.6.2 c-strcase
    - 12.6.3 c-strcaseeq
    - 12.6.4 c-strcasestr
    - 12.6.5 c-strstr
    - 12.6.6 c-strtod
    - 12.6.7 c-strtold
  - 12.7 Quoting
  - 12.8 error and progname
  - 12.9 gcd: greatest common divisor
  - 12.10 Searching for Libraries
    - Simple Library Tests
    - Locating Libraries
      - Example of using `AC_LIB_LINKFLAGS`
      - Dependencies
      - Static vs. shared
      - `CPPFLAGS` vs. `LDFLAGS`
      - Bi-arch systems
  - 12.11 Controlling the Exported Symbols of Shared Libraries
  - 12.12 LD Version Scripts
  - 12.13 Visual Studio Compatibility
  - 12.14 Supporting Relocation
  - 12.15 func
  - 12.16 configmake
  - 12.17 warnings
  - 12.18 manywarnings
  - 12.19 Running self-tests under valgrind
  - 12.20 stat-size
- 13 Regular expressions
  - 13.1 Overview
  - 13.2 Regular Expression Syntax
    - 13.2.1 Syntax Bits
    - 13.2.2 Predefined Syntaxes
    - 13.2.3 Collating Elements vs. Characters
    - 13.2.4 The Backslash Character
  - 13.3 Common Operators
    - 13.3.1 The Match-self Operator (ordinary character)
    - 13.3.2 The Match-any-character Operator (`.`)
    - 13.3.3 The Concatenation Operator
    - 13.3.4 Repetition Operators
      - 13.3.4.1 The Match-zero-or-more Operator (`*`)
      - 13.3.4.2 The Match-one-or-more Operator (`+` or `\+`)
      - 13.3.4.3 The Match-zero-or-one Operator (`?` or `\?`)
      - 13.3.4.4 Interval Operators (`{` … `}` or `\{` … `\}`)
    - 13.3.5 The Alternation Operator (`|` or `\|`)
    - 13.3.6 List Operators (`[` … `]` and `[^` … `]`)
      - 13.3.6.1 Collating Symbol Operators (`[.` … `.]`)
      - 13.3.6.2 Equivalence Class Operators (`[=` … `=]`)
      - 13.3.6.3 Character Class Operators (`[:` … `:]`)
      - 13.3.6.4 The Range Operator (`-`)
    - 13.3.7 Grouping Operators (`(` … `)` or `\(` … `\)`)
    - 13.3.8 The Back-reference Operator (\digit)
    - 13.3.9 Anchoring Operators
      - 13.3.9.1 The Match-beginning-of-line Operator (`^`)
      - 13.3.9.2 The Match-end-of-line Operator (`$`)
  - 13.4 GNU Operators
    - 13.4.1 Word Operators
      - 13.4.1.1 Non-Emacs Syntax Tables
      - 13.4.1.2 The Match-word-boundary Operator (`\b`)
      - 13.4.1.3 The Match-within-word Operator (`\B`)
      - 13.4.1.4 The Match-beginning-of-word Operator (`\<`)
      - 13.4.1.5 The Match-end-of-word Operator (`\>`)
      - 13.4.1.6 The Match-word-constituent Operator (`\w`)
      - 13.4.1.7 The Match-non-word-constituent Operator (`\W`)
    - 13.4.2 Buffer Operators
      - 13.4.2.1 The Match-beginning-of-buffer Operator (`\``)
      - 13.4.2.2 The Match-end-of-buffer Operator (`\'`)
  - 13.5 GNU Emacs Operators
    - 13.5.1 Syntactic Class Operators
      - 13.5.1.1 Emacs Syntax Tables
      - 13.5.1.2 The Match-syntactic-class Operator (`\s` class)
      - 13.5.1.3 The Match-not-syntactic-class Operator (`\S` class)
  - 13.6 What Gets Matched?
  - 13.7 Programming with Regex
    - 13.7.1 GNU Regex Functions
      - 13.7.1.1 GNU Pattern Buffers
      - 13.7.1.2 GNU Regular Expression Compiling
      - 13.7.1.3 GNU Matching
      - 13.7.1.4 GNU Searching
      - 13.7.1.5 Matching and Searching with Split Data
      - 13.7.1.6 Searching with Fastmaps
      - 13.7.1.7 GNU Translate Tables
      - 13.7.1.8 Using Registers
      - 13.7.1.9 Freeing GNU Pattern Buffers
    - 13.7.2 BSD Regex Functions
      - 13.7.2.1 BSD Regular Expression Compiling
      - 13.7.2.2 BSD Searching
  - 13.8 Regular expression syntaxes
    - 13.8.1 ‘`awk`’ regular expression syntax
    - 13.8.2 ‘`egrep`’ regular expression syntax
    - 13.8.3 ‘`ed`’ regular expression syntax
    - 13.8.4 ‘`emacs`’ regular expression syntax
    - 13.8.5 ‘`gnu-awk`’ regular expression syntax
    - 13.8.6 ‘`grep`’ regular expression syntax
    - 13.8.7 ‘`posix-awk`’ regular expression syntax
    - 13.8.8 ‘`posix-basic`’ regular expression syntax
    - 13.8.9 ‘`posix-egrep`’ regular expression syntax
    - 13.8.10 ‘`posix-extended`’ regular expression syntax
    - 13.8.11 ‘`posix-minimal-basic`’ regular expression syntax
    - 13.8.12 ‘`sed`’ regular expression syntax
- Appendix A GNU Free Documentation License
- Index

# GNU Gnulib

This manual is for GNU Gnulib (updated 2013-07-01 18:55:57), which is a library of common routines intended to be shared at the source level.

Copyright © 2004-2012 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

## 1 Introduction

Gnulib is a source code library. It provides basic functionality to programs and libraries. Currently (as of October 2006) more than 30 packages make use of Gnulib.

Resources:

- Gnulib is hosted at Savannah: http://savannah.gnu.org/projects/gnulib. Get the sources through Git or CVS from there.
- The Gnulib home page: http://www.gnu.org/software/gnulib/.

### 1.1 Benefits of using Gnulib

Gnulib is useful to enhance various aspects of a package:

- Portability: With Gnulib, a package maintainer can program against the POSIX and GNU libc APIs and nevertheless expect good portability to platforms that don’t implement POSIX.
- Maintainability: When a package uses modules from Gnulib instead of code written specifically for that package, the maintainer has less code to maintain.
- Security: Gnulib provides functions that are immune against vulnerabilities that plague the uses of the corresponding commonplace functions. For example, `asprintf`, `canonicalize_file_name` are not affected by buffer sizing problems that affect `sprintf`, `realpath`. `openat` does not have the race conditions that `open` has. Etc.
- Reliability: Gnulib provides functions that combine a call to a system function with a check of the result. Examples are `xalloc`, `xprintf`, `xstrtod`, `xgetcwd`.
- Structure: Gnulib offers a way to structure code into modules, typically one include file, one source code file, and one autoconf macro for each functionality. Modularity helps maintainability.

### 1.2 Library vs. Reusable Code

Classical libraries are installed as binary object code. Gnulib is different: It is used as a source code library. Each package that uses Gnulib thus ships with part of the Gnulib source code. The used portion of Gnulib is tailored to the package: A build tool, called `gnulib-tool`, is provided that copies a tailored subset of Gnulib into the package.

### 1.3 Portability and Application Code

One of the goals of Gnulib is to make portable programming easy, on the basis of the standards relevant for GNU (and Unix). The objective behind that is to avoid a fragmentation of the user community into disjoint user communities according to the operating system, and instead allow synergies between users on different operating systems.

Another goal of Gnulib is to provide application code that can be shared between several applications. Some people wonder: "What? glibc doesn’t have a function to copy a file?" Indeed, the scope of a system’s libc is to implement the relevant standards (ISO C99, POSIX:2001) and to provide access functions to the kernel’s system calls, and little more.

There is no clear borderline between both areas.

For example, Gnulib has a facility for generating the name of backup files. While this task is entirely at the application level — no standard specifies an API for it — the naïve code has some portability problems because on some platforms the length of file name components is limited to 30 characters or so. Gnulib handles that.

Similarly, Gnulib has a facility for executing a command in a subprocess. It is at the same time a portability enhancement (it works on GNU, Unix, and Windows, compared to the classical `fork`/`exec` idiom which is not portable to Windows), as well as an application aid: it takes care of redirecting stdin and/or stdout if desired, and emits an error message if the subprocess failed.

### 1.4 Target Platforms

Gnulib supports a number of platforms that we call the “reasonable portability targets”. This class consists of widespread operating systems, for three years after their last availability, or — for proprietary operating systems — as long as the vendor provides commercial support for it. Already existing Gnulib code for older operating systems is usually left in place for longer than these three years. So it comes that programs that use Gnulib run pretty well also on these older operating systems.

Some operating systems are not very widespread, but are Free Software and are actively developed. Such platforms are also supported by Gnulib, if that OS’s developers community keeps in touch with the Gnulib developers, by providing bug reports, analyses, or patches. For such platforms, Gnulib supports only the versions of the last year or the last few months, depending on the maturity of said OS project, the number of its users, and how often these users upgrade.

Niche operating systems are generally unsupported by Gnulib, unless some of their developers or users contribute support to Gnulib.

The degree of support Gnulib guarantees for a platform depends on the amount of testing it gets from volunteers. Platforms on which Gnulib is frequently tested are the best supported. Then come platforms with occasional testing, then platforms which are rarely tested. Usually, we fix bugs when they are reported. Except that some rarely tested platforms are also low priority; bug fixes for these platforms can take longer.

As of 2011, the list of supported platforms is the following:

- glibc systems. With glibc 2.8 or newer, they are frequently tested. With glibc 2.3 or newer, they are occasionally tested.
- MacOS X. In versions 10.5 and 10.6, it’s frequently tested. In version 10.4, it’s rarely tested.
- FreeBSD 6.0 or newer is occasionally tested. FreeBSD 5.x is rarely tested.
- NetBSD 5.0 or newer is occasionally tested. NetBSD 3.0 or newer is rarely tested.
- OpenBSD 4.0 or newer is occasionally tested. OpenBSD 3.8 or newer is rarely tested.
- AIX 6.1 or newer is occasionally tested. AIX 5.1 or newer is rarely tested.
- HP-UX 11.11 or newer is occasionally tested. HP-UX 11.00 is rarely tested. HP-UX 10.20 is rarely tested and low priority.
- IRIX 6.5 is occasionally tested. IRIX 5.3 is rarely tested and low priority.
- OSF/1 5.1 is occasionally tested. OSF/1 4.0 is rarely tested and low priority.
- Solaris 8 and newer are occasionally tested. Solaris 7 is rarely tested. Solaris 2.6 and older are rarely tested and low priority.
- Cygwin 1.7.x is frequently tested. Cygwin 1.5.x is occasionally tested.
- mingw is frequently tested. But note that some modules are currently unsupported on mingw: `mgetgroups`, `getugroups`, `idcache`, `userspec`, `openpty`, `login_tty`, `forkpty`, `pt_chown`, `grantpt`, `pty`, `savewd`, `mkancesdirs`, `mkdir-p`, `euidaccess`, `faccessat`. The versions of Windows that are supported are Windows XP and newer.
- Native Windows, with MSVC as compiler, is rarely tested and low priority.
- mingw in 64-bit mode is not tested and low priority so far.
- Interix 6.1 is rarely tested, and requires the `suacomp` library (http://sourceforge.net/projects/suacomp/) in version 0.6.8 or newer. Interix 3.5 is not tested.
- Haiku is rarely tested, BeOS is not tested and low priority.
- uClibc on Linux is rarely tested.
- QNX is not tested and low priority.

Gnulib supports these operating systems only in an unvirtualized environment. When you run an OS inside a virtual machine, you have to be aware that the virtual machine can bring in bugs of its own. For example, floating-point operations on Solaris can behave slightly differently in QEMU than on real hardware. And Haiku’s `bash` program misbehaves in VirtualBox 3, whereas it behaves fine in VirtualBox 4.

Similarly, running native Windows binaries on GNU/Linux under WINE is rarely tested and low priority: WINE has a set of behaviours and bugs that is slightly different from native Windows.

The following platforms are not supported by Gnulib. The cost of supporting them would exceed the benefit because they are rarely used, or poorly documented, or have been supplanted by other platforms, or diverge too much from POSIX, or some combination of these and other factors. Please don’t bother sending us patches for them.

- Windows 95/98/ME.
- DJGPP and EMX (the 32-bit operating systems running in DOS).
- MSDOS (the 16-bit operating system).
- Windows Mobile, Symbian OS, iOS.

### 1.5 Modules

Gnulib is divided into modules. Every module implements a single facility. Modules can depend on other modules.

A module consists of a number of files and a module description. The files are copied by `gnulib-tool` into the package that will use it, usually verbatim, without changes. Source code files (.h, .c files) reside in the `lib/` subdirectory. Autoconf macro files reside in the `m4/` subdirectory. Build scripts reside in the `build-aux/` subdirectory.

The module description contains the list of files — `gnulib-tool` copies these files. It contains the module’s dependencies — `gnulib-tool` installs them as well. It also contains the autoconf macro invocation (usually a single line or nothing at all) — `gnulib-tool` ensures this is invoked from the package’s `configure.ac` file. And also a `Makefile.am` snippet — `gnulib-tool` collects these into a `Makefile.am` for the tailored Gnulib part. The module description and include file specification are for documentation purposes; they are combined into `MODULES.html`.

The module system serves two purposes:

1. It ensures consistency of the used autoconf macros and `Makefile.am` rules with the source code. For example, source code which uses the `getopt_long` function — this is a common way to implement parsing of command line options in a way that complies with the GNU standards — needs the source code (`lib/getopt.c` and others), the autoconf macro which detects whether the system’s libc already has this function (in `m4/getopt.m4`), and a few `Makefile.am` lines that create the substitute `getopt.h` if not. These three pieces belong together. They cannot be used without each other. The module description and `gnulib-tool` ensure that they are copied altogether into the destination package.
2. It allows for scalability. It is well-known since the inception of the MODULA-2 language around 1978 that dissection into modules with dependencies allows for building large sets of code in a maintainable way. The maintainability comes from the facts that:
   - Every module has a single purpose; you don’t worry about other parts of the program while creating, reading or modifying the code of a module.
   - The code you have to read in order to understand a module is limited to the source of the module and the .h files of the modules listed as dependencies. It is for this reason also that we recommend to put the comments describing the functions exported by a module into its .h file.

   In other words, the module is the elementary unit of code in Gnulib, comparable to a class in object-oriented languages like Java or C#.

The module system is the basis of `gnulib-tool`. When `gnulib-tool` copies a part of Gnulib into a package, it first compiles a module list, starting with the requested modules and adding all the dependencies, and then collects the files, `configure.ac` snippets and `Makefile.am` snippets.

### 1.6 Various Kinds of Modules

There are modules of various kinds in Gnulib. For a complete list of the modules, see in `MODULES.html`.

#### 1.6.1 Support for ISO C or POSIX functions.

When a function is not implemented by a system, the Gnulib module provides an implementation under the same name. Examples are the ‘`snprintf`’ and ‘`readlink`’ modules.

Similarly, when a function is not correctly implemented by a system, Gnulib provides a replacement. For functions, we use the pattern

    #if !HAVE_WORKING_FOO
    # define foo rpl_foo
    #endif

and implement the `foo` function under the name `rpl_foo`. This renaming is needed to avoid conflicts at compile time (in case the system header files declare `foo`) and at link/run time (because the code making use of `foo` could end up residing in a shared library, and the executable program using this library could be defining `foo` itself).

For header files, such as `stdbool.h` or `stdint.h`, we provide the substitute only if the system doesn’t provide a correct one. The template of this replacement is distributed in a slightly different name, with ‘`.in`’ inserted before the ‘`.h`’ extension, so that on systems which do provide a correct header file the system’s one is used.

#### 1.6.2 Enhancements of ISO C or POSIX functions

These are sometimes POSIX functions with GNU extensions also found in glibc — examples: ‘`getopt`’, ‘`fnmatch`’ — and often new APIs — for example, for all functions that allocate memory in one way or the other, we have variants which also include the error checking against the out-of-memory condition.

#### 1.6.3 Portable general use facilities

Examples are a module for copying a file — the portability problems relate to the copying of the file’s modification time, access rights, and extended attributes — or a module for extracting the tail component of a file name — here the portability to native Windows requires a different API than the classical POSIX `basename` function.

#### 1.6.4 Reusable application code

Examples are an error reporting function, a module that allows output of numbers with K/M/G suffixes, or cryptographic facilities.

#### 1.6.5 Object oriented classes

Examples are data structures like ‘`list`’, or abstract output stream classes that work around the fact that an application cannot implement an stdio `FILE` with its logic. Here, while staying in C, we use implementation techniques like tables of function pointers, known from the C++ language or from the Linux kernel.

#### 1.6.6 Interfaces to external libraries

Examples are the ‘`iconv`’ module, which interfaces to the `iconv` facility, regardless whether it is contained in libc or in an external `libiconv`. Or the ‘`readline`’ module, which interfaces to the GNU readline library.

#### 1.6.7 Build / maintenance infrastructure

An example is the ‘`maintainer-makefile`’ module, which provides extra Makefile tags for maintaining a package.

### 1.7 Collaborative Development

Gnulib is maintained collaboratively. The mailing list is `<bug-gnulib at gnu dot org>`. Be warned that some people on the list may be very active at some times and unresponsive at other times.

Every module has one or more maintainers. While issues are discussed collaboratively on the list, the maintainer of a module nevertheless has a veto right regarding changes in his module.

All patches should be posted the list, regardless whether they are proposed patches or whether they are committed immediately by the maintainer of the particular module. The purpose is not only to inform the other users of the module, but mainly to allow peer review. It is not uncommon that several people contribute comments or spot bugs after a patch was proposed.

Conversely, if you are using Gnulib, and a patch is posted that affects one of the modules that your package uses, you have an interest in proofreading the patch.

### 1.8 Copyright

Most modules are under the GPL. Some, mostly modules which can reasonably be used in libraries, are under LGPL. The source files always say "GPL", but the real license specification is in the module description file. If the module description file says "GPL", it means "GPLv3+" (GPLv3 or newer, at the licensee’s choice); if it says "LGPL", it means "LGPLv3+" (LGPLv3 or newer, at the licensee’s choice).

More precisely, the license specification in the module description file applies to the files in `lib/` and `build-aux/`. Different licenses apply to files in special directories:

`modules/`

  Module description files are under this copyright:

  > Copyright © 200X-200Y Free Software Foundation, Inc.
  > Copying and distribution of this file, with or without modification, in any medium, are permitted without royalty provided the copyright notice and this notice are preserved.

`m4/`

  Autoconf macro files are under this copyright:

  > Copyright © 200X-200Y Free Software Foundation, Inc.
  > This file is free software; the Free Software Foundation gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved.

`tests/`

  If a license statement is not present in a test module, the test files are under GPL. Even if the corresponding source module is under LGPL, this is not a problem, since compiled tests are not installed by “make install”.

`doc/`

  Documentation files are under this copyright:

  > Copyright © 2004-200Y Free Software Foundation, Inc.
  > Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.

If you want to use some Gnulib modules under LGPL, you can do so by passing the option ‘`--lgpl`’ to `gnulib-tool`. This will replace the GPL header with an LGPL header while copying the source files to your package. Similarly, if you want some Gnulib modules under LGPLv2+ (Lesser GPL version 2.1 or newer), you can do so by passing the option ‘`--lgpl=2`’ to `gnulib-tool`.

Keep in mind that when you submit patches to files in Gnulib, you should license them under a compatible license. This means that sometimes the contribution will have to be LGPL, if the original file is available under LGPL. You can find out about it by looking for a "License: LGPL" information in the corresponding module description.

### 1.9 Steady Development

Gnulib modules are continually adapted, to match new practices, to be consistent with newly added modules, or simply as a response to build failure reports. Gnulib is available in two qualities:

- There is the newest version of Gnulib from the Git repository. The source tree can also be fetched from a read-only CVS that mirrors the Git repository.
- We also make stable releases every two months, at http://erislabs.net/ianb/projects/gnulib/.

If you are willing to report an occasional regression, we recommend to use the newest version always, except in periods of major changes. Most Gnulib users do this. If you prefer stable releases, please use the newest stable release.

### 1.10 Openness

Gnulib is open in the sense that we gladly accept contributions if they are generally useful, well engineered, and if the contributors have signed the obligatory papers with the FSF.

The module system is open in the sense that a package using Gnulib can

1. locally patch or override files in Gnulib,
2. locally add modules that are treated like Gnulib modules by `gnulib-tool`.

This is achieved by the ‘`--local-dir`’ option of `gnulib-tool` (see Extending Gnulib).

## 2 Invoking gnulib-tool

The `gnulib-tool` command is the recommended way to import Gnulib modules. It is possible to borrow Gnulib modules in a package without using `gnulib-tool`, relying only on the meta-information stored in the `modules/*` files, but with a growing number of modules this becomes tedious. `gnulib-tool` simplifies the management of source files, `Makefile.am`s and `configure.ac` in packages incorporating Gnulib modules.

`gnulib-tool` is not installed in a standard directory that is contained in the `PATH` variable. It needs to be run directly in the directory that contains the Gnulib source code. You can do this either by specifying the absolute filename of `gnulib-tool`, or you can also use a symbolic link from a place inside your `PATH` to the `gnulib-tool` file of your preferred and most up-to-date Gnulib checkout, like this:

    $ ln -s $HOME/gnu/src/gnulib.git/gnulib-tool $HOME/bin/gnulib-tool

Run ‘`gnulib-tool --help`’ for information. To get familiar with `gnulib-tool` without affecting your sources, you can also try some commands with the option ‘`--dry-run`’; then `gnulib-tool` will only report which actions it would perform in a real run without changing anything.

### 2.1 Finding modules

There are three ways of finding the names of Gnulib modules that you can use in your package:

- You have the complete module list, sorted according to categories, in http://www.gnu.org/software/gnulib/MODULES.html.
- If you are looking for a particular POSIX header or function replacement, look in the chapters Header File Substitutes and Function Substitutes. For headers and functions that are provided by Glibc but not standardized by POSIX, look in the chapters Glibc Header File Substitutes and Glibc Function Substitutes.
- If you have already found the source file in Gnulib and are looking for the module that contains this source file, you can use the command ‘`gnulib-tool --find filename`’.

### 2.2 Initial import

Gnulib assumes that your project uses Autoconf. When using Gnulib, you will need to have Autoconf and Automake among your build tools. Note that while the use of Automake in your project’s top level directory is an easy way to fulfil the Makefile conventions of the GNU coding standards, Gnulib does not require it. But when you use Gnulib, Automake will be used at least in a subdirectory of your project.

Invoking ‘`gnulib-tool --import`’ will copy source files, create a `Makefile.am` to build them, generate a file `gnulib-comp.m4` with Autoconf M4 macro declarations used by `configure.ac`, and generate a file `gnulib-cache.m4` containing the cached specification of how Gnulib is used.

Our example will be a library that uses Autoconf, Automake and Libtool. It calls `strdup`, and you wish to use gnulib to make the package portable to C89 and C99 (which don’t have `strdup`).

    ~/src/libfoo$ gnulib-tool --import strdup
    Module list with included dependencies:
      absolute-header
      extensions
      strdup
      string
    File list:
      lib/dummy.c
      lib/strdup.c
      lib/string.in.h
      m4/absolute-header.m4
      m4/extensions.m4
      m4/gnulib-common.m4
      m4/strdup.m4
      m4/string_h.m4
    Creating directory ./lib
    Creating directory ./m4
    Copying file lib/dummy.c
    Copying file lib/strdup.c
    Copying file lib/string.in.h
    Copying file m4/absolute-header.m4
    Copying file m4/extensions.m4
    Copying file m4/gnulib-common.m4
    Copying file m4/gnulib-tool.m4
    Copying file m4/strdup.m4
    Copying file m4/string_h.m4
    Creating lib/Makefile.am
    Creating m4/gnulib-cache.m4
    Creating m4/gnulib-comp.m4
    Finished.

    You may need to add #include directives for the following .h files.
      #include <string.h>

    Don't forget to
      - add "lib/Makefile" to AC_CONFIG_FILES in ./configure.ac,
      - mention "lib" in SUBDIRS in Makefile.am,
      - mention "-I m4" in ACLOCAL_AMFLAGS in Makefile.am,
      - invoke gl_EARLY in ./configure.ac, right after AC_PROG_CC,
      - invoke gl_INIT in ./configure.ac.
    ~/src/libfoo$

By default, the source code is copied into `lib/` and the M4 macros in `m4/`. You can override these paths by using `--source-base=DIRECTORY` and `--m4-base=DIRECTORY`. Some modules also provide other files necessary for building. These files are copied into the directory specified by ‘`AC_CONFIG_AUX_DIR`’ in `configure.ac` or by the `--aux-dir=DIRECTORY` option. If neither is specified, the current directory is assumed.

`gnulib-tool` can make symbolic links instead of copying the source files. The option to specify for this is ‘`--symlink`’, or ‘`-s`’ for short. This can be useful to save a few kilobytes of disk space. But it is likely to introduce bugs when `gnulib` is updated; it is more reliable to use ‘`gnulib-tool --update`’ (see below) to update to newer versions of `gnulib`. Furthermore it requires extra effort to create self-contained tarballs, and it may disturb some mechanism the maintainer applies to the sources. For these reasons, this option is generally discouraged.

`gnulib-tool` will overwrite any pre-existing files, in particular `Makefile.am`. It is also possible to separate the generated `Makefile.am` content (for building the gnulib library) into a separate file, say `gnulib.mk`, that can be included by your handwritten `Makefile.am`, but this is a more advanced use of `gnulib-tool`.

Consequently, it is a good idea to choose directories that are not already used by your projects, to separate gnulib imported files from your own files. This approach is also useful if you want to avoid conflicts between other tools (e.g., `gettextize` that also copy M4 files into your package. Simon Josefsson successfully uses a source base of `gl/`, and a M4 base of `gl/m4/`, in several packages.

After the ‘`--import`’ option on the command line comes the list of Gnulib modules that you want to incorporate in your package. The names of the modules coincide with the filenames in Gnulib’s `modules/` directory.

Some Gnulib modules depend on other Gnulib modules. `gnulib-tool` will automatically add the needed modules as well; you need not list them explicitly. `gnulib-tool` will also memorize which dependent modules it has added, so that when someday a dependency is dropped, the implicitly added module is dropped as well (unless you have explicitly requested that module).

If you want to cut a dependency, i.e., not add a module although one of your requested modules depends on it, you may use the option ‘`--avoid=module`’ to do so. Multiple uses of this option are possible. Of course, you will then need to implement the same interface as the removed module.

A few manual steps are required to finish the initial import. `gnulib-tool` printed a summary of these steps.

First, you must ensure Autoconf can find the macro definitions in `gnulib-comp.m4`. Use the `ACLOCAL_AMFLAGS` specifier in your top-level `Makefile.am` file, as in:

    ACLOCAL_AMFLAGS = -I m4

You are now ready to call the M4 macros in `gnulib-comp.m4` from `configure.ac`. The macro `gl_EARLY` must be called as soon as possible after verifying that the C compiler is working. Typically, this is immediately after `AC_PROG_CC`, as in:

    ...
    AC_PROG_CC
    gl_EARLY
    ...

If you are using `AC_PROG_CC_STDC`, the macro `gl_EARLY` must be called after it, like this:

    ...
    AC_PROG_CC
    AC_PROG_CC_STDC
    gl_EARLY
    ...

The core part of the gnulib checks are done by the macro `gl_INIT`. Place it further down in the file, typically where you normally check for header files or functions. It must come after other checks which may affect the compiler invocation, such as `AC_MINIX`. For example:

    ...
    # For gnulib.
    gl_INIT
    ...

`gl_INIT` will in turn call the macros related with the gnulib functions, be it specific gnulib macros, like `gl_FUNC_ALLOCA` or autoconf or automake macros like `AC_FUNC_ALLOCA` or `AM_FUNC_GETLINE`. So there is no need to call those macros yourself when you use the corresponding gnulib modules.

You must also make sure that the gnulib library is built. Add the `Makefile` in the gnulib source base directory to `AC_CONFIG_FILES`, as in:

    AC_CONFIG_FILES(... lib/Makefile ...)

You must also make sure that `make` will recurse into the gnulib directory. To achieve this, add the gnulib source base directory to a `SUBDIRS` Makefile.am statement, as in:

    SUBDIRS = lib

or if you, more likely, already have a few entries in `SUBDIRS`, you can add something like:

    SUBDIRS += lib

Finally, you have to add compiler and linker flags in the appropriate source directories, so that you can make use of the gnulib library. Since some modules (‘`getopt`’, for example) may copy files into the build directory, `top_builddir/lib` is needed as well as `top_srcdir/lib`. For example:

    ...
    AM_CPPFLAGS = -I$(top_builddir)/lib -I$(top_srcdir)/lib
    ...
    LDADD = lib/libgnu.a
    ...

Don’t forget to `#include` the various header files. In this example, you would need to make sure that ‘`#include <string.h>`’ is evaluated when compiling all source code files, that want to make use of `strdup`.

In the usual case where Autoconf is creating a `config.h` file, you should include `config.h` first, before any other include file. That way, for example, if `config.h` defines ‘`restrict`’ to be the empty string on a pre-C99 host, or a macro like ‘`_FILE_OFFSET_BITS`’ that affects the layout of data structures, the definition is consistent for all include files. Also, on some platforms macros like ‘`_FILE_OFFSET_BITS`’ and ‘`_GNU_SOURCE`’ may be ineffective, or may have only a limited effect, if defined after the first system header file is included.

Finally, note that you cannot use `AC_LIBOBJ` or `AC_REPLACE_FUNCS` in your `configure.ac` and expect the resulting object files to be automatically added to `lib/libgnu.a`. This is because your `AC_LIBOBJ` and `AC_REPLACE_FUNCS` invocations from `configure.ac` augment a variable `@LIBOBJS@` (and/or `@LTLIBOBJS@` if using Libtool), whereas `lib/libgnu.a` is built from the contents of a different variable, usually `@gl_LIBOBJS@` (or `@gl_LTLIBOBJS@` if using Libtool).

### 2.3 Modified imports

You can at any moment decide to use Gnulib differently than the last time.

There are two ways to change how Gnulib is used. Which one you’ll use, depends on where you keep track of options and module names that you pass to `gnulib-tool`.

- If you store the options and module names in a file under your own control, such as `autogen.sh`, `bootstrap`, `bootstrap.conf`, or similar, simply invoke `gnulib-tool` again, with modified options and more or fewer module names.
- `gnulib-tool` remembers which modules were used last time. If you want to rely on `gnulib-tool`’s own memory of the last used options and module names, you can use the commands `gnulib-tool --add-import` and `gnulib-tool --remove-import`.

  So, if you only want to use more Gnulib modules, simply invoke `gnulib-tool --add-import new-modules`. The list of modules that you pass after ‘`--add-import`’ is added to the previous list of modules.

  Similarly, if you want to use fewer Gnulib modules, simply invoke `gnulib-tool --remove-import unneeded-modules`. The list of modules that you pass after ‘`--remove-import`’ is removed from the previous list of modules. Note that if a module is then still needed as dependency of other modules, it will be used nevertheless. If you want to really not use a module any more, regardless of whether other modules may need it, you need to use the ‘`--avoid`’ option.

  For other changes, such as different choices of ‘`--lib`’, ‘`--source-base`’ or ‘`--aux-dir`’, the normal way is to modify manually the file `gnulib-cache.m4` in the M4 macros directory, then launch ‘`gnulib-tool --add-import`’.

  The only change for which this doesn’t work is a change of the ‘`--m4-base`’ directory. Because, when you pass a different value of ‘`--m4-base`’, `gnulib-tool` will not find the previous `gnulib-cache.m4` file any more. A possible solution is to manually copy the `gnulib-cache.m4` into the new M4 macro directory.

  In the `gnulib-cache.m4` file, the macros have the following meaning:

  `gl_MODULES`

    The argument is a space separated list of the requested modules, not including dependencies.

  `gl_AVOID`

    The argument is a space separated list of modules that should not be used, even if they occur as dependencies. Corresponds to the ‘`--avoid`’ command line argument.

  `gl_SOURCE_BASE`

    The argument is the relative file name of the directory containing the gnulib source files (mostly *.c and *.h files). Corresponds to the ‘`--source-base`’ command line argument.

  `gl_M4_BASE`

    The argument is the relative file name of the directory containing the gnulib M4 macros (*.m4 files). Corresponds to the ‘`--m4-base`’ command line argument.

  `gl_TESTS_BASE`

    The argument is the relative file name of the directory containing the gnulib unit test files. Corresponds to the ‘`--tests-base`’ command line argument.

  `gl_LIB`

    The argument is the name of the library to be created. Corresponds to the ‘`--lib`’ command line argument.

  `gl_LGPL`

    The presence of this macro without arguments corresponds to the ‘`--lgpl`’ command line argument. The presence of this macro with an argument (whose value must be 2 or 3) corresponds to the ‘`--lgpl=arg`’ command line argument.

  `gl_LIBTOOL`

    The presence of this macro corresponds to the ‘`--libtool`’ command line argument and to the absence of the ‘`--no-libtool`’ command line argument. It takes no arguments.

  `gl_MACRO_PREFIX`

    The argument is the prefix to use for macros in the `gnulib-comp.m4` file. Corresponds to the ‘`--macro-prefix`’ command line argument.

### 2.4 Simple update

When you want to update to a more recent version of Gnulib, without changing the list of modules or other parameters, a simple call does it:

    $ gnulib-tool --add-import

This will create, update or remove files, as needed.

Note: From time to time, changes are made in Gnulib that are not backward compatible. When updating to a more recent Gnulib, you should consult Gnulib’s `NEWS` file to check whether the incompatible changes affect your project.

### 2.5 Changing your sources for use with Gnulib

Gnulib contains some header file overrides. This means that when building on systems with deficient header files in `/usr/include/`, it may create files named `string.h`, `stdlib.h`, `stdint.h` or similar in the build directory. In the other source directories of your package you will usually pass ‘`-I`’ options to the compiler, so that these Gnulib substitutes are visible and take precedence over the files in `/usr/include/`.

These Gnulib substitute header files rely on `<config.h>` being already included. Furthermore `<config.h>` must be the first include in every compilation unit. This means that to all your source files and likely also to all your tests source files you need to add an ‘`#include <config.h>`’ at the top. Which source files are affected? Exactly those whose compilation includes a ‘`-I`’ option that refers to the Gnulib library directory.

This is annoying, but inevitable: On many systems, `<config.h>` is used to set system dependent flags (such as `_GNU_SOURCE` on GNU systems), and these flags have no effect after any system header file has been included.

### 2.6 Caveat: `gettextize` and `autopoint` users

The programs `gettextize` and `autopoint`, part of GNU `gettext`, import or update the internationalization infrastructure. Some of this infrastructure, namely ca. 20 autoconf macro files and the `config.rpath` file, is also contained in Gnulib and may be imported by `gnulib-tool`. The use of `gettextize` or `autopoint` will therefore overwrite some of the files that `gnulib-tool` has imported, and vice versa.

Avoiding to use `gettextize` (manually, as package maintainer) or `autopoint` (as part of a script like `autoreconf` or `autogen.sh`) is not the solution: These programs also import the infrastructure in the `po/` and optionally in the `intl/` directory.

The copies of the conflicting files in Gnulib are more up-to-date than the copies brought in by `gettextize` and `autopoint`. When a new `gettext` release is made, the copies of the files in Gnulib will be updated immediately.

The solution is therefore:

1. When you run `gettextize`, always use the `gettextize` from the matching GNU gettext release. For the most recent Gnulib checkout, this is the newest release found on http://ftp.gnu.org/gnu/gettext/. For an older Gnulib snapshot, it is the release that was the most recent release at the time the Gnulib snapshot was taken. Then, after `gettextize`, invoke `gnulib-tool`.
2. When a script of yours run `autopoint`, invoke `gnulib-tool` afterwards.
3. If you get an error message like `*** error: gettext infrastructure mismatch: using a Makefile.in.in from gettext version ... but the autoconf macros are from gettext version ...`, it means that a new GNU gettext release was made, and its autoconf macros were integrated into Gnulib and now mismatch the `po/` infrastructure. In this case, fetch and install the new GNU gettext release and run `gettextize` followed by `gnulib-tool`.
4. When you invoke `autoreconf` after `gnulib-tool`, make sure to not invoke `autopoint` a second time, by setting the `AUTOPOINT` environment variable, like this:

       $ env AUTOPOINT=true autoreconf --install

### 2.7 Handling Gnulib’s own message translations

Gnulib provides some functions that emit translatable messages using GNU `gettext`. The ‘`gnulib`’ domain at the Translation Project collects translations of these messages, which you should incorporate into your own programs.

There are two basic ways to achieve this. The first, and older, method is to list all the source files you use from Gnulib in your own `po/POTFILES.in` file. This will cause all the relevant translatable strings to be included in your POT file. When you send this POT file to the Translation Project, translators will normally fill in the translations of the Gnulib strings from their “translation memory”, and send you back updated PO files.

However, this process is error-prone: you might forget to list some source files, or the translator might not be using a translation memory and provide a different translation than another translator, or the translation might not be kept in sync between Gnulib and your package. It is also slow and causes substantial extra work, because a human translator must be in the loop for each language and you will need to incorporate their work on request.

For these reasons, a new method was designed and is now recommended. If you pass the `--po-base=directory` and `--po-domain=domain` options to `gnulib-tool`, then `gnulib-tool` will create a separate directory with its own `POTFILES.in`, and fetch current translations directly from the Translation Project (using `rsync` or `wget`, whichever is available). The POT file in this directory will be called `domain-gnulib.pot`, depending on the domain you gave to the `--po-domain` option (typically the same as the package name). This causes these translations to reside in a separate message domain, so that they do not clash either with the translations for the main part of your package nor with those of other packages on the system that use possibly different versions of Gnulib. When you use these options, the functions in Gnulib are built in such a way that they will always use this domain regardless of the default domain set by `textdomain`.

In order to use this method, you must – in each program that might use Gnulib code – add an extra line to the part of the program that initializes locale-dependent behavior. Where you would normally write something like:

      setlocale (LC_ALL, "");
      bindtextdomain (PACKAGE, LOCALEDIR);
      textdomain (PACKAGE);

you should add an additional `bindtextdomain` call to inform gettext of where the MO files for the extra message domain may be found:

      bindtextdomain (PACKAGE "-gnulib", LOCALEDIR);

(This example assumes that the domain that you specified to `gnulib-tool` is the same as the value of the `PACKAGE` preprocessor macro.)

Since you do not change the `textdomain` call, the default message domain for your program remains the same and your own use of `gettext` functions will not be affected.

### 2.8 Issues with Version Control Systems

If a project stores its source files in a version control system (VCS), such as CVS, Subversion, or Git, one needs to decide which files to commit.

In principle, all files created by `gnulib-tool`, except `gnulib-cache.m4`, can be treated like generated source files, like for example a `parser.c` file generated from `parser.y`. Alternatively, they can be considered source files and updated manually.

Here are the three different approaches in common use. Each has its place, and you should use whichever best suits your particular project and development methods.

1. In projects which commit all source files, whether generated or not, into their VCS, the `gnulib-tool` generated files should all be committed. In this case, you should pass the option ‘`--no-vc-files`’ to `gnulib-tool`, which avoids alteration of VCS-related files such as `.cvsignore`.

   Gnulib also contains files generated by `make` (and removed by `make clean`), using information determined by `configure`. For a Gnulib source file of the form `lib/foo.in.h`, the corresponding `lib/foo.h` is such a `make`-generated file. These should not be checked into the VCS, but instead added to `.cvsignore` or equivalent.

2. In projects which customarily omit from their VCS all files that are generated from other source files, none of these files and directories are added into the VCS. As described in Modified imports, there are two ways to keep track of options and module names that are passed to `gnulib-tool`. The command for restoring the omitted files depends on it:
   - If they are stored in a file other than `gnulib-cache.m4`, such as `autogen.sh`, `bootstrap`, `bootstrap.conf`, or similar, the restoration command is the entire `gnulib-tool ... --import ...` invocation with all options and module names.
   - If the project relies on `gnulib-tool`’s memory of the last used options and module names, then the file `gnulib-cache.m4` in the M4 macros directory must be added to the VCS, and the restoration command is:

         $ gnulib-tool --update

     The ‘`--update`’ option operates much like the ‘`--add-import`’ option, but it does not offer the possibility to change the way Gnulib is used. Also it does not report in the ChangeLogs the files that it had to add because they were missing.

   Gnulib includes the file `build-aux/bootstrap` to aid a developer in using this setup. Furthermore, in projects that use git for version control, it is possible to use a git submodule containing the precise commit of the gnulib repository, so that each developer running `bootstrap` will get the same version of all gnulib-provided files. The location of the submodule can be chosen to fit the package’s needs; here’s how to initially create the submodule in the directory `.gnulib`:

       $ dir=.gnulib
       $ git submodule add -- git://git.sv.gnu.org/gnulib.git $dir
       $ git config alias.syncsub "submodule foreach git pull origin master"

   Thereafter, `bootstrap` can run this command to update the submodule to the recorded checkout level:

       git submodule update --init $dir

   and a developer can use this sequence to update to a newer version of gnulib:

       $ git syncsub
       $ git add $dir
       $ ./bootstrap

3. Some projects take a “middle road”: they do commit Gnulib source files as in the first approach, but they do not commit other derived files, such as a `Makefile.in` generated by Automake. This increases the size and complexity of the repository, but can help occasional contributors by not requiring them to have a full Gnulib checkout to do a build, and all developers by ensuring that all developers are working with the same version of Gnulib in the repository. It also supports multiple Gnulib instances within a project. It remains important not to commit the `make`-generated files, as described above.

### 2.9 Bundling the unit tests of the Gnulib modules

You can bundle the unit tests of the Gnulib modules together with your package, through the ‘`--with-tests`’ option. Together with ‘`--with-tests`’, you also specify the directory for these tests through the ‘`--tests-base`’ option. Of course, you need to add this directory to the `SUBDIRS` variable in the `Makefile.am` of the parent directory.

The advantage of having the unit tests bundled is that when your program has a problem on a particular platform, running the unit tests may help determine quickly if the problem is on Gnulib’s side or on your package’s side. Also, it helps verifying Gnulib’s portability, of course.

The unit tests will be compiled and run when the user runs ‘`make check`’. When the user runs only ‘`make`’, the unit tests will not be compiled.

In the `SUBDIRS` variable, it is useful to put the Gnulib tests directory after the directory containing the other tests, not before:

    SUBDIRS = gnulib-lib src man tests gnulib-tests

This will ensure that on platforms where there are test failures in either directory, users will see and report the failures from the tests of your program.

Note: In packages which use more than one invocation of `gnulib-tool` in the scope of the same `configure.ac`, you cannot use ‘`--with-tests`’. You will have to use a separate `configure.ac` in this case.

### 2.10 Avoiding unnecessary checks and compilations

In some cases, a module is needed by another module only on specific platforms. But when a module is present, its autoconf checks are always executed, and its `Makefile.am` additions are always enabled. So it can happen that some autoconf checks are executed and some source files are compiled, although no other module needs them on this particular platform, just in case some other module would need them.

The option ‘`--conditional-dependencies`’ enables an optimization of configure checks and `Makefile.am` snippets that avoids this. With this option, whether a module is considered “present” is no longer decided when `gnulib-tool` is invoked, but later, when `configure` is run. This applies to modules that were added as dependencies while `gnulib-tool` was run; modules that were passed on the command line explicitly are always “present”.

For example, the `timegm` module needs, on platforms where the system’s `timegm` function is missing or buggy, a replacement that is based on a function `mktime_internal`. The module `mktime-internal` that provides this function provides it on all platforms. So, by default, the file `mktime-internal.c` will be compiled on all platforms — even on glibc and BSD systems which have a working `timegm` function. When the option ‘`--conditional-dependencies`’ is given, on the other hand, and if `mktime-internal` was not explicitly required on the command line, the file `mktime-internal.c` will only be compiled on the platforms where the `timegm` needs them.

Conditional dependencies are specified in the module description by putting the condition on the same line as the dependent module, enclosed in brackets. The condition is a boolean shell expression that can assume that the `configure.ac` snippet from the module description has already been executed. In the example above, the dependency from `timegm` to `mktime-internal` is written like this:

    Depends-on:
    ...
    mktime-internal [test $HAVE_TIMEGM = 0 || test $REPLACE_TIMEGM = 1]
    ...

Note: The option ‘`--conditional-dependencies`’ cannot be used together with the option ‘`--with-tests`’. It also cannot be used when a package uses `gnulib-tool` for several subdirectories, with different values of ‘`--source-base`’, in the scope of a single `configure.ac` file.

## 3 Writing modules

This chapter explains how to write modules of your own, either to extend Gnulib for your own package (see Extending Gnulib), or for inclusion in gnulib proper.

The guidelines in this chapter do not necessarily need to be followed for using `gnulib-tool`. They merely represent a set of good practices. Following them will result in a good structure of your modules and in consistency with gnulib.

### 3.1 Source code files

Every API (C functions or variables) provided should be declared in a header file (.h file) and implemented in one or more implementation files (.c files). The separation has the effect that users of your module need to read only the contents of the .h file and the module description in order to understand what the module is about and how to use it - not the entire implementation. Furthermore, users of your module don’t need to repeat the declarations of the functions in their code, and are likely to receive notification through compiler errors if you make incompatible changes to the API (like, adding a parameter or changing the return type of a function).

### 3.2 Header files

The .h file should declare the C functions and variables that the module provides.

The .h file should be stand-alone. That is, it does not require other .h files to be included before. Rather, it includes all necessary .h files by itself.

It is a tradition to use CPP tricks to avoid parsing the same header file more than once, which might cause warnings. The trick is to wrap the content of the header file (say, `foo.h`) in a block, as in:

    #ifndef FOO_H
    # define FOO_H
    ...
    body of header file goes here
    ...
    #endif /* FOO_H */

Whether to use `FOO_H` or `_FOO_H` is a matter of taste and style. The C89 and C99 standards reserve all identifiers that begin with an underscore and either an uppercase letter or another underscore, for any use. Thus, in theory, an application might not safely assume that `_FOO_H` has not already been defined by a library. On the other hand, using `FOO_H` will likely lead the higher risk of collisions with other symbols (e.g., `KEY_H`, `XK_H`, `BPF_H`, which are CPP macro constants, or `COFF_LONG_H`, which is a CPP macro function). Your preference may depend on whether you consider the header file under discussion as part of the application (which has its own namespace for CPP symbols) or a supporting library (that shouldn’t interfere with the application’s CPP symbol namespace).

Adapting C header files for use in C++ applications can use another CPP trick, as in:

    # ifdef __cplusplus
    extern "C"
    {
    # endif
    ...
    body of header file goes here
    ...
    # ifdef __cplusplus
    }
    # endif

The idea here is that `__cplusplus` is defined only by C++ implementations, which will wrap the header file in an ‘`extern "C"`’ block. Again, whether to use this trick is a matter of taste and style. While the above can be seen as harmless, it could be argued that the header file is written in C, and any C++ application using it should explicitly use the ‘`extern "C"`’ block itself. Your preference might depend on whether you consider the API exported by your header file as something available for C programs only, or for C and C++ programs alike.

Note that putting a `#include` in an `extern "C" { ... }` block yields a syntax error in C++ mode on some platforms (e.g., glibc systems with g++ v3.3 to v4.2, AIX, OSF/1, IRIX). For this reason, it is recommended to place the `#include` before the `extern "C"` block.

### 3.3 Implementation files

The .c file or files implement the functions and variables declared in the .h file.

#### Include ordering

Every implementation file must start with ‘`#include <config.h>`’. This is necessary for activating the preprocessor macros that are defined on behalf of the Autoconf macros. Some of these preprocessor macros, such as `_GNU_SOURCE`, would have no effect if defined after a system header file has already been included.

Then comes the ‘`#include "..."`’ specifying the header file that is being implemented. Putting this right after ‘`#include <config.h>`’ has the effect that it verifies that the header file is self-contained.

Then come the system and application headers. It is customary to put all the system headers before all application headers, so as to minimize the risk that a preprocessor macro defined in an application header confuses the system headers on some platforms.

In summary:

- First comes #include <config.h>.
- Second comes the #include "..." specifying the module being implemented.
- Then come all the #include <...> of system or system-replacement headers, in arbitrary order.
- Then come all the #include "..." of gnulib and application headers, in arbitrary order.

### 3.4 Specification

The specification of a function should answer at least the following questions:

- What is the purpose of the function?
- What are the arguments?
- What is the return value?
- What happens in case of failure? (Exit? A specific return value? Errno set?)
- Memory allocation policy: If pointers to memory are returned, are they freshly allocated and supposed to be freed by the caller?

Where to put the specification describing exported functions? Three practices are used in gnulib:

- The specification can be as comments in the header file, just above the function declaration.
- The specification can be as comments in the implementation file, just above the function definition.
- The specification can be in texinfo format, so that it gets included in the gnulib manual.

In any case, the specification should appear in just one place, unless you can ensure that the multiple copies will always remain identical.

The advantage of putting it in the header file is that the user only has to read the include file normally never needs to peek into the implementation file(s).

The advantage of putting it in the implementation file is that when reviewing or changing the implementation, you have both elements side by side.

The advantage of texinfo formatted documentation is that it is easily published in HTML or Info format.

Currently (as of 2010), half of gnulib uses the first practice, nearly half of gnulib uses the second practice, and a small minority uses the texinfo practice.

### 3.5 Module description

For the module description, you can start from an existing module’s description, or from a blank one: `module/TEMPLATE` for a normal module, or `module/TEMPLATE-TESTS` for a unit test module. Some more fields are possible but rarely used. Use `module/TEMPLATE-EXTENDED` if you want to use one of them.

Module descriptions have the following fields. Absent fields are equivalent to fields with empty contents.

Description

  This field should contain a concise description of the module’s functionality. One sentence is enough. For example, if it defines a single function ‘`frob`’, the description can be ‘`frob() function: frobnication.`’ Gnulib’s documentation generator will automatically convert the first part to a hyperlink when it has this form.

Status

  This field is either empty/absent, or contains the word ‘`obsolete`’. In the latter case, `gnulib-tool` will, unless the option `--with-obsolete` is given, omit it when it used as a dependency. It is good practice to also notify the user about an obsolete module. This is done by putting into the ‘`Notice`’ section (see below) text like ‘`This module is obsolete.`’

Notice

  This field contains text that `gnulib-tool` will show to the user when the module is used. This can be a status indicator like ‘`This module is obsolete.`’ or additional advice. Do not abuse this field.

Applicability

  This field is either empty/absent, or contains the word ‘`all`’. It describes to which `Makefile.am` the module is applied. By default, a normal module is applied to `source_base/Makefile.am` (normally `lib/Makefile.am`), whereas a module ending in `-tests` is applied to `tests_base/Makefile.am` (normally `tests/Makefile.am`). If this field is ‘`all`’, it is applied to both `Makefile.am`s. This is useful for modules which provide Makefile.am macros rather than compiled source code.

Files

  This field contains a newline separated list of the files that are part of the module. `gnulib-tool` copies these files into the package that uses the module.

  This list is typically ordered by importance: First comes the header file, then the implementation files, then other files.

  It is possible to have the same file mentioned in multiple modules. That is, if the maintainers of that module agree on the purpose and future of said file.

Depends-on

  This field contains a newline separated list of the modules that are required for the proper working of this module. `gnulib-tool` includes each required module automatically, unless it is specified with option `--avoid` or it is marked as obsolete and the option `--with-obsolete` is not given.

  A test modules `foo-tests` implicitly depends on the corresponding non-test module `foo`. `foo` implicitly depends on `foo-tests` if the latter exists and if the option `--with-tests` has been given.

  Tests modules can depend on non-tests modules. Non-tests modules should not depend on tests modules. (Recall that tests modules are built in a separate directory.)

  Each listed required module may be declared a conditional dependency. This is indicated by placing the condition for the dependency on the same line, enclosed in brackets, after the name of the required module. The condition is a shell expression that is run after the module’s `configure.ac` statements. For example:

      strtoull   [test $ac_cv_func_strtoumax = no]

  Lines starting with `#` are recognized as comments and are ignored.

configure.ac-early

  This field contains `configure.ac` stuff (Autoconf macro invocations and shell statements) that are logically placed early in the `configure.ac` file: right after the `AC_PROG_CC` invocation. This section is adequate for statements that modify `CPPFLAGS`, as these can affect the results of other Autoconf macros.

configure.ac

  This field contains `configure.ac` stuff (Autoconf macro invocations and shell statements).

  It is forbidden to add items to the `CPPFLAGS` variable here, other than temporarily, as these could affect the results of other Autoconf macros.

  We avoid adding items to the `LIBS` variable, other than temporarily. Instead, the module can export an Autoconf-substituted variable that contains link options. The user of the module can then decide to which executables to apply which link options. Recall that a package can build executables of different kinds and purposes; having all executables link against all libraries is inappropriate.

  If the statements in this section grow larger than a couple of lines, we recommend moving them to a `.m4` file of their own.

Makefile.am

  This field contains `Makefile.am` statements. Variables like `lib_SOURCES` are transformed to match the name of the library being built in that directory. For example, `lib_SOURCES` may become `libgnu_a_SOURCES` (for a plain library) or `libgnu_la_SOURCES` (for a libtool library). Therefore, the normal way of having an implementation file `lib/foo.c` compiled unconditionally is to write

      lib_SOURCES += foo.c

Include

  This field contains the preprocessor statements that users of the module need to add to their source code files. Typically it’s a single include statement. A shorthand is allowed: You don’t need to write the word “#include”, just the name of the include file in the way it will appear in an include statement. Example:

      "foo.h"

Link

  This field contains the set of libraries that are needed when linking libraries or executables that use this module. Often this will be written as a reference to a Makefile variable. Please write them one per line, so that `gnulib-tool` can remove duplicates when presenting a summary to the user. Example:

      $(POW_LIBM)
      $(LTLIBICONV) when linking with libtool, $(LIBICONV) otherwise

License

  This field specifies the license that governs the source code parts of this module. See Copyright for details.

Maintainer

  This field specifies the persons who have a definitive say about proposed changes to this module. You don’t need to mention email addresses here: they can be inferred from the `ChangeLog` file.

  Please put at least one person here. We don’t like unmaintained modules.

### 3.6 Autoconf macros

For a module `foo`, an Autoconf macro file `m4/foo.m4` is typically created when the Autoconf macro invocations for the module are longer than one or two lines.

The name of the main entry point into this Autoconf macro file is typically `gl_FOO`. For modules outside Gnulib that are not likely to be moved into Gnulib, please use a prefix specific to your package: `gt_` for GNU gettext, `cu_` for GNU coreutils, etc.

For modules that define a function `foo`, the entry point is called `gl_FUNC_FOO` instead of `gl_FOO`. For modules that provide a header file with multiple functions, say `foo.h`, the entry point is called `gl_FOO_H` or `gl_HEADER_FOO_H`. This convention is useful because sometimes a header and a function name coincide (for example, `fcntl` and `fcntl.h`).

For modules that provide a replacement, it is useful to split the Autoconf macro into two macro definitions: one that detects whether the replacement is needed and requests the replacement using `AC_LIBOBJ` (this is the entry point, say `gl_FUNC_FOO`), and one that arranges for the macros needed by the replacement code `lib/foo.c` (typically called `gl_PREREQ_FOO`). The reason of this separation is

1. to make it easy to update the Autoconf macros when you have modified the source code file: after changing `lib/foo.c`, all you have to review is the `Depends-on` section of the module description and the `gl_PREREQ_FOO` macro in the Autoconf macro file.
2. The Autoconf macros are often large enough that splitting them eases maintenance.

### 3.7 Unit test modules

A unit test that is a simple C program usually has a module description as simple as this:

    Files:
    tests/test-foo.c
    tests/macros.h

    Depends-on:

    configure.ac:

    Makefile.am:
    TESTS += test-foo
    check_PROGRAMS += test-foo

The test program `tests/test-foo.c` often has the following structure:

- First comes the obligatory ‘`#include <config.h>`’.
- Second comes the include of the header file that declares the API being tested. Including it here verifies that said header file is self-contained.
- Then come other includes. In particular, the file `macros.h` is often used here. It contains a convenient `ASSERT` macro.

The body of the test, then, contains many `ASSERT` invocations. When a test fails, the `ASSERT` macro prints the line number of the failing statement, thus giving you, the developer, an idea of which part of the test failed, even when you don’t have access to the machine where the test failed and the reporting user cannot run a debugger.

Sometimes it is convenient to write part of the test as a shell script. (For example, in areas related to process control or interprocess communication, or when different locales should be tried.) In these cases, the typical module description is like this:

    Files:
    tests/test-foo.sh
    tests/test-foo.c
    tests/macros.h

    Depends-on:

    configure.ac:

    Makefile.am:
    TESTS += test-foo.sh
    TESTS_ENVIRONMENT += FOO_BAR='@FOO_BAR@'
    check_PROGRAMS += test-foo

Here, the `TESTS_ENVIRONMENT` variable can be used to pass values determined by `configure` or by the `Makefile` to the shell script, as environment variables. The values of `EXEEXT` and of `srcdir`, from Autoconf and Automake, are already provided as environment variables, through an initial value of `TESTS_ENVIRONMENT` that `gnulib-tool` puts in place.

Regardless of the specific form of the unit test, the following guidelines should be respected:

- A test indicates success by exiting with exit code 0. It should normally not produce output in this case. (Output to temporary files that are cleaned up at the end of the test are possible, of course.)
- A test indicates failure by exiting with an exit code different from 0 and 77, typically 1. It is useful to print a message about the failure in this case. The `ASSERT` macro already does so.
- A test indicates "skip", that is, that most of its interesting functionality could not be performed, through a return code of 77. A test should also print a message to stdout or stderr about the reason for skipping. For example:

        fputs ("Skipping test: multithreading not enabled\n", stderr);
        return 77;

  Such a message helps detecting bugs in the autoconf macros: A simple message ‘`SKIP: test-foo`’ does not sufficiently catch the attention of the user.

### 3.8 Incompatible changes

Incompatible changes to Gnulib modules should be mentioned in Gnulib’s `NEWS` file. Incompatible changes here mean that existing source code may not compile or work any more.

We don’t mean changes in the binary interface (ABI), since

1. Gnulib code is used in source-code form.
2. The user who distributes libraries that contain Gnulib code is supposed to bump the version number in the way described in the Libtool documentation before every release.

## 4 Extending Gnulib

Gnulib modules are intended to be suitable for widespread use. Most problems with Gnulib can and should be fixed in a generic way, so that all of Gnulib’s users can benefit from the change. But occasionally a problem arises that is difficult or undesirable to fix generically, or a project that uses Gnulib may need to work around an issue before the Gnulib maintainers commit a final fix. Maintainers may also want to add their own pools of modules to projects as Gnulib “staging areas.”

The obvious way to make local changes to Gnulib modules is to use `gnulib-tool` to check out pristine modules, then to modify the results in-place. This works well enough for short-lived experiments. It is harder to keep modified versions of Gnulib modules for a long time, even though Git (or another distributed version control systems) can help out a lot with this during the development process.

Git, however, doesn’t address the distribution issue. When a package “foobar” needs a modified version of, say, `stdint.in.h`, it either has to put a comment into `foobar/autogen.sh` saying “Attention! This doesn’t work with a pristine Gnulib, you need this and that patch after checking out Gnulib,” or it has to use the ‘`--avoid=stdint`’ option and provide the modified `stdint` module in a different directory.

The `--local-dir` option to `gnulib-tool` solves this problem. It allows the package to override or augment Gnulib. This means:

- You can store files that are to override Gnulib files or modules.
- You can store context diffs to be applied to Gnulib files.
- You can add modules of your own, that are not (yet) in Gnulib.
- You can also add unstructured amounts of code to the library, by grouping the non-Gnulib files of the library in a single kitchen-sink “module.” (This kind of kitchen-sink module is not needed when you use the `gnulib-tool` option ‘`--makefile-name`’.)

In a release tarball, you can distribute the contents of this `--local-dir` directory that will be combinable with newer versions of Gnulib, barring incompatible changes to Gnulib.

If the ‘`--local-dir=directory`’ option is specified, then `gnulib-tool` looks in `directory` whenever it reads a file from the Gnulib directory. Suppose `gnulib-tool` is looking for file. Then:

- If `directory/file` exists, then ‘`gnulib-tool`’ uses it instead of the file included in Gnulib.
- Otherwise, if `directory/file.diff` exists, then `gnulib-tool` uses the file from Gnulib after applying the diff using the `patch` program.
- Otherwise, `gnulib-tool` uses the file included in Gnulib.

Please make wise use of this option. It also allows you to easily hold back modifications you make to Gnulib macros in cases it may be better to share them.

## 5 Miscellaneous Notes

### 5.1 Out of memory handling

The gnulib API does not have a standard error code for the out of memory error condition. Instead of adding a non-standard error code, gnulib has chosen to adopt a different strategy. Out of memory handling happens in rare situations, but performing the out of memory error handling after almost all API function invocations pollute your source code and might make it harder to spot more serious problems. The strategy chosen improves code readability and robustness.

For most applications, aborting the application with an error message when the out of memory situation occurs is the best that can be wished for. This is how the library behaves by default (using the ‘`xalloc-die`’ module).

However, we realize that some applications may not want to abort execution in any situation. Gnulib supports a hook to let the application regain control and perform its own cleanups when an out of memory situation has occurred. The application can define a function (having a `void` prototype, i.e., no return value and no parameters) and set the library variable `xalloc_die` to that function. The variable should be declared as follows.

    extern void (*xalloc_die) (void);

Gnulib will invoke this function if an out of memory error occurs. Note that the function should not return. Of course, care must be taken to not allocate more memory, as that will likely also fail.

### 5.2 Obsolete modules

Modules can be marked obsolete. This means that the problems they fix don’t occur any more on the platforms that are reasonable porting targets now. `gnulib-tool` warns when obsolete modules are mentioned on the command line, and by default ignores dependencies from modules to obsolete modules. When you pass the option `--with-obsolete` to `gnulib-tool`, dependencies to obsolete modules will be included, however, unless blocked through an `--avoid` option. This option is useful if your package should be portable even to very old platforms.

In order to mark a module obsolete, you need to add this to the module description:

    Status:
    obsolete

    Notice:
    This module is obsolete.

### 5.3 Extra tests modules

Test modules can be marked with some special status attributes. When a test module has such an attribute, `gnulib-tool --import` will not include it by default.

The supported status attributes are:

`c++-test`

  Indicates that the test is testing C++ interoperability. Such a test is useful in a C++ or mixed C/C++ package, but is useless in a C package.

`longrunning-test`

  Indicates that the test takes a long time to compile or execute (more than five minutes or so). Such a test is better avoided in a release that is made for the general public.

`privileged-test`

  Indicates that the test will request special privileges, for example, ask for the superuser password. Such a test may hang when run non-interactively and is therefore better avoided in a release that is made for the general public.

`unportable-test`

  Indicates that the test is known to fail on some systems, and that there is no workaround about it. Such a test is better avoided in a release that is made for the general public.

`gnulib-tool --import --with-tests` will not include tests marked with these attributes by default. When `gnulib-tool` is invoked with one of the options `--with-c++-tests`, `--with-longrunning-tests`, `--with-privileged-tests`, `--with-unportable-tests`, it will include tests despite the corresponding special status attribute. When `gnulib-tool` receives the option `--with-all-tests`, it will include all tests regardless of their status attributes.

`gnulib-tool --create-testdir --with-tests` and `gnulib-tool --create-megatestdir --with-tests` by default include all tests of modules specified on the command line, regardless of their status attributes. Tests of modules occurring as dependencies are not included by default if they have one of these status attributes. The options `--with-c++-tests`, `--with-longrunning-tests`, `--with-privileged-tests`, `--with-unportable-tests` are recognized here as well. Additionally, `gnulib-tool` also understands the options `--without-c++-tests`, `--without-longrunning-tests`, `--without-privileged-tests`, `--without-unportable-tests`.

In order to mark a module with a status attribute, you need to add it to the module description, like this:

    Status:
    longrunning-test

If only a part of a test deserves a particular status attribute, you can split the module into a primary and a secondary test module, say `foo-tests` and `foo-extra-tests`. Then add a dependency from `foo-tests` to `foo-extra-tests`, and mark the `foo-extra-tests` with the particular status attribute.

### 5.4 A C++ namespace for gnulib

The function definitions provided by Gnulib (`.c` code) are meant to be compiled by a C compiler. The header files (`.h` files), on the other hand, can be used in either C or C++.

By default, when used in a C++ compilation unit, the `.h` files declare the same symbols and overrides as in C mode, except that functions defined by Gnulib or by the system are declared as ‘`extern "C"`’.

It is also possible to indicate to Gnulib to provide many of its symbols in a dedicated C++ namespace. If you define the macro `GNULIB_NAMESPACE` to an identifier, many functions will be defined in the namespace specified by the identifier instead of the global namespace. For example, after you have defined

    #define GNULIB_NAMESPACE gnulib

at the beginning of a compilation unit, Gnulib’s `<fcntl.h>` header file will make available the `open` function as `gnulib::open`. The symbol `open` will still refer to the system’s `open` function, with its platform specific bugs and limitations.

The symbols provided in the Gnulib namespace are those for which the corresponding header file contains a `_GL_CXXALIAS_RPL` or `_GL_CXXALIAS_SYS` macro invocation.

The benefits of this namespace mode are:

- Gnulib defines fewer symbols as preprocessor macros. For example, on a platform where `open` has to be overridden, Gnulib normally does `#define open rpl_open`. If your package has a class with a member `open`, for example a class `foo` with a method `foo::open`, then if you define this member in a compilation unit that includes `<fcntl.h>` and use it in a compilation unit that does not include `<fcntl.h>`, or vice versa, you will get a link error. Worse: You will not notice this problem on the platform where the system’s `open` function works fine. This problem goes away in namespace mode.
- It provides a safety check whether the set of modules your package requests from Gnulib is sufficient. For example, if you use the function `gnulib::open` in your code, and you forgot to request the module ‘`open`’ from Gnulib, you will get a compilation error (regardless of the platform).

The drawback of this namespace mode is that the system provided symbols in the global namespace are still present, even when they contain bugs that Gnulib fixes. For example, if you call `open (...)` in your code, it will invoke the possibly buggy system function, even if you have requested the module ‘`open`’ from gnulib-tool.

You can turn on the namespace mode in some compilation units and keep it turned off in others. This can be useful if your package consists of an application layer that does not need to invoke POSIX functions and an operating system interface layer that contains all the OS function calls. In such a situation, you will want to turn on the namespace mode for the application layer — to avoid many preprocessor macro definitions — and turn it off for the OS interface layer — to avoid the drawback of the namespace mode, mentioned above.

### 5.5 Library version handling

The module ‘`check-version`’ can be useful when your gnulib application is a system library. You will typically wrap the call to the `check_version` function through a library API, your library header file may contain:

    #define STRINGPREP_VERSION "0.5.18"
    ...
      extern const char *stringprep_check_version (const char *req_version);

To avoid ELF symbol collisions with other libraries that use the ‘`check-version`’ module, add to `config.h` through a AC_DEFINE something like:

    AC_DEFINE(check_version, stringprep_check_version,
              [Rename check_version.])

The `stringprep_check_version` function will thus be implemented by the `check_version` module.

There are two uses of the interface. The first is a way to provide for applications to find out the version number of the library it uses. The application may contain diagnostic code such as:

      printf ("Stringprep version: header %s library %s",
              STRINGPREP_VERSION,
              stringprep_check_version (NULL));

Separating the library and header file version can be useful when searching for version mismatch related problems.

The second uses is as a rudimentary test of proper library version, by making sure the application get a library version that is the same, or newer, than the header file used when building the application. This doesn’t catch all problems, libraries may change backwards incompatibly in later versions, but enable applications to require a certain minimum version before it may proceed.

Typical uses look like:

           /* Check version of libgcrypt. */
           if (!gcry_check_version (GCRYPT_VERSION))
             die ("version mismatch\n");

### 5.6 Windows sockets

There are several issues when building applications that should work under Windows. The most problematic part is for applications that use sockets.

Hopefully, we can add helpful notes to this section that will help you port your application to Windows using gnulib.

#### 5.6.1 Getaddrinfo and WINVER

This was written for the getaddrinfo module, but may be applicable to other functions too.

The getaddrinfo function exists in ws2tcpip.h and -lws2_32 on Windows XP. The function declaration is present if `WINVER >= 0x0501`. Windows 2000 does not have getaddrinfo in its `WS2_32.DLL`.

Thus, if you want to assume Windows XP or later, you can add AC_DEFINE(WINVER, 0x0501) to avoid compiling the (partial) getaddrinfo implementation.

If you want to support Windows 2000, don’t do anything. The replacement function will open `WS2_32.DLL` during run-time to see if there is a getaddrinfo function available, and use it when available.

### 5.7 Libtool and Windows

If you want it to be possible to cross-compile your program to MinGW and you use Libtool, you need to put:

    AC_LIBTOOL_WIN32_DLL

in your `configure.ac`. This sets the correct names for the `OBJDUMP`, `DLLTOOL`, and `AS` tools for the build.

If you are building a library, you will also need to pass `-no-undefined` to make sure Libtool produces a DLL for your library. From a `Makefile.am`:

    libgsasl_la_LDFLAGS += -no-undefined

### 5.8 License Texinfo sources

Gnulib provides copies of the GNU GPL, GNU LGPL, and GNU FDL licenses in Texinfo form. (The master location is http://www.gnu.org/licenses/). These Texinfo documents do not have any node names and structures built into them; for your manual, you should `@include` them in an appropriate `@node`.

The conventional name for the GPL node is ‘`Copying`’ and for the FDL ‘`GNU Free Documentation License`’. The LGPL doesn’t seem to have a conventional node name.

Of course the license texts themselves should not be changed at all.

### 5.9 Build robot for gnulib

To simplify testing on a wide set of platforms, gnulib is built on many platforms every day and the results are uploaded to:

http://autobuild.josefsson.org/gnulib/

If you wish to help the gnulib development effort with build logs for your favorite platform, you may perform these steps:

1. Create gnulib directory

   On a machine with recent automake, autoconf, m4 installed and with a gnulib git or cvs checkout (typically a Linux machine), use

       gnulib-tool --create-megatestdir --with-tests --dir=...

   Note: The created directory uses ca. 512 MB on disk.

2. Transfer gnulib directory

   Transfer this directory to a build machine (HP-UX, Cygwin, or whatever). Often it is easier to transfer one file, and this can be achieved by running, inside the directory the following commands:

       ./configure
       make dist

   And then transferring the `dummy-0.tar.gz` file.

3. Build modules

   On the build machine, run ./do-autobuild (or "nohup ./do-autobuild"). It creates a directory `logs/` with a log file for each module.

4. Submit build logs

   Submit each log file to Simon’s site, either through a

       mail `echo gnulib__at__autobuild.josefsson.org | sed -e s/__at__/@/`

   or through netcat

       autobuild-submit logs/*

## 6 Building the ISO C and POSIX Substitutes

This section shows a radically different way to use Gnulib.

You can extract the ISO C / POSIX substitutes part of gnulib by running the command

    gnulib-tool --create-testdir --source-base=lib \
                --dir=/tmp/posixlib `posix-modules`

The command ‘`posix-modules`’ is found in the same directory as `gnulib-tool`.

The resulting directory can be built on a particular platform, independently of the program being ported. Then you can configure and build any program, by setting `CPPFLAGS` and `LDFLAGS` at configure time accordingly: set `CPPFLAGS="-I.../posixlib/lib"`, plus any essential type definitions and flags that you find in `.../posixlib/config.h`, and set `LDFLAGS=".../posixlib/lib/libgnu.a"`.

This way of using Gnulib is useful when you don’t want to modify the program’s source code, or when the program uses a mix between C and C++ sources (requiring separate builds of the `posixlib` for the C compiler and for the C++ compiler).

## 7 ISO C and POSIX Header File Substitutes

This chapter describes which header files specified by ISO C or POSIX are substituted by Gnulib, which portability pitfalls are fixed by Gnulib, and which (known) portability problems are not worked around by Gnulib.

The notation “Gnulib module: —” means that Gnulib does not provide a module providing a substitute for the header file. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this header file important enough to contribute a substitute for it. If you need this particular header file, you may write to `<bug-gnulib at gnu dot org>`.

### 7.1 `aio.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/aio.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.2 `arpa/inet.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/arpa_inet.h.html

Gnulib module: arpa_inet

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 7.3 `assert.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/assert.h.html

Gnulib module: assert-h

See also the Gnulib module `assert`.

Portability problems fixed by Gnulib:

- The C11 and C++11 `static_assert`, and the C11 `_Static_assert`, are not supported by many platforms. For example, GCC versions before 4.6.0 do not support `_Static_assert`, and G++ versions through at least 4.6.0 do not support `static_assert`.

Portability problems not fixed by Gnulib:

- C11 `_Static_assert` and C++11 `static_assert` are keywords that can be used without including `<assert.h>`. The Gnulib substitutes are macros that require including `<assert.h>`.
- The C11 `static_assert` and `_Static_assert` can also be used within a `struct` or `union` specifier, in place of an ordinary declaration of a member of the struct or union. The Gnulib substitute can be used only as an ordinary declaration.
- In C99, `assert` can be applied to any scalar expression. In C89, the argument to `assert` is of type `int`.

### 7.4 `complex.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/complex.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.5 `cpio.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/cpio.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 7.6 `ctype.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/ctype.h.html

Gnulib module: ctype

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 7.7 `dirent.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/dirent.h.html

Gnulib module: dirent

Portability problems fixed by Gnulib:

- The type `ino_t` is missing on some platforms: glibc 2.8 and others.

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MSVC 9.

### 7.8 `dlfcn.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/dlfcn.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 7.9 `errno.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html

Gnulib module: errno

Portability problems fixed by Gnulib:

- The macros `EOVERFLOW`, `ENOLINK`, `EMULTIHOP` are not defined on some platforms: OpenBSD 4.0, OSF/1 5.1, mingw, MSVC 9.
- The macro `ECANCELED` is not defined on some platforms: OpenBSD 4.0, Cygwin, mingw, MSVC 9.
- The macros `ENOMSG`, `EIDRM`, `EPROTO`, `EBADMSG`, `ENOTSUP` are not defined on some platforms: OpenBSD 4.0, mingw, MSVC 9.
- The macro `ESTALE` is not defined on some platforms: mingw, MSVC 9, Interix 3.5.
- The macro `EDQUOT` is not defined on some platforms: NonStop Kernel, mingw, MSVC 9.
- The macros `ENETRESET`, `ECONNABORTED` are not defined on some platforms: Minix 3.1.8, mingw, MSVC 9.
- The macros `EWOULDBLOCK`, `ETXTBSY`, `ELOOP`, `ENOTSOCK`, `EDESTADDRREQ`, `EMSGSIZE`, `EPROTOTYPE`, `ENOPROTOOPT`, `EPROTONOSUPPORT`, `EOPNOTSUPP`, `EAFNOSUPPORT`, `EADDRINUSE`, `EADDRNOTAVAIL`, `ENETDOWN`, `ENETUNREACH`, `ECONNRESET`, `ENOBUFS`, `EISCONN`, `ENOTCONN`, `ETIMEDOUT`, `ECONNREFUSED`, `EHOSTUNREACH`, `EALREADY`, `EINPROGRESS` are not defined on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 7.10 `fcntl.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html

Gnulib module: fcntl-h

Portability problems fixed by Gnulib:

- The type `pid_t` is not defined on some platforms: MSVC 9.
- The type `mode_t` is not defined on some platforms: MSVC 9.
- ‘`O_CLOEXEC`’, ‘`O_DIRECTORY`’, ‘`O_DSYNC`’, ‘`O_NOCTTY`’, ‘`O_NOFOLLOW`’, ‘`O_RSYNC`’, ‘`O_SYNC`’, and ‘`O_TTY_INIT`’ are not defined on some platforms. Gnulib defines these macros to 0, which is generally safe.
- ‘`O_NONBLOCK`’ is not defined on some platforms. If the ‘`nonblocking`’ module is in use, gnulib guarantees a working non-zero value; otherwise, the gnulib replacement is 0.
- ‘`O_EXEC`’ and ‘`O_SEARCH`’ are not defined on some platforms. Gnulib defines these macros to ‘`O_RDONLY`’, which is typically 0.
- ‘`O_ACCMODE`’ is not defined on some platforms: MSVC 9.
- The ‘`O_ACCMODE`’ mask mistakenly omits ‘`O_SEARCH`’ and ‘`O_EXEC`’ on some platforms: Cygwin.
- ‘`O_BINARY`’, ‘`O_TEXT`’ (not specified by POSIX, but essential for portability to native Windows platforms) are defined on some platforms but not on others.
- ‘`O_DIRECT`’, ‘`O_NDELAY`’, ‘`O_NOATIME`’, and ‘`O_NOLINKS`’ (not specified by POSIX) are defined on some platforms but not on others.
- ‘`FD_CLOEXEC`’, ‘`F_DUPFD`’, and ‘`F_GETFD`’ are not defined on some platforms: mingw, MSVC 9.
- ‘`F_DUPFD_CLOEXEC`’ is not defined on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS.
- ‘`AT_FDCWD`’, ‘`AT_EACCESS`’, ‘`AT_SYMLINK_NOFOLLOW`’, ‘`AT_SYMLINK_FOLLOW`’, and ‘`AT_REMOVEDIR`’ are not defined on many platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- ‘`AT_FDCWD`’ is defined with a value too large for an `int` on some platforms: Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

- ‘`F_SETFD`’, ‘`F_GETFL`’, ‘`F_SETFL`’, ‘`F_GETLK`’, ‘`F_SETLK`’, ‘`F_SETLOKW`’, ‘`F_GETOWN`’, and ‘`F_SETOWN`’ are not defined on some platforms: mingw, MSVC 9.
- ‘`POSIX_FADV_DONTNEED`’, ‘`POSIX_FADV_NOREUSE`’, ‘`POSIX_FADV_NORMAL`’, ‘`POSIX_FADV_RANDOM`’, ‘`POSIX_FADV_SEQUENTIAL`’, and ‘`POSIX_FADV_WILLNEED`’ are not defined on some platforms.

### 7.11 `fenv.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/fenv.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.7, MSVC 9, Interix 3.5, BeOS.

### 7.12 `float.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/float.h.html

Gnulib module: float

Portability problems fixed by Gnulib:

- The conversion from `int` to `long double` in incorrect on some platforms: glibc 2.7 on Linux/SPARC64.
- The values of `LDBL_*` macros are incorrect on some platforms: On OpenBSD 4.0, MirBSD 10, and BeOS, they are the same as the values of the `DBL_*` macros, although ‘`long double`’ is a larger type than ‘`double`’. On FreeBSD/x86 6.4, they represent the incorrect 53-bit precision assumptions in the compiler, not the real 64-bit precision at runtime. On Linux/PowerPC with GCC 4.4, on AIX 7.1 with GCC 4.2, and on IRIX 6.5, they don’t reflect the “double double” representation of `long double` correctly.

Portability problems not fixed by Gnulib:

- The macro `FLT_ROUNDS` is a constant expression and does not represent the current rounding mode on some platforms: glibc 2.11, HP-UX 11, mingw.

### 7.13 `fmtmsg.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/fmtmsg.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.14 `fnmatch.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/fnmatch.h.html

Gnulib module: fnmatch-posix or fnmatch-gnu

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 7.15 `ftw.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/ftw.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 7.16 `glob.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/glob.h.html

Gnulib module: glob

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 7.17 `grp.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/grp.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.

### 7.18 `iconv.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/iconv.h.html

Gnulib module: iconv

Portability problems fixed by Gnulib:

- The <iconv.h> from GNU libiconv is not found if installed in `$PREFIX/include`.

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS, when GNU libiconv is not installed.

### 7.19 `inttypes.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/inttypes.h.html

Gnulib module: inttypes

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: OSF/1 4.0, MSVC 9, Interix 3.5.
- This header file is very incomplete on some platforms.
- The PRI* macros are defined to non-string values on AIX 4.3.3.
- The declarations of `imaxabs` and `imaxdiv` are missing on some platforms: NetBSD 3.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, BeOS.
- The declarations of `strtoimax` and `strtoumax` are missing on some platforms: OpenBSD 3.8, AIX 4.3.2, AIX 5.1 (missing only `strtoumax`), OSF/1 5.1.
- On some hosts that predate C++11, when using C++ one must define `__STDC_FORMAT_MACROS` to make visible the declarations of format macros such as `PRIdMAX`.

Portability problems not fixed by Gnulib:

### 7.20 `iso646.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/iso646.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, BeOS.

### 7.21 `langinfo.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/langinfo.h.html

Gnulib module: langinfo

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- The constant `CODESET` is not defined on some platforms: glibc 2.0.6, OpenBSD 3.8.
- The constants `ERA`, `ERA_D_FMT`, `ERA_D_T_FMT`, `ERA_T_FMT`, `ALT_DIGITS` are not defined on some platforms: OpenBSD 3.8.
- The constants `T_FMT_AMPM`, `YESEXPR`, `NOEXPR` are not defined on some platforms: IRIX 5.3.

Portability problems not fixed by Gnulib:

### 7.22 `libgen.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/libgen.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.23 `limits.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html

Gnulib module: gethostname

Portability problems fixed by Gnulib:

- The `HOST_NAME_MAX` macro is not defined on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

- The macros `LLONG_MIN`, `LLONG_MAX`, `ULLONG_MAX` are not defined on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1 with gcc.
- The macros `WORD_BIT`, `LONG_BIT` are not defined on some platforms: glibc 2.11 without `-D_GNU_SOURCE`, Cygwin, mingw, MSVC 9.
- The macro `SSIZE_MAX` is not defined on some platforms: MSVC 9.

For `PATH_MAX`, Gnulib provides a module `pathmax` with a header file `"pathmax.h"`. It defines `PATH_MAX` to a constant on platforms with a file name length limit.

### 7.24 `locale.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/locale.h.html

Gnulib module: locale

Portability problems fixed by Gnulib:

- The definition of ‘`LC_MESSAGES`’ is missing on some platforms: mingw, MSVC 9.
- The `locale_t` type is not defined on some platforms: glibc 2.11, MacOS X 10.5.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

### 7.25 `math.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/math.h.html

Gnulib module: math

Portability problems fixed by Gnulib:

- The conversion from `int` to `long double` in incorrect on some platforms: glibc 2.7 on Linux/SPARC64.
- The macro `NAN` is not defined on some platforms: OpenBSD 4.0, AIX 5.1, IRIX 6.5, OSF/1 5.1.
- The macro `NAN` is not exposed outside of C99 compilation on some platforms: glibc.
- The macros `NAN` and `HUGE_VAL` expand to a function address rather than a floating point constant on some platforms: Solaris 10.
- The macros `HUGE_VALF` and `HUGE_VALL` are not defined on some platforms: glibc/HPPA, glibc/SPARC, AIX 5.1, IRIX 6.5, Solaris 9, MSVC 9.

Portability problems not fixed by Gnulib:

- `NAN` is not a compile time constant with some compilers: OSF/1 with Compaq (ex-DEC) C 6.4.
- The macro or variable `math_errhandling` is not defined on some platforms: glibc 2.11, OpenBSD 4.9, NetBSD 5.1, UP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.9, mingw, MSVC 9.

### 7.26 `monetary.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/monetary.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 7.27 `mqueue.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/mqueue.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.28 `ndbm.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/ndbm.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.29 `net/if.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/net_if.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, Interix 3.5, BeOS.

### 7.30 `netdb.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/netdb.h.html

Gnulib module: netdb

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.
- This header file is incomplete on some platforms: Cygwin 1.5.x, Haiku.
- This header file does not define the type `socklen_t` on some platforms: HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS.
- This header file does not define `AI_ALL`, `AI_V4MAPPED`, `AI_ADDRCONFIG` on some platforms: NetBSD 5.0.

Portability problems not fixed by Gnulib:

### 7.31 `netinet/in.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/netinet_in.h.html

Gnulib module: netinet_in

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.
- This header file is not self-contained on some platforms (it requires `<sys/types.h>` to be included first): OpenBSD 4.6.

Portability problems not fixed by Gnulib:

### 7.32 `netinet/tcp.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/netinet_tcp.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.33 `nl_types.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/nl_types.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 7.34 `poll.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html

Gnulib module: poll-h

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- This header file does not defined `nfds_t` on some platforms: IRIX 5.3.

### 7.35 `pthread.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/pthread.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 7.36 `pwd.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/pwd.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.

### 7.37 `regex.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/regex.h.html

Gnulib module: regex

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This header file is not self-contained on some platforms: it requires `<sys/types.h>` to be included first.

### 7.38 `sched.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sched.h.html

Gnulib module: sched

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- This header file does not define the type `pid_t` on some platforms: glibc 2.11, MacOS X 10.5.
- `struct sched_param` is not defined on some platforms: Haiku.
- `SCHED_FIFO`, `SCHED_RR`, `SCHED_OTHER` are not defined on some platforms: Haiku.

Portability problems not fixed by Gnulib:

### 7.39 `search.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/search.h.html

Gnulib module: search

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, BeOS.

### 7.40 `semaphore.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/semaphore.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 7.41 `setjmp.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/setjmp.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 7.42 `signal.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/signal.h.html

Gnulib module: signal-h

Portability problems fixed by Gnulib:

- `volatile sig_atomic_t` is rejected by older compilers on some platforms: AIX.
- `sigset_t` is missing on some platforms: MSVC 9.
- `sigset_t` is only declared in <sys/types.h> on some platforms: mingw.
- `struct sigaction` and `siginfo_t` are missing on some platforms: mingw, MSVC 9.
- `struct sigaction` lacks the `sa_sigaction` member on some platforms: Irix 5.3, Interix 3.5.
- The type `pid_t` is not defined on some platforms: MSVC 9.
- The signal `SIGPIPE` is not defined on some platforms: mingw, MSVC 9.
- The macro `SA_NODEFER` is not defined on some platforms: Interix 3.5.
- The macros `SA_RESETHAND` and `SA_RESTART` are not defined on some platforms: NonStop.
- The type `sighandler_t` (a GNU extension) is not defined on most non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

- Many signals are not defined on some platforms: mingw, MSVC 9.
- The macros `SIGRTMIN` and `SIGRTMAX` expand to an expression of type `long` instead of `int` on some platforms: OSF/1 5.1.
- The macro `SIGBUS` is set to the same value as `SIGSEGV`, rather than being a distinct signal, on some platforms: Haiku.

### 7.43 `spawn.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/spawn.h.html

Gnulib module: spawn

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 7.44 `stdalign.h`

POSIX specification:
Not in POSIX yet, but we expect it will be. ISO C11 (latest free draft http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf) sections 6.5.3.4, 6.7.5, 7.15. C++11 (latest free draft http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf) section 18.10.

Gnulib module: stdalign

Portability problems fixed by Gnulib:

- This header file is missing on most circa-2011 platforms.
- Clang 3.0’s `<stdalign.h>` does not define `alignof`/`_Alignof`.
- The `alignof` and `_Alignof` macros return too large values for the types `double` and `long long` in GCC 4.7.0.

Portability problems not fixed by Gnulib:

- `_Alignas` and `alignas` are not always supported; on platforms lacking support, the macro `__alignas_is_defined` is not defined. Supported compilers include GCC, IBM C, Sun C 5.11 and later, and MSVC 7.0 and later.
- Some compilers do not support alignment via `alignas`/`_Alignas` of `auto` variables (i.e., variables on the stack). They diagnose and ignore the alignment: Sun C 5.11.
- Some linkers do not support operands of `_Alignas`/`alignas` that are greater than 8: mingw.
- Some compilers require the operand of `_Alignas`/`alignas` to be a single integer constant, not an expression: MSVC 7.0 through at least 10.0.
- The Sun C 5.11 compiler sometimes mishandles the alignment of multiple external variables that are declared close together with `_Alignas`/`alignas`. This compiler bug causes the Gnulib module `stdalign-tests` to fail. The Sun Studio Developer Bug Report Review Team assigned the internal review ID 2125432 (dated 2011-11-01) to this issue.
- `<stdalign.h>` must be #included before `_Alignas` and `_Alignof` can be used.
- You cannot assume that `_Alignas` and `_Alignof` are reserved words; they might be macros.

### 7.45 `stdarg.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdarg.h.html

Gnulib module: stdarg

Portability problems fixed by Gnulib:

- Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode for the builtin `va_copy` to work.

Portability problems not fixed by Gnulib:

### 7.46 `stdbool.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdbool.h.html

Gnulib module: stdbool

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1.
- Some compilers have bugs relating to ‘`bool`’.
- This header file defines `true` incorrectly on some platforms: OpenBSD 4.7 with gcc 2.95.

Portability problems not fixed by Gnulib:

- `<stdbool.h>` must be #included before ‘`_Bool`’ can be used.
- You cannot assume that `_Bool` is a typedef; it might be a macro.
- Bit-fields of type ‘`bool`’ are not supported. Portable code should use ‘`unsigned int foo : 1;`’ rather than ‘`bool foo : 1;`’.
- Casts and automatic conversions to ‘`bool`’ don’t test against the zero value or the null pointer, as they should. Such casts should only be used if the value is known to be equal to 0 or 1.
- You cannot assume that casting a floating point literal to ‘`bool`’ will result in a constant expression.

### 7.47 `stddef.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stddef.h.html

Gnulib module: stddef

Portability problems fixed by Gnulib:

- Some old platforms fail to provide `wchar_t`.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

- Some platforms provide an `offsetof` macro that cannot be used in arbitrary expressions: Solaris 11 2011-11 This problem can be worked around by parenthesizing the `offsetof` expression in the unlikely case you use it with `sizeof` or ‘`[]`’.

### 7.48 `stdint.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdint.h.html

Gnulib module: stdint

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: OpenBSD 3.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, MSVC 9, Interix 3.5, BeOS.
- This header file is very incomplete on some platforms.
- The values of `SIG_ATOMIC_MIN` and `SIG_ATOMIC_MAX` are incorrect on some platforms: FreeBSD 6.2 / ia64.
- The value of `WINT_MAX` is incorrect on some platforms: mingw.
- The values of `INT8_MAX`, `UINT8_MAX` etc. are not usable in preprocessor expressions on some platforms: HP-UX 11.23.
- The macros `WCHAR_MIN` and `WCHAR_MAX` are not defined in `<stdint.h>` (only in `<wchar.h>`) on some platforms: Dragonfly, BSDI.
- On some hosts that predate C++11, when using C++ one must define `__STDC_CONSTANT_MACROS` to make visible the definitions of constant macros such as `INTMAX_C`, and one must define `__STDC_LIMIT_MACROS` to make visible the definitions of limit macros such as `INTMAX_MAX`.

Portability problems not fixed by Gnulib:

- `{uint,int}_fast{8,16,32,64}_t` may not correspond to the fastest types available on the system.
- Macros are used instead of typedefs.
- Some C preprocessors mishandle constants that do not fit in `long int`. For example, as of 2007, Sun C mishandles `#if LLONG_MIN < 0` on a platform with 32-bit `long int` and 64-bit `long long int`. Some older preprocessors mishandle constants ending in `LL`. To work around these problems, compute the value of expressions like `LONG_MAX < LLONG_MAX` at `configure`-time rather than at `#if`-time.

The stdint.h module uses `#include_next`. If you wish to install the generated stdint.h file under another name, typically in order to be able to use some of the types defined by stdint.h in your public header file, you could use the following Makefile.am-snippet:

    BUILT_SOURCES += idn-int.h
    DISTCLEANFILES += idn-int.h
    nodist_include_HEADERS += idn-int.h

    idn-int.h:
    	if test -n "$(STDINT_H)"; then \
    		sed -e s/include_next/include/ gl/stdint.h > idn-int.h; \
    	else \
    		echo '#include <stdint.h>' > idn-int.h; \
    	fi

### 7.49 `stdio.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdio.h.html

Gnulib module: stdio

Portability problems fixed by Gnulib:

- The type `off_t` is missing on some platforms: glibc 2.8, eglibc 2.11.2 and others.
- The type `ssize_t` is missing on some platforms: glibc 2.8, MacOS X 10.5, Solaris 10, MSVC 9, and others.
- The type `va_list` is missing on some platforms: glibc 2.8, OpenBSD 4.0, Solaris 11 2011-11, and others.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

### 7.50 `stdlib.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stdlib.h.html

Gnulib module: stdlib, system-posix

Portability problems fixed by the Gnulib module `stdlib`:

- The macros `EXIT_SUCCESS` and `EXIT_FAILURE` are not defined on some platforms.
- The macro `EXIT_FAILURE` is incorrectly defined on Tandem/NSK.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems fixed by the Gnulib module `system-posix`:

- The macros `WIFSIGNALED`, `WIFEXITED`, `WIFSTOPPED`, `WTERMSIG`, `WEXITSTATUS`, `WNOHANG`, `WUNTRACED`, `WSTOPSIG` are not defined in this header file (only in `<sys/wait.h>`) on some platforms: MirBSD 10.

Portability problems not fixed by Gnulib:

- System status macros such as `WEXITSTATUS` require an lvalue argument on some platforms. MacOS X 10.5.

### 7.51 `stdnoreturn.h`

POSIX specification:
Not in POSIX yet, but we expect it will be. ISO C11 (latest free draft http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf) sections 7.23.

Gnulib module: stdnoreturn

Portability problems fixed by Gnulib:

- This header file is missing on most circa-2012 platforms.

Portability problems not fixed by Gnulib:

- `<stdnoreturn.h>` should be #included before ‘`_Noreturn`’ is used.
- You cannot assume that `_Noreturn` is a reserved word; it might be a macro.
- On MSVC 9, `noreturn` expands to the empty token sequence, to avoid problems with standard headers that use `__declspec (noreturn)` directly. Although the resulting code operates correctly, the compiler is not informed whether `noreturn` functions do not return, so it may generate incorrect warnings at compile-time, or code that is slightly less optimized. This problem does not occur with `_Noreturn`.

### 7.52 `string.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/string.h.html

Gnulib module: string

Portability problems fixed by Gnulib:

- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

### 7.53 `strings.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/strings.h.html

Gnulib module: strings

Portability problems fixed by Gnulib:

- This header file is not self-contained on some platforms: Minix 3.1.8.

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MSVC 9.
- This header file defines symbols, such as ‘`index`’, often used for variables, making debugging harder.

### 7.54 `stropts.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/stropts.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 7.55 `sys/ipc.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_ipc.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.56 `sys/mman.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_mman.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.57 `sys/msg.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_msg.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 7.58 `sys/resource.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_resource.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.
- On some platforms, this header file requires that <sys/types.h> and <sys/time.h> already be included: FreeBSD 5.0.

### 7.59 `sys/select.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_select.h.html

Gnulib module: sys_select

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: HP-UX 11.11, NonStop Kernel, mingw, MSVC 9, BeOS.
- This header file is not self-contained on some platforms: it requires `<sys/types.h>` to be included first.
- This header file does not define `struct timeval` on some platforms: OSF/1 4.0.
- This header file is not self-contained — it requires `<string.h>` before `FD_ZERO` can be used — on some platforms: AIX 7.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 7.60 `sys/sem.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_sem.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.61 `sys/shm.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_shm.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.62 `sys/socket.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html

Gnulib module: sys_socket

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.
- This header file is not self-contained on some platforms: it requires `<sys/types.h>` to be included first.
- This header file does not define the type `socklen_t` on some platforms: HP-UX 10.20, IRIX 6.5, OSF/1 4.0, Interix 3.5, BeOS.
- This header file does not define the type `struct iovec` on some platforms: OpenBSD 4.4.
- This header file is lacking the `SHUT_RD`, `SHUT_WR`, `SHUT_RDWR` macros on some platforms, despite having the `shutdown` functions: emx+gcc.
- The `struct sockaddr_storage` type does not have a member `ss_family` on some platforms: AIX 7.1.

Portability problems not fixed by Gnulib:

- This header file does not declare the `msg_control` and `msg_controllen` members of `struct msghdr` on some platforms. This can be detected by the absence of the `CMSG_FIRSTHDR` macro: gnulib replacement header, old BSD

### 7.63 `sys/stat.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_stat.h.html

Gnulib module: sys_stat

Portability problems fixed by Gnulib:

- The type `mode_t` is not defined on some platforms: MSVC 9.
- Some macros, such as `S_IFMT` or `S_IFIFO`, are missing on some platforms.
- The macros `S_ISBLK`, `S_ISCHR`, `S_ISDIR`, `S_ISFIFO`, `S_ISLNK`, `S_ISREG`, `S_ISSOCK` are broken on some platforms.
- Some platforms define macros, such as `S_ISDOOR`, that are not defined on other platforms.
- The functions `lstat` and `mkdir` are not declared on some platforms: mingw, MSVC 9.
- The macros `UTIME_NOW` and `UTIME_OMIT` are missing on some platforms.
- On some platforms, `struct stat` does not include `st_atim`, `st_mtim`, or `st_ctim` members. Use the gnulib module ‘`stat-time`’ for accessors to portably get at subsecond resolution.

Portability problems not fixed by Gnulib:

- The macro `S_IFBLK` is missing on some platforms: MSVC 9.
- On Windows platforms (excluding Cygwin), `st_ino` is always 0.
- On OpenVMS, `st_ino` is an array of three `ino_t` values, not a single value.
- To partially work around the previous two problems, you can test for nonzero `st_ino` and use the Gnulib `same-inode` module to compare nonzero values. For example, `(a.st_ino && SAME_INODE (a, b))` is true if the `struct stat` values `a` and `b` are known to represent the same file, `(a.st_ino && !SAME_INODE (a, b))` is true if they are known to represent different files, and `!a.st_ino` is true if it is not known whether they represent different files.
- On some platforms, two different files may have the same `st_dev` and `st_ino` values, even when `st_ino` is nonzero:
  - GNU/Linux NFS servers that export all local file systems as a single NFS file system, if a local `st_dev` exceeds 255, or if a local `st_ino` exceeds 16777215.
  - Network Appliance NFS servers in snapshot directories; see Network Appliance bug #195.
  - ClearCase MVFS; see bug id ATRia04618.

  One partial workaround is to compare other file metadata such as `st_mode` and `st_mtime` to detect this bug, but this approach does not work on files whose metadata are being changed by other programs.

- On some file systems, `st_size` contains bogus information for symlinks; use the Gnulib module `areadlink-with-size` for a better way to get symlink contents.

### 7.64 `sys/statvfs.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_statvfs.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, mingw, MSVC 9.

### 7.65 `sys/time.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_time.h.html

Gnulib module: sys_time

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: MSVC 9.
- ‘`struct timeval`’ is not defined on some platforms.
- ‘`struct timeval`’ is defined with an incompatible type for `tv_sec` on some native Windows platforms: mingw64 in 64-bit mode, mingw64 in 32-bit mode when `__MINGW_USE_VC2005_COMPAT` is defined, MSVC 9 in 64-bit mode, MSVC 9 in 32-bit mode when `_USE_32BIT_TIME_T` is not defined.

Portability problems not fixed by Gnulib:

### 7.66 `sys/timeb.h`

POSIX specification:
http://www.opengroup.org/susv3xbd/sys/timeb.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 7.67 `sys/times.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_times.h.html

Gnulib module: sys_times

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 7.68 `sys/types.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html

Gnulib module: sys_types

Portability problems fixed by Gnulib:

- The type `pid_t` is not defined on some platforms: MSVC 9.
- The type `size_t` is not defined in this file on some platforms: MSVC 9.
- The type `ssize_t` is not defined on some platforms: MSVC 9.
- The type `mode_t` is not defined on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

- On some platforms the types `blksize_t` and `suseconds_t` are signed integer types that are wider than `long`: glibc x32

### 7.69 `sys/uio.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_uio.h.html

Gnulib module: sys_uio

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.
- This header file is not self-contained (it requires `<sys/types.h>` to be included first) on some platforms: OpenBSD 4.4.

Portability problems not fixed by Gnulib:

### 7.70 `sys/un.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_un.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.71 `sys/utsname.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_utsname.h.html

Gnulib module: sys_utsname

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.
- This header file is not self-contained on some platforms: Minix 3.1.8.

Portability problems not fixed by Gnulib:

### 7.72 `sys/wait.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_wait.h.html

Gnulib module: sys_wait

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- System status macros such as `WEXITSTATUS` require an lvalue argument on some platforms. MacOS X 10.5.

### 7.73 `syslog.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/syslog.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 7.74 `tar.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/tar.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Cygwin, mingw, MSVC 9, BeOS.

### 7.75 `termios.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/termios.h.html

Gnulib module: termios

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.
- This header does not declare `pid_t` on all platforms: glibc on some architectures, FreeBSD 6.4, OpenBSD 4.9, Cygwin 1.7.11.

Portability problems not fixed by Gnulib:

- The types `struct termios`, `cc_t`, `speed_t`, `tcflag_t` are not defined on some platforms: mingw, MSVC 9.

### 7.76 `tgmath.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/tgmath.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.77 `time.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/time.h.html

Gnulib module: time

Portability problems fixed by Gnulib:

- ‘`struct timespec`’ is not defined on some platforms.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

- On some platforms the `tv_nsec` member of `struct timespec` is not of type `long`, but is of type `long long` instead: glibc x32

### 7.78 `trace.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/trace.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.79 `uchar.h`

Defines the types `char16_t`, `char32_t` and declares the functions `mbrtoc16`, `c16rtomb`, `mbrtoc32`, `c32rtomb`.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 7.80 `ucontext.h`

POSIX specification:
http://www.opengroup.org/susv3xbd/ucontext.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: OpenBSD 3.8, Cygwin, mingw, MSVC 9, BeOS.

### 7.81 `ulimit.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/ulimit.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 7.82 `unistd.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html

Gnulib module: unistd

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: MSVC 9.
- The SEEK_* macros are not defined in this file on some platforms: mingw.
- The *_FILENO macros are not defined in this file on some platforms: OS/2 EMX, mingw.
- The `_exit` function is not declared in this file on some platforms: mingw.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

### 7.83 `utime.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/utime.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MSVC 9. Use `<sys/utime.h>` if `<utime.h>` is missing.

### 7.84 `utmpx.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/utmpx.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 7.85 `wchar.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/wchar.h.html

Gnulib module: wchar

Portability problems fixed by Gnulib:

- This header file cannot be included on some platforms: Linux uClibc built without wide character support.
- This header file is not self-contained on some platforms: OSF/1 with Desktop Toolkit C, BSD/OS 4.0.1.
- The type `wint_t` and macro `WEOF` are missing on some platforms: IRIX 5.3.
- The type `wint_t` is incorrect on some platforms: MSVC 9.
- Some platforms provide a `NULL` macro that cannot be used in arbitrary expressions: NetBSD 5.0

Portability problems not fixed by Gnulib:

- This header file leads to link errors and endless recursions or endless loops on some platforms: glibc version 2.5 or older, together with gcc version 4.3 or newer and the option ‘`-std=c99`’ or ‘`-std=gnu99`’.

### 7.86 `wctype.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/wctype.h.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: HP-UX 11.00, BeOS.
- This header file is not self-contained on some platforms: Solaris 2.5, OSF/1 with Desktop Toolkit C, BSD/OS 4.0.1.
- The type `wint_t` and macro `WEOF` are missing on some platforms: IRIX 5.3.
- The type `wint_t` is incorrect on some platforms: MSVC 9.
- The functions `isw*` are missing on some platforms: FreeBSD 4.11.
- The function `iswblank` is declared but not defined on some platforms: IRIX 6.5.30.
- The functions `isw*` are actually defined as macros that don’t work, on IRIX 5.3.
- This header file defines some identifiers, such as `multibyte`, as macros on some platforms: Solaris 2.6.

Portability problems not fixed by Gnulib:

### 7.87 `wordexp.h`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/wordexp.h.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

## 8 ISO C and POSIX Function Substitutes

This chapter describes which functions and function-like macros specified by ISO C or POSIX are substituted by Gnulib, which portability pitfalls are fixed by Gnulib, and which (known) portability problems are not worked around by Gnulib.

The notation “Gnulib module: —” means that Gnulib does not provide a module providing a substitute for the function. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this function important enough to contribute a substitute for it. If you need this particular function, you may write to `<bug-gnulib at gnu dot org>`.

### 8.1 `FD_CLR`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/FD_CLR.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.2 `FD_ISSET`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/FD_ISSET.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.3 `FD_SET`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/FD_SET.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.4 `FD_ZERO`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/FD_ZERO.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.5 `_Exit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/_Exit.html

Gnulib module: _Exit

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.6 `_exit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/_exit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.7 `_longjmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/_longjmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.5.1, mingw, MSVC 9.

Note: A future revision of POSIX later than the 2008/2009 one may drop the functions `_setjmp` and `_longjmp`. Still, in 2008, on all systems which have `_setjmp`, it is the fastest way to save the registers but not the signal mask (up to 30 times faster than `setjmp` on some systems).

### 8.8 `_setjmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/_setjmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.5.1.

Note: A future revision of POSIX later than the 2008/2009 one may drop the functions `_setjmp` and `_longjmp`. Still, in 2008, on all systems which have `_setjmp`, it is the fastest way to save the registers but not the signal mask (up to 30 times faster than `setjmp` on some systems).

### 8.9 `_tolower`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/_tolower.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8.

### 8.10 `_toupper`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/_toupper.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8.

### 8.11 `a64l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/a64l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, Minix 3.1.8, mingw, MSVC 9, BeOS.
- This function was not correctly implemented in glibc versions before 2.2.5.

### 8.12 `abort`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/abort.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- Some platforms mistakenly close all stdio streams prior to raising SIGABRT: Cygwin 1.5.x.
- Some platforms always print a message to stderr, even if a SIGABRT handler uses longjmp to resume execution at a safe point: mingw, MSVC 9.

### 8.13 `abs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/abs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.14 `accept`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/accept.html

Gnulib module: accept

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), the descriptors returned by the `accept` function cannot be used in calls to `read`, `write`, and `close`; you have to use `recv`, `send`, `closesocket` in these cases instead.
- On Windows platforms (excluding Cygwin), error codes for `accept` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- On BeOS, the descriptors returned by the `accept` function cannot be used in calls to `read`, `write`, and `close`; you have to use `recv`, `send`, `closesocket` in these cases instead.
- Some platforms don’t have a `socklen_t` type; in this case this function’s third argument type is ‘`int *`’.

### 8.15 `access`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/access.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function uses the effective id instead of the real id on some platforms: Cygwin 1.5.x.

Other problems of this function:

- There is an inherent race between calling this function and performing some action based on the results; you should think twice before trusting this function, especially in a set-uid or set-gid program.
- This function does not have an option for not following symbolic links (like `stat` versus `lstat`). If you need this option, use the Gnulib module `faccessat` with the `AT_EACCESS` flag.

### 8.16 `acos`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/acos.html

Gnulib module: acos

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.17 `acosf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/acosf.html

Gnulib module: acosf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.18 `acosh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/acosh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.19 `acoshf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/acoshf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw, MSVC 9.

### 8.20 `acoshl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/acoshl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.21 `acosl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/acosl.html

Gnulib module: acosl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.22 `aio_cancel`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_cancel.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.23 `aio_error`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_error.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.24 `aio_fsync`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_fsync.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.25 `aio_read`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_read.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.26 `aio_return`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_return.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.27 `aio_suspend`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_suspend.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.28 `aio_write`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/aio_write.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.29 `alarm`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/alarm.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.30 `aligned_alloc`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.31 `alphasort`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/alphasort.html

Gnulib module: alphasort

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 9, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- The parameters of this function are declared as `const void *` on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Interix 3.5.
- The parameters of this function are declared as `void *` on some platforms: AIX 5.1.

### 8.32 `asctime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asctime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function may overflow its internal buffer if an invalid year is passed.

### 8.33 `asctime_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asctime_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function may put more than 26 bytes into the argument buffer if an invalid year is passed.

### 8.34 `asin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asin.html

Gnulib module: asin

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.35 `asinf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asinf.html

Gnulib module: asinf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.36 `asinh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asinh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.37 `asinhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asinhf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw, MSVC 9.

### 8.38 `asinhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asinhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.39 `asinl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/asinl.html

Gnulib module: asinl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.40 `assert`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/assert.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Extension: Gnulib offers a module ‘`assert`’ that allows the installer to disable assertions through a ‘`configure`’ option: ‘`--disable-assert`’.

### 8.41 `atan`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atan.html

Gnulib module: atan

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.42 `atan2`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atan2.html

Gnulib module: atan2

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.43 `atan2f`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atan2f.html

Gnulib module: atan2f

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.44 `atan2l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atan2l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

### 8.45 `atanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atanf.html

Gnulib module: atanf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.46 `atanh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atanh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.47 `atanhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atanhf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, mingw, MSVC 9.

### 8.48 `atanhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atanhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.49 `atanl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atanl.html

Gnulib module: atanl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.50 `atexit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atexit.html

Gnulib module: atexit

Portability problems fixed by Gnulib:

- This function is missing on some old platforms.

Portability problems not fixed by Gnulib:

### 8.51 `atof`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atof.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function mis-parses strings with leading ‘`+`’ on some old platforms: Old versions of Linux.
- This function returns a positive value for negative underflow on some platforms: glibc 2.4, Mingw, Cygwin.
- This function fails to do a valid parse of ‘`-0x`’ on some platforms: glibc 2.4, Cygwin < 1.5.25-11.
- This function fails to parse Infinities and plain NaNs on some platforms: Solaris 8, Mingw, OpenBSD 4.0.
- This function fails to parse NaN() on some platforms: Solaris 8, Mingw, OpenBSD 4.0, Cygwin < 1.5.25-11.
- This function fails to parse NaN(n-char-sequence) on some platforms: Solaris 8, Mingw, OpenBSD 4.0.
- This function fails to parse C99 hexadecimal floating point on some platforms: Solaris 8, Mingw, OpenBSD 4.0.
- This function fails to correctly parse very long strings on some platforms: Mingw, Cygwin.

### 8.52 `atoi`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atoi.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.53 `atol`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atol.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.54 `atoll`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/atoll.html

Gnulib module: atoll

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11.23, OSF/1 5.1, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 8.55 `basename`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/basename.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: IRIX 6.5, Solaris 2.5.1, mingw, MSVC 9, BeOS.
- glibc has two different functions `basename`: the POSIX version and the GNU version.
- `basename` assumes file names in POSIX syntax; it does not work with file names in Windows syntax.

### 8.56 `bind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/bind.html

Gnulib module: bind

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `bind` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.57 `bsearch`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/bsearch.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.58 `btowc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/btowc.html

Gnulib module: btowc

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Solaris 2.6, mingw, Interix 3.5.
- This function returns WEOF for a NUL argument on some platforms: Cygwin 1.7.2.
- This function does not return WEOF for an EOF argument on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.59 `c16rtomb`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.60 `c32rtomb`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.61 `cabs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cabs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 9.

### 8.62 `cabsf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cabsf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, mingw, MSVC 9.

### 8.63 `cabsl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cabsl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.64 `cacos`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cacos.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.65 `cacosf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cacosf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.66 `cacosh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cacosh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.67 `cacoshf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cacoshf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.68 `cacoshl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cacoshl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.69 `cacosl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cacosl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.70 `calloc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/calloc.html

Gnulib module: calloc-posix

Portability problems fixed by Gnulib:

- Upon failure, the function does not set `errno` to `ENOMEM` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

Extension: Gnulib provides a module ‘`calloc-gnu`’ that substitutes a `calloc` implementation that behaves more like the glibc implementation.

### 8.71 `carg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/carg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.72 `cargf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cargf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.73 `cargl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cargl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.74 `casin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/casin.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.75 `casinf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/casinf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.76 `casinh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/casinh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.77 `casinhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/casinhf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.78 `casinhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/casinhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.79 `casinl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/casinl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.80 `catan`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catan.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.81 `catanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.82 `catanh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catanh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.83 `catanhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catanhf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.84 `catanhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catanhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.85 `catanl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catanl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.86 `catclose`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catclose.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 8.87 `catgets`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catgets.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 8.88 `catopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/catopen.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 8.89 `cbrt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cbrt.html

Gnulib module: cbrt

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.90 `cbrtf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cbrtf.html

Gnulib module: cbrtf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9, MSVC 9.
- This function is not declared on some platforms: IRIX 6.5.
- This function returns a wrong value for a minus zero on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.91 `cbrtl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cbrtl.html

Gnulib module: cbrtl or cbrtl-ieee

Portability problems fixed by either Gnulib module `cbrtl` or `cbrtl-ieee`

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: IRIX 6.5.
- This function produces grossly wrong results on some platforms: OpenBSD 5.1/SPARC.

Portability problems fixed by Gnulib module `cbrtl-ieee`:

- This function returns a positive zero for a minus zero argument on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.92 `ccos`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ccos.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.93 `ccosf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ccosf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.94 `ccosh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ccosh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.95 `ccoshf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ccoshf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.96 `ccoshl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ccoshl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.97 `ccosl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ccosl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.98 `ceil`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ceil.html

Gnulib module: ceil or ceil-ieee

Portability problems fixed by either Gnulib module `ceil` or `ceil-ieee`:

Portability problems fixed by Gnulib module `ceil-ieee`:

- This function returns a positive zero for an argument between -1 and 0 on some platforms: AIX 7.1, OSF/1 5.1.
- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.99 `ceilf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ceilf.html

Gnulib module: ceilf or ceilf-ieee

Portability problems fixed by either Gnulib module `ceilf` or `ceilf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems fixed by Gnulib module `ceilf-ieee`:

- This function returns a positive zero for an argument between -1 and 0 on some platforms: MacOS X 10.5, AIX 7.1, OSF/1 5.1.
- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.100 `ceill`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ceill.html

Gnulib module: ceill or ceill-ieee

Portability problems fixed by either Gnulib module `ceill` or `ceill-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems fixed by Gnulib module `ceill-ieee`:

- This function returns a positive zero for an argument between -1 and 0 on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.101 `cexp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cexp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.102 `cexpf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cexpf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.103 `cexpl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cexpl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.104 `cfgetispeed`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cfgetispeed.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.105 `cfgetospeed`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cfgetospeed.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.106 `cfsetispeed`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cfsetispeed.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.107 `cfsetospeed`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cfsetospeed.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.108 `chdir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/chdir.html

Gnulib module: —

Portability problems fixed by Gnulib:

- This function is declared in different header files (namely, `<io.h>` or `<direct.h>`) on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.109 `chmod`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/chmod.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.110 `chown`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/chown.html

Gnulib module: chown

Portability problems fixed by Gnulib:

- Some platforms fail to detect trailing slash on non-directories, as in `chown("link-to-file/",uid,gid)`: FreeBSD 7.2, AIX 7.1, Solaris 9.
- Some platforms fail to update the change time when at least one argument was not -1, but no ownership changes resulted: OpenBSD 4.0.
- When passed an argument of -1, some implementations really set the owner user/group id of the file to this value, rather than leaving that id of the file alone.
- When applied to a symbolic link, some implementations don’t dereference the symlink, i.e. they behave like `lchown`.
- This function is missing on some platforms; however, the replacement always fails with `ENOSYS`: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.111 `cimag`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cimag.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.112 `cimagf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cimagf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.113 `cimagl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cimagl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.114 `clearerr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clearerr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.115 `clock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.116 `clock_getcpuclockid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clock_getcpuclockid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.117 `clock_getres`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clock_getres.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.118 `clock_gettime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clock_gettime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.119 `clock_nanosleep`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clock_nanosleep.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.120 `clock_settime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clock_settime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.121 `clog`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clog.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.122 `clogf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clogf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.123 `clogl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/clogl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.124 `close`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/close.html

Gnulib module: close

Portability problems fixed by Gnulib:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- On Windows platforms (excluding Cygwin), `socket` and `accept` do not return file descriptors that can be closed by `close`. Instead, `closesocket` must be used.

Portability problems not fixed by Gnulib:

- On BeOS, `socket` and `accept` do not return file descriptors that can be closed by `close`. Instead, `closesocket` must be used.

### 8.125 `closedir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/closedir.html

Gnulib module: closedir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.126 `closelog`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/closelog.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.127 `confstr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/confstr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw, MSVC 9.

### 8.128 `conj`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/conj.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.129 `conjf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/conjf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.130 `conjl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/conjl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.131 `connect`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/connect.html

Gnulib module: connect

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `connect` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.132 `copysign`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/copysign.html

Gnulib module: copysign

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.133 `copysignf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/copysignf.html

Gnulib module: copysignf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, older IRIX 6.5, Solaris 9, MSVC 9.
- This function is not declared on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.134 `copysignl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/copysignl.html

Gnulib module: copysignl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 8.135 `cos`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cos.html

Gnulib module: cos

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.136 `cosf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cosf.html

Gnulib module: cosf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.137 `cosh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cosh.html

Gnulib module: cosh

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.138 `coshf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/coshf.html

Gnulib module: coshf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.139 `coshl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/coshl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

### 8.140 `cosl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cosl.html

Gnulib module: cosl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.141 `cpow`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cpow.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.142 `cpowf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cpowf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.143 `cpowl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cpowl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.144 `cproj`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cproj.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.
- The glibc implementation is or was broken.

### 8.145 `cprojf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cprojf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.
- The glibc implementation is or was broken.

### 8.146 `cprojl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cprojl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- The glibc implementation is or was broken.

### 8.147 `creal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/creal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.148 `crealf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/crealf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.149 `creall`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/creall.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.150 `creat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/creat.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On Windows, this function returns a file handle in `O_TEXT` mode. If you need a file handle in `O_BINARY` mode, you need to use the function `open` instead.
- On platforms where `off_t` is a 32-bit type, `creat` may not work correctly to create files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.151 `crypt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/crypt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, Cygwin, mingw, MSVC 9.
- This function is not declared in `<unistd.h>` (without `-D_GNU_SOURCE`) on some platforms: glibc (at least 2.11â2.13).

### 8.152 `csin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csin.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.153 `csinf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csinf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.154 `csinh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csinh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.155 `csinhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csinhf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.156 `csinhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csinhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.157 `csinl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csinl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.158 `csqrt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csqrt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.159 `csqrtf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csqrtf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.160 `csqrtl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/csqrtl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.161 `ctan`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctan.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.162 `ctanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.163 `ctanh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctanh.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.164 `ctanhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctanhf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 8.165 `ctanhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctanhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.166 `ctanl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctanl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.167 `ctermid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctermid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.168 `ctime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function may overflow its internal buffer if an invalid year is passed.
- The `ctime` function need not be reentrant, and consequently is not required to be thread safe. Implementations of `ctime` typically write the time stamp into static buffer. If two threads call `ctime` at roughly the same time, you might end up with the wrong date in one of the threads, or some undefined string. There is a re-entrant interface `ctime_r`.

A more flexible function is `strftime`. However, note that it is locale dependent.

### 8.169 `ctime_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ctime_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function may put more than 26 bytes into the argument buffer if an invalid year is passed.

`ctime_r` takes a pre-allocated buffer and length of the buffer, and returns `NULL` on errors. The input buffer should be at least 26 bytes in size. The output string is locale-independent. However, years can have more than 4 digits if `time_t` is sufficiently wide, so the length of the required output buffer is not easy to determine. Increasing the buffer size when `ctime_r` returns `NULL` is not necessarily sufficient. The `NULL` return value could mean some other error condition, which will not go away by increasing the buffer size.

A more flexible function is `strftime`. However, note that it is locale dependent.

### 8.170 `daylight`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/daylight.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, IRIX 6.5, OSF/1 5.1.
- The address of this variable is not a compile-time constant on some platforms: Cygwin, mingw.

### 8.171 `dbm_clearerr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_clearerr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 2.5.1, Cygwin, mingw, MSVC 9, BeOS.

### 8.172 `dbm_close`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_close.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.173 `dbm_delete`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_delete.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.174 `dbm_error`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_error.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, HP-UX 11.11, IRIX 5.3, OSF/1 4.0, Solaris 2.5.1, Cygwin, mingw, MSVC 9, BeOS.

### 8.175 `dbm_fetch`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_fetch.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.176 `dbm_firstkey`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_firstkey.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.177 `dbm_nextkey`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_nextkey.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.178 `dbm_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.179 `dbm_store`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dbm_store.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, Cygwin, mingw, MSVC 9, BeOS.

### 8.180 `difftime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/difftime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.181 `dirfd`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dirfd.html

Gnulib module: dirfd

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 7.1, HP-UX 11, OSF/1 5.1, Solaris 10, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function always fails on some platforms: mingw.

With the `dirfd` module, this functions always sets `errno` when it fails. (POSIX does not require that `dirfd` sets `errno` when it fails.)

### 8.182 `dirname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dirname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: IRIX 6.5, Solaris 2.5.1, mingw, MSVC 9, BeOS.
- `dirname` assumes file names in POSIX syntax; it does not work with file names in Windows syntax.

The Gnulib module `dirname` provides similar API that also works with Windows file names.

### 8.183 `div`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/div.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.184 `dlclose`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dlclose.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.185 `dlerror`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dlerror.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.186 `dlopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dlopen.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
- If the file name argument is not absolute, the file is searched for. The search algorithm is system specific.

### 8.187 `dlsym`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dlsym.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
- The visibility of symbols loaded in dependent shared libraries or present in the main executable is system dependent.

### 8.188 `dprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dprintf.html

Gnulib module: dprintf or dprintf-posix

Portability problems fixed by either Gnulib module `dprintf` or `dprintf-posix`:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems fixed by Gnulib module `dprintf-posix`:

- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.189 `drand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/drand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.190 `dup`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dup.html

Gnulib module: dup

Portability problems fixed by Gnulib:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.191 `dup2`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/dup2.html

Gnulib module: dup2 or dup2-obsolete

Portability problems fixed by either Gnulib module `dup2` or `dup2-obsolete`:

- This function always returns 0 for success on some platforms: mingw, MSVC 9.
- This function can hang when duplicating an fd to itself on some platforms: mingw, MSVC 9.
- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- This function resets the `FD_CLOEXEC` flag when duplicating an fd to itself on some platforms: Haiku.
- This function returns 0 for `dup2 (1, 1)` on some platforms: Cygwin 1.5.x.
- This function may return `-EBADF` instead of `-1` on some platforms: Linux releases between July 2008 and May 2009 (versions 2.6.27 to 2.6.29).
- This function returns `EMFILE` instead of `EBADF` for extremely large targets, which interferes with using `dup2(fd,fd)==fd)` as the minimal `EBADF` filter: FreeBSD 6.1, Cygwin 1.5.

Portability problems fixed by Gnulib module `dup2-obsolete`:

- This function is missing on some older platforms.

Portability problems not fixed by Gnulib:

### 8.192 `duplocale`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/duplocale.html

Gnulib module: duplocale

Portability problems fixed by Gnulib:

- The argument `LC_GLOBAL_LOCALE` is not supported on some platforms: glibc 2.11, AIX 7.1.

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.193 `encrypt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/encrypt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.
- This function is not declared in `<unistd.h>` (without `-D_GNU_SOURCE`) on some platforms: glibc (at least 2.11â2.13).

### 8.194 `endgrent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endgrent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.195 `endhostent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endhostent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.196 `endnetent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endnetent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin, mingw, MSVC 9, BeOS.

### 8.197 `endprotoent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endprotoent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.198 `endpwent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endpwent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.199 `endservent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endservent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.200 `endutxent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/endutxent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.201 `environ`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/environ.html

Gnulib module: environ

Portability problems fixed by Gnulib:

- POSIX does not require this variable to be declared, and it is indeed not declared on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5, Solaris 11 2011-11.
- On MacOS X 10, this variable is not declared. Up to MacOS X 10.4, one can use

      extern char **environ;

  to get the variable declared. This does not work any more, however, in shared libraries on MacOS X 10.5. Here is a workaround: Instead, one can use

      #include <crt_externs.h>
      #define environ (*_NSGetEnviron())

  This works at all versions of MacOS X.

Portability problems not fixed by Gnulib:

- The address of this variable is not a compile-time constant on some platforms: mingw.

### 8.202 `erand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.203 `erf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erf.html

Gnulib module: erf

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.

### 8.204 `erfc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erfc.html

Gnulib module: erfc

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.

### 8.205 `erfcf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erfcf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, MSVC 9.

### 8.206 `erfcl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erfcl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.207 `erff`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erff.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, MSVC 9.

### 8.208 `erfl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/erfl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.209 `errno`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/errno.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On Windows, the socket functions don’t set `errno`; their error code is available through `WSAGetLastError()` instead.

### 8.210 `execl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/execl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some platforms, a script without executable permission is still run: Cygwin 1.5.x.

### 8.211 `execle`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/execle.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some platforms, a script without executable permission is still run: Cygwin 1.5.x.

### 8.212 `execlp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/execlp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some platforms, a script without executable permission is still run: Cygwin 1.5.x.

### 8.213 `execv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/execv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some platforms, a script without executable permission is still run: Cygwin 1.5.x.

### 8.214 `execve`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/execve.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some platforms, a script without executable permission is still run: Cygwin 1.5.x.

### 8.215 `execvp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/execvp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some platforms, a script without executable permission is still run: Cygwin 1.5.x.

### 8.216 `exit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/exit.html

Gnulib module: stdlib

Portability problems fixed by Gnulib:

- Some problems with the macros `EXIT_SUCCESS` and `EXIT_FAILURE`, see stdlib.h.

Portability problems not fixed by Gnulib:

### 8.217 `exp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/exp.html

Gnulib module: exp

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.218 `exp2`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/exp2.html

Gnulib module: exp2

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, older IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared on some platforms: IRIX 6.5.
- This function returns grossly wrong results on some platforms: OpenBSD 4.9.

Portability problems not fixed by Gnulib:

### 8.219 `exp2f`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/exp2f.html

Gnulib module: exp2f

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.220 `exp2l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/exp2l.html

Gnulib module: exp2l or exp2l-ieee

Portability problems fixed by either Gnulib module `exp2l` or `exp2l-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: IRIX 6.5.

Portability problems fixed by Gnulib module `exp2l-ieee`:

- This function returns a wrong value for a NaN argument on some platforms: OpenBSD 4.9.
- This function returns a wrong value for a negative infinity argument on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.221 `expf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/expf.html

Gnulib module: expf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.222 `expl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/expl.html

Gnulib module: expl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.223 `expm1`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/expm1.html

Gnulib module: expm1 or expm1-ieee

Portability problems fixed by either Gnulib module `expm1` or `expm1-ieee`:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

Portability problems fixed by Gnulib module `expm1-ieee`:

- This function has problems when the argument is minus zero on some platforms: AIX 7.1.

Portability problems not fixed by Gnulib:

### 8.224 `expm1f`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/expm1f.html

Gnulib module: expm1f

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, mingw, MSVC 9.
- This function produces wrong results for arguments <= -17.32868 on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.225 `expm1l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/expm1l.html

Gnulib module: expm1l

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.226 `fabs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fabs.html

Gnulib module: fabs

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.227 `fabsf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fabsf.html

Gnulib module: fabsf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.228 `fabsl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fabsl.html

Gnulib module: fabsl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function returns a minus zero for a minus zero argument on some platforms: IRIX 6.5 with gcc 4.2.4.

Portability problems not fixed by Gnulib:

### 8.229 `faccessat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/faccessat.html

Gnulib module: faccessat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. However, the replacement does not always take into account ACLs. Also, it is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

Other problems of this function:

- There is an inherent race between calling this function and performing some action based on the results; you should think twice before trusting this function, especially in a set-uid or set-gid program.

### 8.230 `fattach`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fattach.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.231 `fchdir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fchdir.html

Gnulib module: fchdir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Tandem/NSK, mingw, MSVC 9, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.
- This function is not declared on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.232 `fchmod`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fchmod.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.233 `fchmodat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fchmodat.html

Gnulib module: fchmodat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

- Some platforms do not allow changing the access bits on symbolic links. POSIX states that `fchmodat(…,AT_SYMLINK_NOFOLLOW)` may fail with `EOPNOTSUPP` when called on a symlink, but some platforms, as well as the gnulib replacement, fail for any use of AT_SYMLINK_NOFOLLOW even if the target was not a symlink: glibc, Cygwin.

### 8.234 `fchown`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fchown.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.235 `fchownat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fchownat.html

Gnulib module: fchownat

Portability problems fixed by Gnulib:

- Some platforms fail to detect trailing slash on non-directories, as in `fchown(dir,"link-to-file/",uid,gid,flag)`: Solaris 9.
- Some platforms mistakenly dereference symlinks when using `AT_SYMLINK_NOFOLLOW`: Linux kernel 2.6.17.
- This function does not fail for an empty filename on some platforms: Linux with glibc < 2.11.
- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe. Also, the replacement may fail to change symlinks if `lchown` is unsupported, or fail altogether if `chown` is unsupported.

Portability problems not fixed by Gnulib:

### 8.236 `fclose`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fclose.html

Gnulib module: fclose

Portability problems fixed by Gnulib:

- On some platforms, this function fails to set the file position of a seekable input stream to the byte after the last one actually read: glibc 2.13, FreeBSD.
- This function crashes if the stream’s file descriptor has already been closed on some platforms: MSVC 9.
- On Windows platforms (excluding Cygwin), `socket` and `accept` followed by `fdopen` do not return streams that can be closed by `fclose`.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.237 `fcntl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fcntl.html

Gnulib module: fcntl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function does not support `F_DUPFD_CLOEXEC` on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.7.1, Interix 3.5, BeOS. Note that the gnulib replacement code is functional but not atomic.
- The `F_DUPFD` action of this function does not reject out-of-range targets properly on some platforms: Cygwin 1.5.x, Haiku.
- The `F_DUPFD` action of this function mistakenly clears FD_CLOEXEC on the source descriptor on some platforms: Haiku.

Portability problems not fixed by Gnulib:

- The replacement function does not support `F_SETFD`, `F_GETFL`, `F_SETFL`, `F_GETOWN`, `F_SETOWN`, `F_GETLK`, `F_SETLK`, and `F_SETLKW` on some platforms: mingw, MSVC 9.

### 8.238 `fdatasync`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html

Gnulib module: fdatasync

Portability problems fixed by Gnulib:

- This function is present but not declared on some platforms: MacOS X 10.7.
- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.239 `fdetach`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdetach.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.240 `fdim`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdim.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.241 `fdimf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdimf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.242 `fdiml`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdiml.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.243 `fdopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdopen.html

Gnulib module: fdopen

Portability problems fixed by Gnulib:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

Portability problems not fixed by Gnulib:

### 8.244 `fdopendir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fdopendir.html

Gnulib module: fdopendir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe. Also, the replacement does not guarantee that ‘`dirfd(fdopendir(n))==n`’ (dirfd might fail, or return a different file descriptor than n).
- This function exists but is not declared on some platforms: FreeBSD 7.3.
- This function does not reject non-directory file descriptors on some platforms: GNU/Hurd.
- This function mistakenly closes non-directory file descriptors on some platforms: FreeBSD 8.1.

Portability problems not fixed by Gnulib:

### 8.245 `feclearexcept`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/feclearexcept.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.246 `fegetenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fegetenv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.247 `fegetexceptflag`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fegetexceptflag.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.248 `fegetround`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fegetround.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.249 `feholdexcept`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/feholdexcept.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.250 `feof`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/feof.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.251 `feraiseexcept`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/feraiseexcept.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.252 `ferror`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ferror.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.253 `fesetenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fesetenv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.254 `fesetexceptflag`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fesetexceptflag.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.255 `fesetround`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fesetround.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.256 `fetestexcept`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fetestexcept.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.257 `feupdateenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/feupdateenv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.258 `fexecve`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fexecve.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.259 `fflush`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fflush.html

Gnulib module: fflush

Portability problems fixed by Gnulib:

- `fflush` followed by `fseek` or `fseeko`, applied to an input stream, should have the effect of positioning the underlying file descriptor. It doesn’t do this on some platforms.
- `fflush` on an input stream changes the position of the stream to the end of the previous buffer, on some platforms: mingw, MSVC 9.
- `fflush` on an input stream right after `ungetc` does not discard the `ungetc` buffer, on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin 1.5.25-10.

Portability problems not fixed by Gnulib:

- `fflush`, `ftell`, `ftello`, `fgetpos` behave incorrectly on input streams that are opened in `O_TEXT` mode and whose contents contains Unix line terminators (LF), on some platforms: mingw, MSVC 9.
- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- This function crashes if the stream’s file descriptor has already been closed, if `MSVC_INVALID_PARAMETER_HANDLING` is `HAIRY_LIBRARY_HANDLING` or `SANE_LIBRARY_HANDLING`, on some platforms: MSVC 9.
- `fflush` on an input stream right after `ungetc` does not discard the `ungetc` buffer, on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, mingw, MSVC 9.

### 8.260 `ffs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ffs.html

Gnulib module: ffs

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.261 `fgetc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fgetc.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- This function crashes if the stream’s file descriptor has already been closed, if `MSVC_INVALID_PARAMETER_HANDLING` is `HAIRY_LIBRARY_HANDLING` or `SANE_LIBRARY_HANDLING`, on some platforms: MSVC 9.

### 8.262 `fgetpos`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fgetpos.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- `fflush`, `ftell`, `ftello`, `fgetpos` behave incorrectly on input streams that are opened in `O_TEXT` mode and whose contents contains Unix line terminators (LF), on some platforms: mingw, MSVC 9.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.
- On platforms where `off_t` is a 64-bit type, but `fseeko` is not present, stream operations on files larger than 2 GB silently do the wrong thing. This affects BSD/OS, which is mostly obsolete.

### 8.263 `fgets`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fgets.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.264 `fgetwc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fgetwc.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.265 `fgetws`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fgetws.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.266 `fileno`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fileno.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.267 `flockfile`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/flockfile.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.268 `floor`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/floor.html

Gnulib module: floor or floor-ieee

Portability problems fixed by either Gnulib module `floor` or `floor-ieee`:

Portability problems fixed by Gnulib module `floor-ieee`:

- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.269 `floorf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/floorf.html

Gnulib module: floorf or floorf-ieee

Portability problems fixed by either Gnulib module `floorf` or `floorf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems fixed by Gnulib module `floorf-ieee`:

- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.270 `floorl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/floorl.html

Gnulib module: floorl or floorl-ieee

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.271 `fma`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fma.html

Gnulib module: fma

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.
- This function produces wrong results on some platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4/x86, OSF/1 5.1, Cygwin 1.5, mingw.

Portability problems not fixed by Gnulib:

### 8.272 `fmaf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmaf.html

Gnulib module: fmaf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.
- This function produces wrong results on some platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4/x86, OSF/1 5.1, Cygwin 1.5, mingw.

Portability problems not fixed by Gnulib:

### 8.273 `fmal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmal.html

Gnulib module: fmal

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function produces wrong results on some platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4/x86, OSF/1 5.1, mingw.

Portability problems not fixed by Gnulib:

### 8.274 `fmax`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmax.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.275 `fmaxf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmaxf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.276 `fmaxl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmaxl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.277 `fmemopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmemopen.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.278 `fmin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmin.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.279 `fminf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fminf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.280 `fminl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fminl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.281 `fmod`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmod.html

Gnulib module: fmod or fmod-ieee

Portability problems fixed by either Gnulib module `fmod` or `fmod-ieee`:

Portability problems fixed by Gnulib module `fmod-ieee`:

- This function has problems when the second argument is zero on some platforms: OSF/1 5.1.
- This function has problems when the first argument is minus zero on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.282 `fmodf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmodf.html

Gnulib module: fmodf or fmodf-ieee

Portability problems fixed by either Gnulib module `fmodf` or `fmodf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems fixed by Gnulib module `fmodf-ieee`:

- This function has problems when the second argument is zero on some platforms: OSF/1 5.1.
- This function has problems when the first argument is minus zero on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.283 `fmodl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmodl.html

Gnulib module: fmodl or fmodl-ieee

Portability problems fixed by either Gnulib module `fmodl` or `fmodl-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared and does not work on some platforms: AIX 5.1.

Portability problems fixed by Gnulib module `fmodl-ieee`:

- This function has problems when the second argument is zero on some platforms: OSF/1 5.1.
- This function has problems when the first argument is minus zero on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.284 `fmtmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fmtmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.285 `fnmatch`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fnmatch.html

Gnulib module: fnmatch or fnmatch-gnu

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, mingw, MSVC 9.
- This function is broken in some versions of Solaris and glibc.

Portability problems not fixed by Gnulib:

### 8.286 `fopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fopen.html

Gnulib module: fopen

Portability problems fixed by Gnulib:

- This function does not fail when the file name argument ends in a slash and (without the slash) names a nonexistent file or a file that is not a directory, on some platforms: HP-UX 11.00, AIX 7.1, Solaris 9, Irix 5.3.
- On platforms where `off_t` is a 32-bit type, `fopen` may not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- On Windows platforms (excluding Cygwin), this function does usually not recognize the `/dev/null` filename.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, this function returns a file stream in “text” mode by default; this means that it translates `'\n'` to CR/LF by default. Use the `"b"` flag if you need reliable binary I/O.
- On Windows platforms (excluding Cygwin), this function fails to open directories for reading. Such streams have implementation-defined semantics on other platforms. To avoid directory streams with a consistent error message, use `fstat` after `open` and `fdopen`, rather than `fopen` and `fileno`.

### 8.287 `fork`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fork.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- On some platforms, `fork` followed by a call of the `exec` family (`execl`, `execlp`, `execle`, `execv`, `execvp`, or `execve`) is less efficient than `vfork` followed by the same call. `vfork` is a variant of `fork` that has been introduced to optimize the `fork`/`exec` pattern.
- On Windows platforms (excluding Cygwin), this function is not implemented; use `spawnvp` instead.

### 8.288 `fpathconf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fpathconf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.289 `fpclassify`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fpclassify.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5.

### 8.290 `fprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fprintf.html

Gnulib module: fprintf-posix or stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `fprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems fixed by Gnulib module `stdio` or `fprintf-posix`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio` or `fprintf-posix`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- Attempting to write to a read-only stream fails with `EOF` but does not set the error flag for `ferror` on some platforms: glibc 2.13, cygwin 1.7.9.

### 8.291 `fputc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fputc.html

Gnulib module: stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.
- This function crashes if the stream’s file descriptor has already been closed, if `MSVC_INVALID_PARAMETER_HANDLING` is `HAIRY_LIBRARY_HANDLING` or `SANE_LIBRARY_HANDLING`, on some platforms: MSVC 9.

### 8.292 `fputs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fputs.html

Gnulib module: stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.293 `fputwc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fputwc.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.294 `fputws`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fputws.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.295 `fread`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fread.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- This function crashes if the stream’s file descriptor has already been closed, if `MSVC_INVALID_PARAMETER_HANDLING` is `HAIRY_LIBRARY_HANDLING` or `SANE_LIBRARY_HANDLING`, on some platforms: MSVC 9.

### 8.296 `free`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/free.html

Gnulib module: free

Portability problems fixed by Gnulib:

- On old platforms such as SunOS4, `free (NULL)` fails. However, since all such systems are so old as to no longer be considered “reasonable portability targets,” this module is no longer useful.

Portability problems not fixed by Gnulib:

### 8.297 `freeaddrinfo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/freeaddrinfo.html

Gnulib module: getaddrinfo

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.298 `freelocale`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/freelocale.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.299 `freopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/freopen.html

Gnulib module: freopen

Portability problems fixed by Gnulib:

- On platforms where `off_t` is a 32-bit type, `freopen` may not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- On Windows platforms (excluding Cygwin), this function does usually not recognize the `/dev/null` filename.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- This function does not support a `NULL` file name argument on some platforms: OpenBSD 4.9, AIX 7.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9.
- This function does not fail when the file name argument ends in a slash and (without the slash) names a nonexistent file or a file that is not a directory, on some platforms: HP-UX 11.00, Solaris 9, Irix 5.3.
- Applications should not assume that `fileno(f)` will be the same before and after a call to `freopen(name,mode,f)`. However, the module freopen-safer can at least protect `stdin`, `stdout`, and `stderr`.

### 8.300 `frexp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/frexp.html

Gnulib module: frexp

Portability problems fixed by Gnulib:

- This function does not work on denormalized numbers on some platforms: NetBSD 3.0.
- This function does not work on negative zero on some platforms: NetBSD 4.99, MSVC 9.
- This function does not work on infinite numbers on some platforms: IRIX 6.5, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.301 `frexpf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/frexpf.html

Gnulib module: frexpf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function does not work on negative zero on some platforms: mingw.
- This function does not work on infinite numbers on some platforms: IRIX 6.5, mingw.

Portability problems not fixed by Gnulib:

### 8.302 `frexpl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/frexpl.html

Gnulib module: frexpl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.
- This function does not work on finite numbers on some platforms: MacOS X 10.4/PowerPC, AIX 5.1, MSVC 9, BeOS.
- This function does not work on denormalized numbers on some platforms: MacOS X 10.5/i386.
- This function does not work on infinite numbers on some platforms: IRIX 6.5, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.303 `fscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fscanf.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, this function doesn’t support the `hh`, `ll`, `j`, `t`, `z` size specifiers.

### 8.304 `fseek`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fseek.html

Gnulib module: fseek

Portability problems fixed by Gnulib:

- This function mistakenly succeeds on pipes on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On platforms where `long` is a 32-bit type, `fseek` does not work correctly with files larger than 2 GB, even when the `AC_SYS_LARGEFILE` macro is used. The fix is to use `fseeko` instead.

### 8.305 `fseeko`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fseeko.html

Gnulib module: fseeko

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, OSF/1 4.0, Solaris 2.5.1, mingw, MSVC 9.
- The declaration of `fseeko` in `<stdio.h>` is not enabled by default on some platforms: glibc 2.3.6, OSF/1 5.1.
- This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
- On platforms where `off_t` is a 32-bit type, `fseeko` does not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

- On platforms where `off_t` is a 64-bit type, but `fseeko` is not present, stream operations on files larger than 2 GB silently do the wrong thing. This affects BSD/OS, which is mostly obsolete.

### 8.306 `fsetpos`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fsetpos.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.307 `fstat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fstat.html

Gnulib module: fstat

Portability problems fixed by Gnulib:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- On platforms where `off_t` is a 32-bit type, `fstat` may not correctly report the size of files or block devices larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

- See sys/stat.h, for general portability problems with `struct stat`.
- On Cygwin, `fstat` applied to the file descriptors 0 and 1, returns different `st_ino` values, even if standard input and standard output are not redirected and refer to the same terminal.

### 8.308 `fstatat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fstatat.html

Gnulib module: fstatat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.
- On platforms where `off_t` is a 32-bit type, `fstatat` may not correctly report the size of files or block devices larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- On some platforms, `fstatat(fd,"file/",buf,flag)` succeeds instead of failing with `ENOTDIR`. Solaris 9.
- For symlinks, when the argument ends in a slash, some platforms don’t dereference the argument: Solaris 9.

Portability problems not fixed by Gnulib:

- See sys/stat.h, for general portability problems with `struct stat`.

### 8.309 `fstatvfs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fstatvfs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, mingw, MSVC 9.
- On platforms where `f_blocks` in ‘`struct statvfs`’ is a 32-bit value, this function may not work correctly on files systems larger than 4 TiB. The fix is to use the `AC_SYS_LARGEFILE` macro. This affects glibc/Hurd, HP-UX 11, Solaris.

### 8.310 `fsync`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fsync.html

Gnulib module: fsync

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.311 `ftell`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ftell.html

Gnulib module: ftell

Portability problems fixed by Gnulib:

- This function mistakenly succeeds on pipes on some platforms: mingw, MSVC 9.
- This function produces incorrect results after `putc` that followed a `getc` call that reached EOF on some platforms: Solaris 11 2010-11.

Portability problems not fixed by Gnulib:

- This function produces incorrect results immediately after `fseek` on some platforms: HP-UX 11.
- `fflush`, `ftell`, `ftello`, `fgetpos` behave incorrectly on input streams that are opened in `O_TEXT` mode and whose contents contains Unix line terminators (LF), on some platforms: mingw, MSVC 9.
- On platforms where `long` is a 32-bit type, `ftell` does not work correctly with files larger than 2 GB, even when the `AC_SYS_LARGEFILE` macro is used. The fix is to use `ftello` instead.

### 8.312 `ftello`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ftello.html

Gnulib module: ftello

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, OSF/1 4.0, Solaris 2.5.1, mingw, MSVC 9.
- The declaration of `ftello` in `<stdio.h>` is not enabled by default on some platforms: glibc 2.3.6, OSF/1 5.1.
- This function produces incorrect results after `putc` that followed a `getc` call that reached EOF on some platforms: Solaris 11 2010-11.
- This function fails on seekable stdin, stdout, and stderr: cygwin <= 1.5.24.
- On platforms where `off_t` is a 32-bit type, `ftello` does not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

- This function produces incorrect results immediately after `fseek` on some platforms: HP-UX 11.
- `fflush`, `ftell`, `ftello`, `fgetpos` behave incorrectly on input streams that are opened in `O_TEXT` mode and whose contents contains Unix line terminators (LF), on some platforms: mingw, MSVC 9.
- On platforms where `off_t` is a 64-bit type, but `fseeko` is not present, stream operations on files larger than 2 GB silently do the wrong thing. This affects BSD/OS, which is mostly obsolete.

### 8.313 `ftok`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ftok.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.314 `ftruncate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ftruncate.html

Gnulib module: ftruncate

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.
- On platforms where `off_t` is a 32-bit type, this function is not applicable to arbitrary lengths for files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

Portability problems not fixed by Gnulib:

### 8.315 `ftrylockfile`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ftrylockfile.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9.

### 8.316 `ftw`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ftw.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not correctly report the size of files or block devices larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.317 `funlockfile`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/funlockfile.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.318 `futimens`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/futimens.html

Gnulib module: futimens

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. However, the replacement function may end up truncating timestamps to less resolution than supported by the file system.
- This function returns a bogus value instead of failing with `ENOSYS` on some platforms: Linux kernel 2.6.21.
- When using `UTIME_OMIT` or `UTIME_NOW`, some systems require the `tv_sec` argument to be 0, and don’t necessarily handle all file permissions in the manner required by POSIX: Linux kernel 2.6.25.
- When using `UTIME_OMIT` for the modification time, but specifying an access time, some systems fail to update the change time: Linux kernel 2.6.32.
- Passing `AT_FDCWD` as the fd argument does not properly fail with `EBADF` on some systems: glibc 2.11, Solaris 11.

Portability problems not fixed by Gnulib:

- Some platforms lack the ability to change the timestamps of a file descriptor, so the replacement can fail with `ENOSYS`; the gnulib module ‘`utimens`’ provides a more reliable interface `fdutimens`.
- The mere act of using `stat` modifies the access time of directories on some platforms, so `utimensat` can only effectively change directory modification time: Cygwin 1.5.x.

### 8.319 `fwide`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fwide.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- `fwide` is not guaranteed to be able to change a file stream’s mode to a different mode than the current one.

### 8.320 `fwprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fwprintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.321 `fwrite`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fwrite.html

Gnulib module: stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.
- This function crashes if the stream’s file descriptor has already been closed, if `MSVC_INVALID_PARAMETER_HANDLING` is `HAIRY_LIBRARY_HANDLING` or `SANE_LIBRARY_HANDLING`, on some platforms: MSVC 9.

### 8.322 `fwscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fwscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.323 `gai_strerror`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gai_strerror.html

Gnulib module: getaddrinfo

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, Interix 3.5, BeOS.
- This function is only available in `<ws2tcpip.h>` on some platforms: mingw, MSVC 9.
- This function’s return type is `char *` instead of `const char *` on some platforms: AIX 7.1, HP-UX 11, OSF/1 5.1, Solaris 9, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.324 `getaddrinfo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getaddrinfo.html

Gnulib module: getaddrinfo

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- On Windows, this function is declared in `<ws2tcpip.h>` rather than in `<netdb.h>`.

Portability problems not fixed by Gnulib:

### 8.325 `getc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getc.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.326 `getc_unlocked`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getc_unlocked.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.327 `getchar`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getchar.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.328 `getchar_unlocked`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getchar_unlocked.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.329 `getcwd`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getcwd.html

Gnulib module: getcwd or getcwd-lgpl

Portability problems fixed by either Gnulib module `getcwd` or `getcwd-lgpl`:

- This function is declared in different header files (namely, `<io.h>` or `<direct.h>`) on some platforms: mingw, MSVC 9.
- On glibc platforms, `getcwd (NULL, n)` allocates memory for the result. On some other platforms, this call is not allowed.
- On some platforms, the prototype for `getcwd` uses `int` instead of `size_t` for the size argument when using non-standard headers, and the declaration is missing from `<unistd.h>`: mingw, MSVC 9.
- On some platforms, `getcwd (buf, 0)` fails with `ERANGE` instead of the required `EINVAL`: mingw, MSVC 9.

Portability problems fixed by Gnulib module `getcwd`:

- This function is missing on some older platforms.
- This function does not handle long file names (greater than `PATH_MAX`) correctly on some platforms: glibc on Linux 2.4.20, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.1, OpenBSD 4.9, AIX 7.1.

Portability problems not fixed by Gnulib:

- When using `getcwd(NULL, nonzero)`, some platforms, such as glibc or cygwin, allocate exactly `nonzero` bytes and fail with `ERANGE` if it was not big enough, while other platforms, such as FreeBSD, mingw, or MSVC 9, ignore the size argument and allocate whatever size is necessary. If this call succeeds, an application cannot portably access beyond the string length of the result.

### 8.330 `getdate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getdate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

Gnulib provides a module `parse-datetime` that contains a function `parse_datetime` that has similar functionality as the `getdate` function.

### 8.331 `getdate_err`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getdate_err.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, BeOS.

### 8.332 `getdelim`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getdelim.html

Gnulib module: getdelim

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5.
- This function is missing a declaration on some platforms: BeOS.
- This function crashes when passed a pointer to a NULL buffer together with a pointer to a non-zero buffer size on some platforms: FreeBSD 8.0.

Portability problems not fixed by Gnulib:

- This function has quadratic running time for long lines on some platforms: uClibc 0.9.31.

### 8.333 `getegid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getegid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.334 `getenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getenv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.335 `geteuid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/geteuid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.336 `getgid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.337 `getgrent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgrent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.338 `getgrgid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgrgid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.339 `getgrgid_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgrgid_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.340 `getgrnam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgrnam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.341 `getgrnam_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgrnam_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.342 `getgroups`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getgroups.html

Gnulib module: getgroups

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- On some platforms, this function fails to reject a negative count, even though that is less than the size that would be returned: FreeBSD 7.2.
- On Ultrix 4.3, `getgroups (0, NULL)` always fails. See macro ‘`AC_FUNC_GETGROUPS`’.
- On very old systems, this function operated on an array of ‘`int`’, even though that was a different size than an array of ‘`gid_t`’.

Portability problems not fixed by Gnulib:

- It is unspecified whether the effective group id will be included in the returned list, nor whether the list will be sorted in any particular order. For that matter, some platforms include the effective group id twice, if it is also a member of the current supplemental group ids.

### 8.343 `gethostent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gethostent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 8.344 `gethostid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gethostid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.345 `gethostname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gethostname.html

Gnulib module: gethostname

Portability problems fixed by Gnulib:

- On mingw and MSVC 9, this function has a prototype that differs from that specified by POSIX, and it is defined only in the ws2_32 library.

Portability problems not fixed by Gnulib:

- This function’s second argument type is `int` instead of `size_t` on some platforms: OSF/1 5.1, Solaris 10.
- If the given buffer is too small for the host name, some implementations fail with `EINVAL`, instead of returning a truncated host name.

### 8.346 `getitimer`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getitimer.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.347 `getline`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getline.html

Gnulib module: getline

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5.
- This function is missing a declaration on some platforms: AIX 7.1, BeOS.
- Some platforms provide a function by this name but with the wrong signature, for example in -linet.
- This function crashes when passed a pointer to a NULL buffer together with a pointer to a non-zero buffer size on some platforms: FreeBSD 8.0.

Portability problems not fixed by Gnulib:

- This function has quadratic running time for long lines on some platforms: uClibc 0.9.31.

### 8.348 `getlogin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getlogin.html

Gnulib module: getlogin

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function returns an empty string even when standard input is a tty on some platforms: HP-UX 11.11.

### 8.349 `getlogin_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getlogin_r.html

Gnulib module: getlogin_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, Minix 3.1.8, mingw, MSVC 9.
- This function is not declared unless `_REENTRANT` is defined, on some platforms: HP-UX 11.
- This function returns a truncated result, instead of failing with error code `ERANGE`, when the buffer is not large enough, on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).
- This function fails even when standard input is a tty on some platforms: HP-UX 11.11.
- This function fails with error code `EINVAL` instead of `ERANGE` when the second argument is zero on some platforms: HP-UX 11.31.

### 8.350 `getmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.351 `getnameinfo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getnameinfo.html

Gnulib module: getaddrinfo

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.352 `getnetbyaddr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getnetbyaddr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin, mingw, MSVC 9, BeOS.

### 8.353 `getnetbyname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getnetbyname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin, mingw, MSVC 9, BeOS.

### 8.354 `getnetent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getnetent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin, mingw, MSVC 9, BeOS.

### 8.355 `getopt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getopt.html

Gnulib module: getopt-posix or getopt-gnu

The module `getopt-gnu` has support for “long options” and for “options that take optional arguments”. Compared to the API defined by POSIX, it adds a header file `<getopt.h>` and a function `getopt_long`.

Portability problems fixed by either Gnulib module `getopt-posix` or `getopt-gnu`:

- The `getopt` function keeps some internal state that cannot be explicitly reset on some platforms: mingw.
- The value of `optind` after a missing required argument is wrong on some platforms: MacOS 10.5, AIX 7.1.

Portability problems fixed by Gnulib module `getopt-gnu`:

- This function is missing on some platforms: MSVC 9.
- The function `getopt` does not support the ‘`+`’ flag in the options string on some platforms: MacOS X 10.5, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11.
- The function `getopt` does not obey the combination of ‘`+`’ and ‘`:`’ flags in the options string on some platforms: glibc 2.11.
- The function `getopt` does not obey the ‘`-`’ flag in the options string when `POSIXLY_CORRECT` is set on some platforms: Cygwin 1.7.0.
- The function `getopt` does not support options with optional arguments on some platforms: MacOS X 10.5, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11, Cygwin 1.5.x.
- The function `getopt_long` is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, MSVC 9, Interix 3.5.
- The function `getopt_long_only` is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9, Interix 3.5.
- This function crashes if the option string includes `W;` on some platforms: glibc 2.14.

Portability problems not fixed by Gnulib:

- The default behavior of the glibc implementation of `getopt` allows mixing option and non-option arguments on the command line in any order. Other implementations, such as the one in Cygwin, enforce strict POSIX compliance: they require that the option arguments precede the non-option arguments. This is something to watch out in your program’s testsuite.
- The glibc implementation allows a complete reset of the environment, including re-checking for `POSIXLY_CORRECT`, by setting `optind` to 0. Several BSD implementations provide `optreset`, causing a reset by setting it non-zero, although it does not necessarily re-read `POSIXLY_CORRECT`. Solaris `getopt` does not support either reset method, but does not maintain state that needs the extra level of reset.
- On some platforms, this function does not set the stream error indicator on attempts to write to a read-only stream: glibc 2.13, Cygwin 1.7.9.

### 8.356 `getpeername`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpeername.html

Gnulib module: getpeername

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `getpeername` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- Some platforms don’t have a `socklen_t` type; in this case this function’s third argument type is ‘`int *`’.

### 8.357 `getpgid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpgid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.358 `getpgrp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpgrp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.359 `getpid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.360 `getpmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.361 `getppid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getppid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.362 `getpriority`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpriority.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.363 `getprotobyname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getprotobyname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.364 `getprotobynumber`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getprotobynumber.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.365 `getprotoent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getprotoent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.366 `getpwent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpwent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.367 `getpwnam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpwnam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.368 `getpwnam_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpwnam_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
- This function has an incompatible declaration, with fewer than five arguments, on some platforms: IRIX 5.3.

### 8.369 `getpwuid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpwuid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.370 `getpwuid_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpwuid_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.371 `getrlimit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getrlimit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- On platforms where `rlim_t` is a 32-bit type, this function does not allow to retrieve limits larger than 4 GB, such as for RLIMIT_FSIZE. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.372 `getrusage`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getrusage.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9.
- Many platforms don’t fill in all the fields of `struct rusage` with meaningful values.

### 8.373 `gets`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gets.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function should never be used, because it can overflow any given buffer.
- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.374 `getservbyname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getservbyname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.375 `getservbyport`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getservbyport.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.376 `getservent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getservent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.377 `getsid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getsid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.378 `getsockname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getsockname.html

Gnulib module: getsockname

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `getsockname` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- Some platforms don’t have a `socklen_t` type; in this case this function’s third argument type is ‘`int *`’.

### 8.379 `getsockopt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html

Gnulib module: getsockopt

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `getsockopt` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.
- Some platforms don’t have a `socklen_t` type; in this case this function’s fifth argument type is ‘`int *`’.
- Many socket options are not available on all platforms.
- BeOS has the `setsockopt` function, but not the `getsockopt` function.

### 8.380 `getsubopt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getsubopt.html

Gnulib module: getsubopt

Portability problems fixed by Gnulib:

- This function is declared in `unistd.h` instead of `stdlib.h` on some platforms: Cygwin 1.7.1.
- This function is missing on some platforms: mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.381 `gettimeofday`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html

Gnulib module: gettimeofday

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function is declared with a nonstandard function prototype (only one argument, or “...” after the first argument) on some platforms.
- On some platforms, the second argument has type `struct timezone*` rather than `void *`, making it an error to redeclare the function with the POSIX signature: glibc. However, rather than penalize these systems with a replacement function, gnulib defines `GETTIMEOFDAY_TIMEZONE` to the appropriate type for use in avoiding a compiler warning if assigning `gettimeofday` to a function pointer.
- On some platforms, `gettimeofday` clobbers the buffer in which `localtime` returns its result: MacOS X 10.0.

Portability problems not fixed by Gnulib:

- Behavior is non-portable if the second argument to `gettimeofday` is not `NULL`.

### 8.382 `getuid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getuid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.383 `getutxent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getutxent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.384 `getutxid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getutxid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.385 `getutxline`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getutxline.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.386 `getwc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getwc.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.387 `getwchar`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getwchar.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.388 `glob`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/glob.html

Gnulib module: glob

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, mingw, MSVC 9, BeOS.
- This function may list symbolic links to nonexistent files among the results, on some platforms.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

- Some platforms may store additional flags in the `gl_flags` field.

### 8.389 `globfree`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/globfree.html

Gnulib module: glob

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.390 `gmtime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gmtime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.391 `gmtime_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gmtime_r.html

Gnulib module: time_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function is not declared unless `_REENTRANT` is defined, on some platforms: HP-UX 11.
- Some platforms define a function of this name that is incompatible to POSIX: HP-UX 10.

Portability problems not fixed by Gnulib:

### 8.392 `grantpt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/grantpt.html

Gnulib module: grantpt

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- This function is not declared on some platforms: IRIX 5.3.
- This function reports success for invalid file descriptors on some platforms: Cygwin 1.7.9.

### 8.393 `hcreate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/hcreate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.394 `hdestroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/hdestroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.395 `hsearch`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/hsearch.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.396 `htonl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/htonl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, mingw, MSVC 9, BeOS.

### 8.397 `htons`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/htons.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, mingw, MSVC 9, BeOS.

### 8.398 `hypot`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/hypot.html

Gnulib module: hypot or hypot-ieee

Portability problems fixed by either Gnulib module `hypot` or `hypot-ieee`:

Portability problems fixed by Gnulib module `hypot-ieee`:

- When the arguments are mixed NaN and Infinity, this function returns a wrong value on some platforms: OSF/1 5.1, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.399 `hypotf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/hypotf.html

Gnulib module: hypotf or hypotf-ieee

Portability problems fixed by either Gnulib module `hypotf` or `hypotf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
- This function produces wrong values on some platforms: NetBSD 5.1, OpenBSD 4.9.

Portability problems fixed by Gnulib module `hypot-ieee`:

- When the arguments are mixed NaN and Infinity, this function returns a wrong value on some platforms: OSF/1 5.1, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.400 `hypotl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/hypotl.html

Gnulib module: hypotl or hypotl-ieee

Portability problems fixed by either Gnulib module `hypotl` or `hypotl-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function produces very imprecise results on some platforms: OpenBSD 5.1/SPARC.

Portability problems fixed by Gnulib module `hypotl-ieee`:

- When the arguments are mixed NaN and Infinity, this function returns a wrong value on some platforms: OSF/1 5.1, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.401 `iconv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iconv.html

Gnulib module: iconv

Portability problems fixed by Gnulib:

- GNU libiconv is not found if installed in `$PREFIX/lib`.
- Failures are not distinguishable from successful returns on some platforms: AIX 5.1, Solaris 10.
- A buffer overrun can occur on some platforms: AIX 6.1..7.1.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin, mingw, MSVC 9, BeOS, when GNU libiconv is not installed.
- This function was not correctly implemented in glibc versions before 2.2.
- When `iconv` encounters an input character that is valid but that cannot be converted to the output character set, glibc’s and GNU libiconv’s `iconv` stop the conversion. Some other implementations put an implementation-defined character into the output buffer. — Gnulib provides higher-level facilities `striconv` and `striconveh` (wrappers around `iconv`) that deal with conversion errors in a platform independent way.
- This function returns a positive return value, instead of zero, when converting from ISO-8859-1 to UTF-8 on HP-UX 11.

### 8.402 `iconv_close`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iconv_close.html

Gnulib module: iconv

Portability problems fixed by Gnulib:

- GNU libiconv is not found if installed in `$PREFIX/lib`.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin, mingw, MSVC 9, BeOS, when GNU libiconv is not installed.

### 8.403 `iconv_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iconv_open.html

Gnulib module: iconv, iconv_open, iconv_open-utf

Portability problems fixed by either Gnulib module `iconv` or `iconv_open`:

- GNU libiconv is not found if installed in `$PREFIX/lib`.
- No converter from EUC-JP to UTF-8 is provided on some platforms: HP-UX 11.

Portability problems fixed by Gnulib module `iconv_open`:

- This function recognizes only non-standard aliases for many encodings (not the IANA registered encoding names) on many platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2010-11.

Portability problems fixed by Gnulib module `iconv_open-utf`:

- This function does not support the encodings UTF-16BE, UTF-16LE, UTF-32BE, UTF-32LE on many platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin, mingw, MSVC 9, BeOS, when GNU libiconv is not installed.
- For some encodings A and B, this function cannot convert directly from A to B, although an indirect conversion from A through UTF-8 to B is possible. This occurs on some platforms: Solaris 11 2010-11. — Gnulib provides a higher-level facility `striconveh` (a wrapper around `iconv`) that deals with this problem.
- The set of supported encodings and conversions is system dependent.

### 8.404 `if_freenameindex`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/if_freenameindex.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- This is available only as a macro, rather than a function, on some platforms: OpenBSD 4.6, MirBSD 10.

### 8.405 `if_indextoname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/if_indextoname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.406 `if_nameindex`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/if_nameindex.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.407 `if_nametoindex`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/if_nametoindex.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 7, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.408 `ilogb`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ilogb.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, MSVC 9.

### 8.409 `ilogbf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ilogbf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, MSVC 9.

### 8.410 `ilogbl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ilogbl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.411 `imaxabs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/imaxabs.html

Gnulib module: imaxabs

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.412 `imaxdiv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/imaxdiv.html

Gnulib module: imaxdiv

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.413 `inet_addr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/inet_addr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- On some old platforms, this function returns a ‘`struct in_addr`’ rather than a scalar type such as ‘`unsigned int`’ or ‘`unsigned long`’.

### 8.414 `inet_ntoa`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/inet_ntoa.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- The `inet_ntoa` function need not be reentrant, and consequently is not required to be thread safe. Implementations of `inet_ntoa` typically write the time stamp into static buffer. If two threads call `inet_ntoa` at roughly the same time, you might end up with the wrong date in one of the threads, or some undefined string.

Note: `inet_ntoa` is specific for IPv4 addresses. A protocol independent function is `inet_ntop`.

### 8.415 `inet_ntop`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/inet_ntop.html

Gnulib module: inet_ntop

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, OSF/1 4.0, Solaris 2.5.1, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is declared in `<netdb.h>` instead of `<arpa/inet.h>` on some platforms: NonStop Kernel.
- This function is declared in `<ws2tcpip.h>`, with a POSIX incompatible declaration, on some platforms: MSVC 9 on Windows >= Vista.

Portability problems not fixed by Gnulib:

- This function’s fourth argument type is `size_t` instead of `socklen_t` on some platforms: OSF/1 5.1, Solaris 10.

### 8.416 `inet_pton`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/inet_pton.html

Gnulib module: inet_pton

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, OSF/1 4.0, Solaris 2.5.1, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is declared in `<netdb.h>` instead of `<arpa/inet.h>` on some platforms: NonStop Kernel.
- This function is declared in `<ws2tcpip.h>`, with a POSIX incompatible declaration, on some platforms: MSVC 9 on Windows >= Vista.

Portability problems not fixed by Gnulib:

### 8.417 `initstate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/initstate.html

Gnulib module: random

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.418 `insque`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/insque.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.419 `ioctl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ioctl.html

Gnulib module: ioctl

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), `ioctl` is called `ioctlsocket`, and error codes for this function are not placed in `errno`, and `WSAGetLastError` must be used instead.
- On glibc platforms, the second parameter is of type `unsigned long` rather than `int`.

Portability problems not fixed by Gnulib:

- Most `ioctl` requests are platform and hardware specific.

### 8.420 `isalnum`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isalnum.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isalnum`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswalnum`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isalnum`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_alnum`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-alnum`’.

### 8.421 `isalnum_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isalnum_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.422 `isalpha`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isalpha.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isalpha`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswalpha`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isalpha`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_alpha`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-alpha`’.

### 8.423 `isalpha_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isalpha_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.424 `isascii`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isascii.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but requires special handling for the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are two alternative APIs:

`c_isascii`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`mb_isascii`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

### 8.425 `isastream`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isastream.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.426 `isatty`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isatty.html

Gnulib module: isatty

Portability problems fixed by Gnulib:

- On native Windows, this function also returns true for character devices such as `NUL`.
- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.427 `isblank`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isblank.html

Gnulib module: isblank

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isblank`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswblank`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isblank`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_blank`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-blank`’.

### 8.428 `isblank_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isblank_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.429 `iscntrl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iscntrl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_iscntrl`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswcntrl`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_iscntrl`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_cntrl`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-cntrl`’.

### 8.430 `iscntrl_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iscntrl_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.431 `isdigit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isdigit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isdigit`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswdigit`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isdigit`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_digit`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-digit`’.

### 8.432 `isdigit_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isdigit_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.433 `isfinite`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isfinite.html

Gnulib module: isfinite

Portability problems fixed by Gnulib:

- This macro is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5.
- This macro incorrectly yields true for some ‘`double`’ arguments, on some platforms: Linux/ia64 (signalling NaNs).
- This macro incorrectly yields true for some ‘`long double`’ arguments, on some platforms: x86 (pseudo-zeroes, unnormalized numbers, pseudo-denormals), x86_64 (pseudo-denormals), ia64 (pseudo-NaN, pseudo-Infinity, pseudo-zeroes, unnormalized numbers, pseudo-denormals).

Portability problems not fixed by Gnulib:

- It is implementation-dependent whether `isfinite` raises an exception given a signaling NaN operand.

### 8.434 `isgraph`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isgraph.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isgraph`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswgraph`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isgraph`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_graph`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-graph`’.

### 8.435 `isgraph_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isgraph_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.436 `isgreater`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isgreater.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5, BeOS.

### 8.437 `isgreaterequal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isgreaterequal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5, BeOS.

### 8.438 `isinf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isinf.html

Gnulib module: isinf

Portability problems fixed by Gnulib:

- This macro is missing on some platforms: AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11.
- This macro incorrectly yields true for some ‘`long double`’ arguments, on some platforms: OpenBSD 4.9/x86 (pseudo-Infinity).

Portability problems not fixed by Gnulib:

### 8.439 `isless`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isless.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5, BeOS.

### 8.440 `islessequal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/islessequal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5, BeOS.

### 8.441 `islessgreater`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/islessgreater.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5, BeOS.

### 8.442 `islower`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/islower.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_islower`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswlower`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_islower`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_lower`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-lower`’.

### 8.443 `islower_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/islower_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.444 `isnan`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isnan.html

Gnulib module: isnan

Portability problems fixed by Gnulib:

- This macro is missing on some platforms: MSVC 9.
- `isnan` was introduced with C99 and is thus commonly not present on pre-C99 systems.
- `isnan` is not a macro on some platforms: IRIX 6.5, OSF/1 5.1 with gcc, Solaris 11 2011-11.
- On IRIX 6.5 with `cc`, `isnan` does not recognize some NaNs.
- On NetBSD/i386 and glibc/ia64, `isnan` does not recognize some forms of NaNs, such as pseudo-NaNs, pseudo-Infinities, and unnormalized numbers.
- On i686 and x86-64, `__builtin_isnanl` (and thus `isnan` implementations based on it) in GCC 4.0 and later does not recognize pseudo-denormals as NaNs, and similarly for pseudo-zeroes, unnormalized numbers, and pseudo-denormals on ia64.

Portability problems not fixed by Gnulib:

### 8.445 `isnormal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isnormal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5.

### 8.446 `isprint`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isprint.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isprint`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswprint`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isprint`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_print`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-print`’.

### 8.447 `isprint_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isprint_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.448 `ispunct`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ispunct.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_ispunct`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswpunct`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_ispunct`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_punct`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-punct`’.

### 8.449 `ispunct_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ispunct_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.450 `isspace`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isspace.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isspace`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswspace`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isspace`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_space`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-space`’.

### 8.451 `isspace_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isspace_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.452 `isunordered`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isunordered.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5, BeOS.

### 8.453 `isupper`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isupper.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isupper`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswupper`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isupper`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_upper`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-upper`’.

### 8.454 `isupper_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isupper_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.455 `iswalnum`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswalnum.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.456 `iswalnum_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswalnum_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.457 `iswalpha`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswalpha.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.458 `iswalpha_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswalpha_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.459 `iswblank`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswblank.html

Gnulib module: iswblank

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9.
- This function is declared but not defined on some platforms: IRIX 6.5.30.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.8.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.460 `iswblank_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswblank_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.461 `iswcntrl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswcntrl.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.462 `iswcntrl_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswcntrl_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.463 `iswctype`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswctype.html

Gnulib module: iswctype

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function is declared in `<wchar.h>`, not in `<wctype.h>`, on some platforms: HP-UX 11.00.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.464 `iswctype_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswctype_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.465 `iswdigit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswdigit.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.466 `iswdigit_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswdigit_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.467 `iswgraph`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswgraph.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.468 `iswgraph_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswgraph_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.469 `iswlower`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswlower.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.470 `iswlower_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswlower_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.471 `iswprint`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswprint.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.472 `iswprint_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswprint_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.473 `iswpunct`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswpunct.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.474 `iswpunct_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswpunct_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.475 `iswspace`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswspace.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.476 `iswspace_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswspace_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.477 `iswupper`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswupper.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.478 `iswupper_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswupper_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.479 `iswxdigit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswxdigit.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.
- This function returns 0 for all possible arguments on some platforms: Linux libc5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.480 `iswxdigit_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswxdigit_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.481 `isxdigit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isxdigit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with `MB_CUR_MAX > 1` (this includes all the common UTF-8 locales). There are four alternative APIs:

`c_isxdigit`

  This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘`c-ctype`’.

`iswxdigit`

  This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the `mbrtowc` function. It is provided by the Gnulib module ‘`wctype`’.

`mb_isxdigit`

  This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘`mbchar`’.

`uc_is_xdigit`

  This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘`unictype/ctype-xdigit`’.

### 8.482 `isxdigit_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isxdigit_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.483 `j0`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/j0.html

Gnulib module: j0

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.

### 8.484 `j1`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/j1.html

Gnulib module: j1

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.

### 8.485 `jn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/jn.html

Gnulib module: jn

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.

### 8.486 `jrand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/jrand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.487 `kill`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/kill.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.488 `killpg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/killpg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.489 `l64a`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/l64a.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, Minix 3.1.8, mingw, MSVC 9, BeOS.
- This function was not correctly implemented in glibc versions before 2.2.5.

### 8.490 `labs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/labs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.491 `lchown`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lchown.html

Gnulib module: lchown

Portability problems fixed by Gnulib:

- Some platforms fail to detect trailing slash on non-directories, as in `lchown("link-to-file/",uid,gid)`: FreeBSD 7.2, Solaris 9.
- Some platforms fail to update the change time when at least one argument was not -1, but no ownership changes resulted. However, without `lchmod`, the replacement only fixes this for non-symlinks: OpenBSD 4.0.
- This function is missing on some platforms; however, the replacement fails on symlinks if `chown` is supported, and fails altogether with `ENOSYS` otherwise: MacOS X 10.3, Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.492 `lcong48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lcong48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.493 `ldexp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ldexp.html

Gnulib module: ldexp

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.494 `ldexpf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ldexpf.html

Gnulib module: ldexpf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.495 `ldexpl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ldexpl.html

Gnulib module: ldexpl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function has no prototype in `<math.h>` on some platforms: MacOS X.
- This function does not work on finite numbers on some platforms: AIX 5.1.

Portability problems not fixed by Gnulib:

### 8.496 `ldiv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ldiv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.497 `lfind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lfind.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.

### 8.498 `lgamma`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lgamma.html

Gnulib module: lgamma

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.
- This function is not declared on some platforms: IRIX 5.3.

### 8.499 `lgammaf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lgammaf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, MSVC 9.

### 8.500 `lgammal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lgammal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.501 `link`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/link.html

Gnulib module: link

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function fails to reject trailing slashes on non-directories on some platforms: FreeBSD 7.2, Solaris 11 2011-11, Cygwin 1.5.x.
- When the second argument is a dangling symlink, some platforms follow that link and create the destination rather than failing: IRIX 6.5.

Portability problems not fixed by Gnulib:

- When the first argument is a symlink, some platforms create a hard-link to what the symlink referenced, rather than to the symlink itself. Use ‘`linkat`’ to force a particular behavior.

### 8.502 `linkat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/linkat.html

Gnulib module: linkat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.
- This function fails to reject trailing slashes on non-directories on some platforms: AIX 7.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.503 `lio_listio`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lio_listio.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.504 `listen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/listen.html

Gnulib module: listen

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `listen` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.505 `llabs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llabs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.23, OSF/1 5.1, MSVC 9, Interix 3.5.

### 8.506 `lldiv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lldiv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, HP-UX 11.23, OSF/1 5.1, MSVC 9, Interix 3.5.

### 8.507 `llrint`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llrint.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5.

### 8.508 `llrintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llrintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5.

### 8.509 `llrintl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llrintl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.

### 8.510 `llround`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llround.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.511 `llroundf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llroundf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.7.7, MSVC 9, Interix 3.5.

### 8.512 `llroundl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/llroundl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.513 `localeconv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/localeconv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.514 `localtime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/localtime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.515 `localtime_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/localtime_r.html

Gnulib module: time_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function is not declared unless `_REENTRANT` is defined, on some platforms: HP-UX 11.
- Some platforms define a function of this name that is incompatible to POSIX: HP-UX 10.

Portability problems not fixed by Gnulib:

### 8.516 `lockf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lockf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly across the entire data range of files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.517 `log`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log.html

Gnulib module: log or log-ieee

Portability problems fixed by either Gnulib module `log` or `log-ieee`:

- This function returns a wrong value for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems fixed by Gnulib module `log-ieee`:

- This function returns a wrong value for a negative argument on some platforms: NetBSD 5.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.518 `log10`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log10.html

Gnulib module: log10

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.519 `log10f`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log10f.html

Gnulib module: log10f

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.520 `log10l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log10l.html

Gnulib module: log10l

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is not declared on some platforms: AIX 5.1.

Portability problems not fixed by Gnulib:

### 8.521 `log1p`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log1p.html

Gnulib module: log1p or log1p-ieee

Portability problems fixed by either Gnulib module `log1p` or `log1p-ieee`:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.

Portability problems fixed by Gnulib module `log1p-ieee`:

- This function has problems when the argument is minus zero on some platforms: AIX 7.1, HP-UX 11.

Portability problems not fixed by Gnulib:

### 8.522 `log1pf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log1pf.html

Gnulib module: log1pf or log1pf-ieee

Portability problems fixed by either Gnulib module `log1pf` or `log1pf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9.
- This function returns a wrong value for the argument -1.0f on some platforms: IRIX 6.5.

Portability problems fixed by Gnulib module `log1pf-ieee`:

- This function has problems when the argument is minus zero on some platforms: OpenBSD 4.9, AIX 7.1.

Portability problems not fixed by Gnulib:

### 8.523 `log1pl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log1pl.html

Gnulib module: log1pl or log1pl-ieee

Portability problems fixed by either Gnulib module `log1pl` or `log1pl-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

Portability problems fixed by Gnulib module `log1pl-ieee`:

- This function has problems when the argument is minus zero on some platforms: AIX 7.1, IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.524 `log2`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log2.html

Gnulib module: log2 or log2-ieee

Portability problems fixed by either Gnulib module `log2` or `log2-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, older IRIX 6.5, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared on some platforms: IRIX 6.5.
- This function is only provided as a macro on some platforms: Cygwin 1.5.x.
- This function returns a wrong value for a minus zero argument on some platforms: OSF/1 5.1.
- This function returns slightly wrong values for exact powers of 2 on some platforms: Cygwin 1.7.9.

Portability problems fixed by Gnulib module `log2-ieee`:

- This function returns a wrong value for a negative argument on some platforms: NetBSD 5.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.525 `log2f`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log2f.html

Gnulib module: log2f or log2f-ieee

Portability problems fixed by either Gnulib module `log2f` or `log2f-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, older IRIX 6.5, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared on some platforms: IRIX 6.5.
- This function is only provided as a macro on some platforms: Cygwin 1.5.x.
- This function returns a wrong value for a minus zero argument on some platforms: OSF/1 5.1.
- This function returns slightly wrong values for exact powers of 2 on some platforms: Cygwin 1.7.9.

Portability problems fixed by Gnulib module `log2f-ieee`:

- This function returns a wrong value for a negative argument on some platforms: NetBSD 5.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.526 `log2l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log2l.html

Gnulib module: log2l

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: IRIX 6.5.
- This function returns a wrong value for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.527 `logb`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logb.html

Gnulib module: logb

Portability problems fixed by Gnulib:

- This function is missing a declaration on some platforms: Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.

### 8.528 `logbf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logbf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, MSVC 9.

### 8.529 `logbl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logbl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.530 `logf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logf.html

Gnulib module: logf or logf-ieee

Portability problems fixed by either Gnulib module `logf` or `logf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function returns a wrong value for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems fixed by Gnulib module `logf-ieee`:

- This function returns a wrong value for a negative argument on some platforms: NetBSD 5.1.

Portability problems not fixed by Gnulib:

### 8.531 `logl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logl.html

Gnulib module: logl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.
- This function returns wrong results on some platforms: glibc 2.7 on Linux/SPARC64.
- This function returns a wrong value for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.532 `longjmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/longjmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- The effects of this call are system and compiler optimization dependent, since it restores the contents of register-allocated variables but not the contents of stack-allocated variables.
- When longjumping out of a signal handler that was being executed on an alternate stack (installed through `sigaltstack`), on FreeBSD, NetBSD, OpenBSD, you need to clear the `SS_ONSTACK` flag in the `stack_t` structure managed by the kernel.

### 8.533 `lrand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lrand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.534 `lrint`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lrint.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.535 `lrintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lrintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.536 `lrintl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lrintl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.

### 8.537 `lround`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lround.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.538 `lroundf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lroundf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.539 `lroundl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lroundl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.540 `lsearch`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lsearch.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.

### 8.541 `lseek`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lseek.html

Gnulib module: lseek

Portability problems fixed by Gnulib:

- On platforms where `off_t` is a 32-bit type, `lseek` does not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- This function mistakenly succeeds on pipes on some platforms: mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- POSIX does not specify which file descriptors support seeking and which don’t. In practice, regular files and block devices support seeking, and ttys, pipes, and most character devices don’t support it.
- When the third argument is invalid, POSIX says that `lseek` should set `errno` to `EINVAL` and return -1, but in this situation a `SIGSYS` signal is raised on some platforms: IRIX 6.5.
- When the `lseek` function fails, POSIX says that the file offset remains unchanged. But on some platforms, attempting to set a negative file offset fails and sets the file offset to 0: BeOS.

### 8.542 `lstat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/lstat.html

Gnulib module: lstat

Portability problems fixed by Gnulib:

- On platforms where `off_t` is a 32-bit type, `lstat` may not correctly report the size of files or block devices larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- For symlinks, when the argument ends in a slash, some platforms don’t dereference the argument: Solaris 9.
- On some platforms, `lstat("file/",buf)` succeeds instead of failing with `ENOTDIR`. Solaris 9.
- On Windows platforms (excluding Cygwin), symlinks are not supported, so `lstat` does not exist.

Portability problems not fixed by Gnulib:

- See sys/stat.h, for general portability problems with `struct stat`.

### 8.543 `malloc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/malloc.html

Gnulib module: malloc-posix

Portability problems fixed by Gnulib:

- Upon failure, the function does not set `errno` to `ENOMEM` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- `malloc (0)` always returns a NULL pointer on some platforms: AIX 5.1, OSF/1 5.1.

Extension: Gnulib provides a module ‘`malloc-gnu`’ that substitutes a `malloc` implementation that behaves more like the glibc implementation, regarding the result of `malloc (0)`.

### 8.544 `mblen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mblen.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.545 `mbrlen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbrlen.html

Gnulib module: mbrlen

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
- This function does not put the state into non-initial state when parsing an incomplete multibyte character on some platforms: AIX 5.1, OSF/1 5.1.
- This function returns the total number of bytes that make up the multibyte character, not the number of bytes that were needed to complete the multibyte character, on some platforms: HP-UX 11.11, Solaris 11 2010-11.
- This function may not return 0 when parsing the NUL character on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

### 8.546 `mbrtoc16`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.547 `mbrtoc32`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.548 `mbrtowc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbrtowc.html

Gnulib module: mbrtowc

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
- This function does not put the state into non-initial state when parsing an incomplete multibyte character on some platforms: AIX 5.1, OSF/1 5.1.
- This function does not produce correct results in the zh_CN.GB18030 locale on some platforms: Solaris 8.
- This function fails if the `pwc` argument is NULL on some platforms: Solaris 7.
- This function does not ignore the `pwc` argument if the string argument is NULL on some platforms: OSF/1 5.1.
- This function returns the total number of bytes that make up the multibyte character, not the number of bytes that were needed to complete the multibyte character, on some platforms: HP-UX 11.11, Solaris 11 2010-11, mingw, possibly MSVC 9.
- This function may not return 0 when parsing the NUL character on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.549 `mbsinit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbsinit.html

Gnulib module: mbsinit

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, MSVC 9, Interix 3.5.
- This function always returns 1, even in multibyte locales, on some platforms: mingw.

Portability problems not fixed by Gnulib:

### 8.550 `mbsnrtowcs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbsnrtowcs.html

Gnulib module: mbsnrtowcs

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- The specification is not clear about whether this function should update the conversion state when the first argument (the destination pointer) is NULL. The glibc, MacOS X, FreeBSD implementations do update the state in this case. For portability, when passing a NULL destination argument, it is best to pass a pointer to a temporary copy of the conversion state.

### 8.551 `mbsrtowcs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbsrtowcs.html

Gnulib module: mbsrtowcs

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
- This function does not work on some platforms: HP-UX 11, Solaris 11 2010-11.
- This function does not work when the first argument is NULL on some platforms: mingw.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- The specification is not clear about whether this function should update the conversion state when the first argument (the destination pointer) is NULL. The glibc implementation does not update the state in this case; the MacOS X and FreeBSD implementations do. For portability, when passing a NULL destination argument, it is best to pass a pointer to a temporary copy of the conversion state.

### 8.552 `mbstowcs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbstowcs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.553 `mbtowc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbtowc.html

Gnulib module: mbtowc

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function accumulates hidden state on some platforms: glibc 2.8 (see http://sourceware.org/bugzilla/show_bug.cgi?id=9674).
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.554 `memccpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/memccpy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.

### 8.555 `memchr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/memchr.html

Gnulib module: memchr or memchr-obsolete

Portability problems fixed by either Gnulib module `memchr` or `memchr-obsolete`:

- This function dereferences too much memory on some platforms: glibc 2.10 on x86_64, IA-64; glibc 2.11 on Alpha.

Portability problems fixed by Gnulib module `memchr-obsolete`:

- This function is missing on some older platforms.

Portability problems not fixed by Gnulib:

### 8.556 `memcmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/memcmp.html

Gnulib module: memcmp

Portability problems fixed by Gnulib:

- This function is missing on some older platforms.
- This function does not work on 8-bit data on some older platforms: SunOS 4.1.3.
- This function fails when comparing 16 bytes or more and with at least one buffer not starting on a 4-byte boundary on some older platforms: NeXTstep/x86.

Portability problems not fixed by Gnulib:

### 8.557 `memcpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/memcpy.html

Gnulib module: memcpy

Portability problems fixed by Gnulib:

- This function is missing on some older platforms.

Portability problems not fixed by Gnulib:

### 8.558 `memmove`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/memmove.html

Gnulib module: memmove

Portability problems fixed by Gnulib:

- This function is missing on some older platforms.

Portability problems not fixed by Gnulib:

### 8.559 `memset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/memset.html

Gnulib module: memset

Portability problems fixed by Gnulib:

- This function is missing on some older platforms.

Portability problems not fixed by Gnulib:

### 8.560 `mkdir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mkdir.html

Gnulib module: mkdir

Portability problems fixed by Gnulib:

- This function is declared in different header files (namely, `<io.h>` or `<direct.h>`) on some platforms: mingw, MSVC 9.
- When the argument ends in a slash, the function call fails on some platforms.
- This function mistakenly succeeds on ‘`mkdir("d/./",mode)`’ on some platforms: Cygwin 1.5.x, mingw, MSVC 9.
- On Windows platforms (excluding Cygwin), this function is called `_mkdir` and takes only one argument. The fix (without Gnulib) is to define a macro like this:

      #define mkdir ((int (*)()) _mkdir)

  or

      #define mkdir(path,mode) _mkdir (path)

Portability problems not fixed by Gnulib:

### 8.561 `mkdirat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mkdirat.html

Gnulib module: mkdirat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

### 8.562 `mkdtemp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mkdtemp.html

Gnulib module: mkdtemp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.563 `mkfifo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mkfifo.html

Gnulib module: mkfifo

Portability problems fixed by Gnulib:

- This function mishandles trailing slash on some platforms: FreeBSD 7.2, Solaris 9.
- This function is missing on some platforms; however, the replacement always fails with `ENOSYS`: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.564 `mkfifoat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mkfifoat.html

Gnulib module: mkfifoat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

- The gnulib replacement function always fails with ‘`ENOSYS`’ on some platforms: mingw, MSVC 9.

### 8.565 `mknod`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mknod.html

Gnulib module: mknod

Portability problems fixed by Gnulib:

- This function requires super-user privileges to create a fifo: FreeBSD 7.2, OpenBSD 3.8.
- This function mishandles trailing slash on some platforms: FreeBSD 7.2, Solaris 9.
- This function is missing on some platforms; however, the replacement always fails with `ENOSYS`: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- Use of this function for anything except fifos is not portable, generally requiring super-user privileges and knowledge of supported device numbers.

### 8.566 `mknodat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mknodat.html

Gnulib module: mkfifoat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

- The gnulib replacement function always fails with ‘`ENOSYS`’ on some platforms: mingw, MSVC 9.

### 8.567 `mkstemp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mkstemp.html

Gnulib module: mkstemp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function is declared in `<unistd.h>` instead of `<stdlib.h>` on some platforms: MacOS X 10.3.
- On some platforms (HP-UX 10.20, SunOS 4.1.4, Solaris 2.5.1), mkstemp has a silly limit that it can create no more than 26 files from a given template. On OSF/1 4.0f, it can create only 32 files per process.
- On platforms where `off_t` is a 32-bit type, `mkstemp` may not work correctly to create files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- On some older platforms, `mkstemp` can create a world or group writable or readable file, if you haven’t set the process umask to 077. This is a security risk.

Portability problems not fixed by Gnulib:

The gnulib module `clean-temp` can create temporary files that will not be left behind after signals such as SIGINT.

### 8.568 `mktime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mktime.html

Gnulib module: mktime

Portability problems fixed by Gnulib:

- `mktime` may go into an endless loop on some platforms.
- `mktime` may occasionally return wrong results on some platforms.

Portability problems not fixed by Gnulib:

### 8.569 `mlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, OSF/1 4.0, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.570 `mlockall`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mlockall.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, OSF/1 4.0, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.571 `mmap`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mmap.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly across the entire data range of files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.
- To get anonymous memory, on some platforms, you can use the flags `MAP_ANONYMOUS | MAP_PRIVATE` and `-1` instead of a file descriptor; on others you have to use a read-only file descriptor of `/dev/zero`.
- On HP-UX, passing a non-NULL first argument, as a hint for the address (even without `MAP_FIXED`, often causes `mmap` to fail. Better pass NULL in this case.
- On HP-UX, `MAP_FIXED` basically never works. On other platforms, it depends on the circumstances whether memory can be returned at a given address.

### 8.572 `modf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/modf.html

Gnulib module: modf or modf-ieee

Portability problems fixed by either Gnulib module `modf` or `modf-ieee`:

Portability problems fixed by Gnulib module `modf-ieee`:

- This function has problems with a NaN argument on some platforms: NetBSD 5.1, Cygwin.
- This function has problems with infinite arguments on some platforms: FreeBSD 6.4, OpenBSD 4.9, IRIX 6.5, OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.573 `modff`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/modff.html

Gnulib module: modff or modff-ieee

Portability problems fixed by either Gnulib module `modff` or `modff-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11.
- This function is only defined as a buggy macro with arguments on some platforms: MSVC 9.

Portability problems fixed by Gnulib module `modff-ieee`:

- This function has problems with a NaN argument on some platforms: NetBSD 5.1, OpenBSD 4.9, Solaris 9, Cygwin.
- This function has problems with infinite arguments on some platforms: IRIX 6.5, OSF/1 5.1, mingw.

Portability problems not fixed by Gnulib:

### 8.574 `modfl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/modfl.html

Gnulib module: modfl or modfl-ieee

Portability problems fixed by either Gnulib module `modfl` or `modfl-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems fixed by Gnulib module `modfl-ieee`:

- This function has problems with infinite arguments on some platforms: IRIX 6.5, OSF/1 5.1, mingw.

Portability problems not fixed by Gnulib:

### 8.575 `mprotect`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mprotect.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- This function does not set `errno` on some platforms: mingw.
- On AIX, it is not possible to use `mprotect` on memory regions allocated with `malloc`.

### 8.576 `mq_close`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_close.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.577 `mq_getattr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_getattr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.578 `mq_notify`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_notify.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.579 `mq_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.580 `mq_receive`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_receive.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.581 `mq_send`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_send.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.582 `mq_setattr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_setattr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.583 `mq_timedreceive`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_timedreceive.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.584 `mq_timedsend`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_timedsend.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.585 `mq_unlink`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mq_unlink.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.586 `mrand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mrand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.587 `msgctl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/msgctl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.588 `msgget`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/msgget.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.589 `msgrcv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/msgrcv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.590 `msgsnd`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/msgsnd.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.591 `msync`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/msync.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- On NetBSD, `msync` takes only two arguments.

### 8.592 `munlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/munlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, OSF/1 4.0, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.593 `munlockall`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/munlockall.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, OSF/1 4.0, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.594 `munmap`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/munmap.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.595 `nan`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nan.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.596 `nanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.597 `nanl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nanl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.598 `nanosleep`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nanosleep.html

Gnulib module: nanosleep

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
- This function reports failure when called with small arguments such as 1 ns on some platforms: AIX 4.3.2.
- This function mishandles large arguments when interrupted by a signal on some platforms: Linux 64-bit, Solaris 64-bit.
- This function cannot sleep longer than 49.7 days on some platforms: Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

### 8.599 `nearbyint`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nearbyint.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.600 `nearbyintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nearbyintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.601 `nearbyintl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nearbyintl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.602 `newlocale`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/newlocale.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.603 `nextafter`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nextafter.html

Gnulib module: nextafter

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, MSVC 9.
- This function is not declared on some platforms: IRIX 5.3.

### 8.604 `nextafterf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nextafterf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 9, MSVC 9.

### 8.605 `nextafterl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nextafterl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.606 `nexttoward`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nexttoward.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.607 `nexttowardf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nexttowardf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.608 `nexttowardl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nexttowardl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.609 `nftw`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nftw.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 3.0, Minix 3.1.8, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not correctly report the size of files or block devices larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.610 `nice`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nice.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- In glibc before glibc 2.2.4, `nice` returned 0 upon success.

### 8.611 `nl_langinfo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nl_langinfo.html

Gnulib module: nl_langinfo

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- The constant `CODESET` is not supported on some platforms: glibc 2.0.6, OpenBSD 3.8.
- The constants `ERA`, `ERA_D_FMT`, `ERA_D_T_FMT`, `ERA_T_FMT`, `ALT_DIGITS` are not supported on some platforms: OpenBSD 3.8.
- The constants `T_FMT_AMPM`, `YESEXPR`, `NOEXPR` are not supported on some platforms: IRIX 5.3.
- The constants `YESEXPR` and `NOEXPR` do not return a valid string on some platforms: Irix 6.5.

Portability problems not fixed by Gnulib:

- On Cygwin 1.5.x, which doesn’t have locales, `nl_langinfo(CODESET)` always returns `"US-ASCII"`.
- On Cygwin 1.7.0, only the charset portion of a locale designation is honored.
- On NetBSD 5.0, in some locales, `nl_langinfo(CRNCYSTR)` returns the empty string, although the local currency symbol, as returned by `localeconv()->currency_symbol`, is non-empty.
- On NetBSD 5.1, in the "C" locale, the results of `nl_langinfo(ABMON_1)` ... `nl_langinfo(ABMON_12)` are full month names, not abbreviated month names.

### 8.612 `nl_langinfo_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nl_langinfo_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.613 `nrand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/nrand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.614 `ntohl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ntohl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, mingw, MSVC 9, BeOS.

### 8.615 `ntohs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ntohs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, mingw, MSVC 9, BeOS.

### 8.616 `open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/open.html

Gnulib module: open, fchdir

Portability problems fixed by the Gnulib module open:

- On platforms where `off_t` is a 32-bit type, `open` may not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- This function does not fail when the file name argument ends in a slash and (without the slash) names a nonexistent file or a file that is not a directory, on some platforms: FreeBSD 7.2, AIX 7.1, HP-UX 11.00, Solaris 9, Irix 5.3.
- This function does not support the `O_NONBLOCK` flag when it is defined by the gnulib module `nonblocking` on some platforms: mingw, MSVC 9.
- On Windows platforms (excluding Cygwin), this function does usually not recognize the `/dev/null` filename.

Portability problems fixed by the Gnulib module fchdir:

- On Windows platforms (excluding Cygwin), this function fails to open a read-only descriptor for directories.

Portability problems not fixed by Gnulib:

- On Windows, this function returns a file handle in `O_TEXT` mode by default; this means that it translates `'\n'` to CR/LF by default. Use the `O_BINARY` flag if you need reliable binary I/O.

### 8.617 `openat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/openat.html

Gnulib module: openat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.
- On platforms where `off_t` is a 32-bit type, `open` may not work correctly with files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- This function does not fail when the file name argument ends in a slash and (without the slash) names a nonexistent file or a file that is not a directory, on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

### 8.618 `opendir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/opendir.html

Gnulib module: opendir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. Also, on platforms where `ino_t` is a 32-bit type, this function may report inode numbers incorrectly. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

### 8.619 `openlog`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/openlog.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.620 `open_memstream`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/open_memstream.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.621 `open_wmemstream`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/open_wmemstream.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.622 `optarg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/optarg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, IRIX 6.5, OSF/1 5.1, MSVC 9.

### 8.623 `opterr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/opterr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: IRIX 6.5, OSF/1 5.1, MSVC 9.

### 8.624 `optind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/optind.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: IRIX 6.5, OSF/1 5.1, MSVC 9.

### 8.625 `optopt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/optopt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, IRIX 6.5, OSF/1 5.1, MSVC 9.

### 8.626 `pathconf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pathconf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.627 `pause`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pause.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.628 `pclose`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pclose.html

Gnulib module: pclose

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.629 `perror`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/perror.html

Gnulib module: perror

Portability problems fixed by Gnulib:

- This function does not support the error values that are specified by POSIX but not defined by the system, on some platforms: OpenBSD 4.0, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9.
- This function treats `errno` of 0 like failure, although POSIX requires that the message declare it as a success, on some platforms: FreeBSD 8.2, OpenBSD 4.7, MacOS X 10.5.
- This function clobbers the `strerror` buffer on some platforms: Cygwin 1.7.9.
- This function fails to print a useful a string for out-of-range integers on some platforms: HP-UX 11, IRIX 6.5, Solaris 8.

Portability problems not fixed by Gnulib:

- POSIX requires that this function set the stream error bit (detected by `ferror`) on write failure, but not all platforms do this: glibc 2.13, cygwin 1.7.9.
- POSIX requires that this function not alter stream orientation, but the gnulib replacement locks in byte orientation and fails on wide character streams.

### 8.630 `pipe`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pipe.html

Gnulib module: pipe-posix

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function crashes rather than failing with `EMFILE` if no resources are left on some platforms: Cygwin 1.7.9.

### 8.631 `poll`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/poll.html

Gnulib module: poll

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- This function doesn’t work on special files like `/dev/null` and ttys like `/dev/tty` on some platforms: MacOS X 10.4.0, AIX 5.3.

Portability problems not fixed by Gnulib:

### 8.632 `popen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/popen.html

Gnulib module: popen

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.
- Some platforms start the child with closed stdin or stdout if the standard descriptors were closed in the parent: Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

- On native Windows platforms, this functions terminates the current process with exit code 127 if the environment variable `COMSPEC` is not set.
- Some platforms mistakenly set the close-on-exec bit, then if it is cleared by the application, the platform then leaks file descriptors from earlier `popen` calls into subsequent `popen` children: Cygwin 1.5.x.

### 8.633 `posix_fadvise`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fadvise.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly across the entire data range of files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.634 `posix_fallocate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly across the entire data range of files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.635 `posix_madvise`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_madvise.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.636 `posix_mem_offset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_mem_offset.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.637 `posix_memalign`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

The Gnulib module `pagealign_alloc` provides a similar API that returns memory aligned on a system page boundary.

### 8.638 `posix_openpt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_openpt.html

Gnulib module: posix_openpt

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. However, the replacement may fail with `ENOSYS` or `ENOENT` on some platforms.

Portability problems not fixed by Gnulib:

Note that when using this function to open the master side of a pseudo-terminal, you still need platform dependent code to open the corresponding slave side. The Gnulib module `openpty` provides an easy-to-use API that does both at once.

### 8.639 `posix_spawn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawn.html

Gnulib module: posix_spawn

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- When this function fails, it causes the stdio buffer contents to be output twice on some platforms: AIX 6.1.

Portability problems not fixed by Gnulib:

- This function does not work on some platforms: AIX 6.1 (under particular circumstances), mingw.

### 8.640 `posix_spawn_file_actions_addclose`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_addclose.html

Gnulib module: posix_spawn_file_actions_addclose

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function does not reject a too large file descriptor on some platforms: Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.641 `posix_spawn_file_actions_adddup2`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_adddup2.html

Gnulib module: posix_spawn_file_actions_adddup2

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function does not reject a too large file descriptor on some platforms: Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.642 `posix_spawn_file_actions_addopen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_addopen.html

Gnulib module: posix_spawn_file_actions_addopen

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function does not reject a too large file descriptor on some platforms: Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 8.643 `posix_spawn_file_actions_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_destroy.html

Gnulib module: posix_spawn_file_actions_destroy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.644 `posix_spawn_file_actions_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawn_file_actions_init.html

Gnulib module: posix_spawn_file_actions_init

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.645 `posix_spawnattr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_destroy.html

Gnulib module: posix_spawnattr_destroy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.646 `posix_spawnattr_getflags`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_getflags.html

Gnulib module: posix_spawnattr_getflags

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.647 `posix_spawnattr_getpgroup`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_getpgroup.html

Gnulib module: posix_spawnattr_getpgroup

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.648 `posix_spawnattr_getschedparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_getschedparam.html

Gnulib module: posix_spawnattr_getschedparam

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.649 `posix_spawnattr_getschedpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_getschedpolicy.html

Gnulib module: posix_spawnattr_getschedpolicy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.650 `posix_spawnattr_getsigdefault`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_getsigdefault.html

Gnulib module: posix_spawnattr_getsigdefault

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.651 `posix_spawnattr_getsigmask`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_getsigmask.html

Gnulib module: posix_spawnattr_getsigmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.652 `posix_spawnattr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_init.html

Gnulib module: posix_spawnattr_init

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.653 `posix_spawnattr_setflags`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_setflags.html

Gnulib module: posix_spawnattr_setflags

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.654 `posix_spawnattr_setpgroup`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_setpgroup.html

Gnulib module: posix_spawnattr_setpgroup

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.655 `posix_spawnattr_setschedparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_setschedparam.html

Gnulib module: posix_spawnattr_setschedparam

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.656 `posix_spawnattr_setschedpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_setschedpolicy.html

Gnulib module: posix_spawnattr_setschedpolicy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.657 `posix_spawnattr_setsigdefault`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_setsigdefault.html

Gnulib module: posix_spawnattr_setsigdefault

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.658 `posix_spawnattr_setsigmask`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnattr_setsigmask.html

Gnulib module: posix_spawnattr_setsigmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.659 `posix_spawnp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_spawnp.html

Gnulib module: posix_spawnp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- When this function fails, it causes the stdio buffer contents to be output twice on some platforms: AIX 6.1.

Portability problems not fixed by Gnulib:

- This function does not work on some platforms: AIX 6.1 (under particular circumstances), mingw.

### 8.660 `posix_trace_attr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.661 `posix_trace_attr_getclockres`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getclockres.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.662 `posix_trace_attr_getcreatetime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getcreatetime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.663 `posix_trace_attr_getgenversion`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getgenversion.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.664 `posix_trace_attr_getinherited`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getinherited.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.665 `posix_trace_attr_getlogfullpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getlogfullpolicy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.666 `posix_trace_attr_getlogsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getlogsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.667 `posix_trace_attr_getmaxdatasize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getmaxdatasize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.668 `posix_trace_attr_getmaxsystemeventsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getmaxsystemeventsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.669 `posix_trace_attr_getmaxusereventsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getmaxusereventsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.670 `posix_trace_attr_getname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.671 `posix_trace_attr_getstreamfullpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getstreamfullpolicy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.672 `posix_trace_attr_getstreamsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_getstreamsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.673 `posix_trace_attr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.674 `posix_trace_attr_setinherited`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setinherited.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.675 `posix_trace_attr_setlogfullpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setlogfullpolicy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.676 `posix_trace_attr_setlogsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setlogsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.677 `posix_trace_attr_setmaxdatasize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setmaxdatasize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.678 `posix_trace_attr_setname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.679 `posix_trace_attr_setstreamfullpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setstreamfullpolicy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.680 `posix_trace_attr_setstreamsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_attr_setstreamsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.681 `posix_trace_clear`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_clear.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.682 `posix_trace_close`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_close.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.683 `posix_trace_create`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_create.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.684 `posix_trace_create_withlog`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_create_withlog.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.685 `posix_trace_event`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_event.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.686 `posix_trace_eventid_equal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventid_equal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.687 `posix_trace_eventid_get_name`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventid_get_name.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.688 `posix_trace_eventid_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventid_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.689 `posix_trace_eventset_add`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventset_add.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.690 `posix_trace_eventset_del`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventset_del.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.691 `posix_trace_eventset_empty`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventset_empty.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.692 `posix_trace_eventset_fill`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventset_fill.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.693 `posix_trace_eventset_ismember`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventset_ismember.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.694 `posix_trace_eventtypelist_getnext_id`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventtypelist_getnext_id.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.695 `posix_trace_eventtypelist_rewind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_eventtypelist_rewind.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.696 `posix_trace_flush`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_flush.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.697 `posix_trace_get_attr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_get_attr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.698 `posix_trace_get_filter`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_get_filter.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.699 `posix_trace_get_status`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_get_status.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.700 `posix_trace_getnext_event`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_getnext_event.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.701 `posix_trace_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.702 `posix_trace_rewind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_rewind.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.703 `posix_trace_set_filter`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_set_filter.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.704 `posix_trace_shutdown`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_shutdown.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.705 `posix_trace_start`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_start.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.706 `posix_trace_stop`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_stop.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.707 `posix_trace_timedgetnext_event`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_timedgetnext_event.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.708 `posix_trace_trid_eventid_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_trid_eventid_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.709 `posix_trace_trygetnext_event`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_trace_trygetnext_event.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.710 `posix_typed_mem_get_info`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_typed_mem_get_info.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.711 `posix_typed_mem_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/posix_typed_mem_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.712 `pow`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pow.html

Gnulib module: pow

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.713 `powf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/powf.html

Gnulib module: powf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.714 `powl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/powl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

### 8.715 `pread`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pread.html

Gnulib module: pread

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 10, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- This function returns zero instead of positive values when large file support is enabled on some platforms: HP-UX 11.11.
- This function does not fail on pipes on some platforms: HP-UX 11.31.

Portability problems not fixed by Gnulib:

### 8.716 `printf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/printf.html

Gnulib module: printf-posix or stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `printf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems fixed by Gnulib module `stdio` or `printf-posix`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio` or `printf-posix`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- Attempting to write to a read-only stream fails with `EOF` but does not set the error flag for `ferror` on some platforms: glibc 2.13, cygwin 1.7.9.

### 8.717 `pselect`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pselect.html

Gnulib module: —

Portability problems fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

- When the sigmask argument is nonnull on platforms that do not natively support this function, race conditions are possible when its gnulib implementation temporarily modifies the signal mask, and the behavior is unspecified in a multi-threaded process.

### 8.718 `psiginfo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/psiginfo.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.719 `psignal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/psignal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.720 `pthread_atfork`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_atfork.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.721 `pthread_attr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.722 `pthread_attr_getdetachstate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getdetachstate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.723 `pthread_attr_getguardsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getguardsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.724 `pthread_attr_getinheritsched`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getinheritsched.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.725 `pthread_attr_getschedparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getschedparam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.726 `pthread_attr_getschedpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getschedpolicy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.727 `pthread_attr_getscope`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getscope.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.728 `pthread_attr_getstack`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getstack.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.729 `pthread_attr_getstacksize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_getstacksize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.730 `pthread_attr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.731 `pthread_attr_setdetachstate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setdetachstate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.732 `pthread_attr_setguardsize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setguardsize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.733 `pthread_attr_setinheritsched`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setinheritsched.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.734 `pthread_attr_setschedparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setschedparam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.735 `pthread_attr_setschedpolicy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setschedpolicy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.736 `pthread_attr_setscope`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setscope.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.737 `pthread_attr_setstack`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setstack.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.738 `pthread_attr_setstacksize`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_setstacksize.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.739 `pthread_barrier_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.740 `pthread_barrier_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.741 `pthread_barrier_wait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_wait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.742 `pthread_barrierattr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrierattr_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.743 `pthread_barrierattr_getpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrierattr_getpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.744 `pthread_barrierattr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrierattr_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.745 `pthread_barrierattr_setpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrierattr_setpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.746 `pthread_cancel`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cancel.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.747 `pthread_cleanup_pop`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cleanup_pop.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.748 `pthread_cleanup_push`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cleanup_push.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.749 `pthread_cond_broadcast`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_broadcast.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.750 `pthread_cond_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.751 `pthread_cond_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.752 `pthread_cond_signal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_signal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.753 `pthread_cond_timedwait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_timedwait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.754 `pthread_cond_wait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_cond_wait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.755 `pthread_condattr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.756 `pthread_condattr_getclock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_getclock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.757 `pthread_condattr_getpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_getpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.758 `pthread_condattr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.759 `pthread_condattr_setclock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_setclock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.760 `pthread_condattr_setpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_condattr_setpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.761 `pthread_create`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_create.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.
- On Linux/glibc platforms before the advent of NPTL, signals could only be sent to one particular thread. In POSIX, signals are sent to the entire process and executed by any thread of the process that happens to have the particular signal currently unblocked.

### 8.762 `pthread_detach`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_detach.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.763 `pthread_equal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_equal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.764 `pthread_exit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_exit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.765 `pthread_getconcurrency`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_getconcurrency.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.766 `pthread_getcpuclockid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_getcpuclockid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.767 `pthread_getschedparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_getschedparam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.768 `pthread_getspecific`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_getspecific.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.769 `pthread_join`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_join.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.770 `pthread_key_create`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_key_create.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.771 `pthread_key_delete`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_key_delete.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.772 `pthread_kill`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_kill.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.773 `pthread_mutex_consistent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_consistent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.774 `pthread_mutex_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.775 `pthread_mutex_getprioceiling`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_getprioceiling.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.776 `pthread_mutex_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.777 `pthread_mutex_lock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_lock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.778 `pthread_mutex_setprioceiling`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_setprioceiling.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.779 `pthread_mutex_timedlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_timedlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, BeOS.

### 8.780 `pthread_mutex_trylock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_trylock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.781 `pthread_mutex_unlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutex_unlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.782 `pthread_mutexattr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.783 `pthread_mutexattr_getprioceiling`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getprioceiling.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.784 `pthread_mutexattr_getprotocol`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getprotocol.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.785 `pthread_mutexattr_getpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.786 `pthread_mutexattr_getrobust`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getrobust.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.787 `pthread_mutexattr_gettype`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_gettype.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.788 `pthread_mutexattr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.789 `pthread_mutexattr_setprioceiling`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_setprioceiling.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.790 `pthread_mutexattr_setprotocol`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_setprotocol.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.791 `pthread_mutexattr_setpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_setpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.792 `pthread_mutexattr_setrobust`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_setrobust.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.793 `pthread_mutexattr_settype`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_settype.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.794 `pthread_once`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_once.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.795 `pthread_rwlock_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.796 `pthread_rwlock_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.797 `pthread_rwlock_rdlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_rdlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.798 `pthread_rwlock_timedrdlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_timedrdlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, BeOS.

### 8.799 `pthread_rwlock_timedwrlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_timedwrlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, BeOS.

### 8.800 `pthread_rwlock_tryrdlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_tryrdlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.801 `pthread_rwlock_trywrlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_trywrlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.802 `pthread_rwlock_unlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_unlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.803 `pthread_rwlock_wrlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlock_wrlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.804 `pthread_rwlockattr_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlockattr_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.805 `pthread_rwlockattr_getpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlockattr_getpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.806 `pthread_rwlockattr_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlockattr_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.807 `pthread_rwlockattr_setpshared`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_rwlockattr_setpshared.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, HP-UX 11, OSF/1 4.0, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.808 `pthread_self`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_self.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.809 `pthread_setcancelstate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_setcancelstate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.810 `pthread_setcanceltype`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_setcanceltype.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.811 `pthread_setconcurrency`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_setconcurrency.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, HP-UX 11, Solaris 2.6, mingw, MSVC 9, BeOS.

### 8.812 `pthread_setschedparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_setschedparam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.813 `pthread_setschedprio`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_setschedprio.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.814 `pthread_setspecific`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_setspecific.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.815 `pthread_sigmask`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_sigmask.html

Gnulib module: pthread_sigmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.
- This function is declared in `<pthread.h>` instead of `<signal.h>` on some platforms: MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6.
- This function does nothing and always returns 0 in programs that are not linked with `-lpthread` on some platforms: FreeBSD 6.4, HP-UX 11.31, Solaris 9.
- When it fails, this functions returns -1 instead of the error number on some platforms: Cygwin 1.7.5.
- This function does not immediately raise signals that were pending before the call and unblocked by the call on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

- On platforms that do not natively support this function, it has unspecified behavior in a multi-threaded process.

### 8.816 `pthread_spin_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_spin_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.817 `pthread_spin_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_spin_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.818 `pthread_spin_lock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_spin_lock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.819 `pthread_spin_trylock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_spin_trylock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.820 `pthread_spin_unlock`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_spin_unlock.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 8.821 `pthread_testcancel`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_testcancel.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.822 `ptsname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ptsname.html

Gnulib module: ptsname

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- This function is not declared on some platforms: IRIX 5.3.
- On Solaris 11 2010-11, this function fails on all BSD-style `/dev/pty*` device files.
- This function is not thread-safe on some platforms: Cygwin 1.7.9. Likewise, the gnulib replacement is not thread-safe.

Note that the Gnulib module `ptsname_r` is a version of this function that is more likely to be thread-safe.

### 8.823 `putc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putc.html

Gnulib module: stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.824 `putc_unlocked`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putc_unlocked.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.825 `putchar`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putchar.html

Gnulib module: stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.826 `putchar_unlocked`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putchar_unlocked.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.827 `putenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putenv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

Extension: Gnulib provides a module ‘`putenv`’ that substitutes a `putenv` implementation that can also be used to remove environment variables.

### 8.828 `putmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.829 `putpmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putpmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.830 `puts`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/puts.html

Gnulib module: stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.831 `pututxline`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pututxline.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.832 `putwc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putwc.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.833 `putwchar`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/putwchar.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.834 `pwrite`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pwrite.html

Gnulib module: pwrite

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 10, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- This function does not fail when an invalid (negative) offset is passed when large file support is enabled on some platforms: HP-UX 11.11.
- This function uses an arbitrary offset instead of the `off_t` argument when large file support is enabled on some platforms: HP-UX 11.11.

Portability problems not fixed by Gnulib:

### 8.835 `qsort`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/qsort.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.836 `quick_exit`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.837 `raise`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/raise.html

Gnulib module: raise

Portability problems fixed by Gnulib:

- This function is missing on some old platforms.
- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.838 `rand`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rand.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.839 `rand_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rand_r.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.840 `random`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/random.html

Gnulib module: random

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.841 `read`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/read.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function may fail with error `EINTR`, even in programs that don’t install any signal handlers, on some platforms: MacOS X 10.5.

For handling `EINTR`, Gnulib provides a module ‘`safe-read`’ with a function `safe_read`.

### 8.842 `readdir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/readdir.html

Gnulib module: readdir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. Also, on platforms where `ino_t` is a 32-bit type, this function may report inode numbers incorrectly. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

### 8.843 `readdir_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/readdir_r.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. Also, on platforms where `ino_t` is a 32-bit type, this function may report inode numbers incorrectly. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.844 `readlink`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/readlink.html

Gnulib module: readlink

Portability problems fixed by Gnulib:

- Some platforms mistakenly succeed on `readlink("link/",buf,len)`: FreeBSD 7.2, Solaris 9.
- On some platforms, `readlink` returns `int` instead of `ssize_t`: glibc 2.4, FreeBSD 6.0, OpenBSD 3.8, Cygwin 1.5.x.
- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- When `readlink` is called on a directory: In the case of NFS mounted directories, Cygwin sets `errno` to `ENOENT` or `EIO` instead of `EINVAL`. To avoid this problem, check for a directory before calling `readlink`.
- When `readlink` is called on a file that is not a symbolic link: Irix may set `errno` to `ENXIO` instead of `EINVAL`. Cygwin may set errno to `EACCES` instead of `EINVAL`.
- Symlink contents do not always have a trailing null byte, and there is no indication if symlink contents were truncated if the return value matches the length. Furthermore, AIX 5.1 and HP-UX 11 set `errno` to `ERANGE` rather than returning truncated contents, and Linux sets `errno` to `EINVAL` if the requested length is zero. Use the gnulib module areadlink for improved ability to read symlink contents.

### 8.845 `readlinkat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/readlinkat.html

Gnulib module: readlinkat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

- This function always fails on platforms that don’t support symlinks: mingw, MSVC 9.
- When `readlink` is called on a directory: In the case of NFS mounted directories, Cygwin sets `errno` to `ENOENT` or `EIO` instead of `EINVAL`. To avoid this problem, check for a directory before calling `readlink`.
- When `readlink` is called on a file that is not a symbolic link: Irix may set `errno` to `ENXIO` instead of `EINVAL`. Cygwin may set errno to `EACCES` instead of `EINVAL`.
- Symlink contents do not always have a trailing null byte, and there is no indication if symlink contents were truncated if the return value matches the length. Furthermore, AIX 5.1 and HP-UX 11 set `errno` to `ERANGE` rather than returning truncated contents, and Linux sets `errno` to `EINVAL` if the requested length is zero. Use the gnulib module areadlink for improved ability to read symlink contents.

### 8.846 `readv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/readv.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.847 `realloc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/realloc.html

Gnulib module: realloc-posix

Portability problems fixed by Gnulib:

- Upon failure, the function does not set `errno` to `ENOMEM` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- It is not portable to call `realloc` with a size of 0. With a NULL pointer argument, this is the same ambiguity as `malloc (0)` on whether a unique zero-size object is created. With a non-NULL pointer argument, C99 requires that if `realloc (p, 0)` returns `NULL` then `p` is still valid. Among implementations that obey C99, behavior varies on whether `realloc (p, 0)` always fails and leaves `p` valid, or usually succeeds and returns a unique zero-size object; either way, a program not suspecting these semantics will leak memory (either the still-valid `p`, or the non-NULL return value). Meanwhile, several implementations violate C99, by always calling `free (p)` but returning NULL: glibc, Cygwin

Extension: Gnulib provides a module ‘`realloc-gnu`’ that substitutes a `realloc` implementation that behaves more like the glibc implementation.

### 8.848 `realpath`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/realpath.html

Gnulib module: canonicalize-lgpl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- This function does not allow for a NULL ‘`resolved`’ parameter on some platforms: MacOS X 10.5, FreeBSD 6.4, OpenBSD 4.4, Solaris 10.
- This function does not always return an absolute path on some platforms: Solaris 10.
- This function fails to detect trailing slashes on non-directories on some platforms: glibc 2.3.5.
- This function fails to recognize non-directories followed ‘`..`’ on some platforms: cygwin.
- This function misbehaves on consecutive slashes on some platforms: AIX 7.

Portability problems not fixed by Gnulib:

- This function does not allow to determine the required size of output buffer; the use of a non-NULL ‘`resolved`’ buffer is non-portable, since PATH_MAX — if it is defined — is nothing more than a guess.

### 8.849 `recv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/recv.html

Gnulib module: recv

Portability problems fixed by Gnulib:

- This function has the return type `int` instead of `ssize_t` on some platforms: OSF/1 5.1.
- On Windows platforms (excluding Cygwin), error codes for `recv` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.850 `recvfrom`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/recvfrom.html

Gnulib module: recvfrom

Portability problems fixed by Gnulib:

- This function has the return type `int` instead of `ssize_t` on some platforms: OSF/1 5.1.
- On Windows platforms (excluding Cygwin), error codes for `recvfrom` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- Some platforms don’t have a `socklen_t` type; in this case this function’s sixth argument type is ‘`int *`’.

### 8.851 `recvmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/recvmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, Interix 3.5, BeOS.

### 8.852 `regcomp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/regcomp.html

Gnulib module: regex

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- Many regular expression implementations have bugs.

Portability problems not fixed by Gnulib:

### 8.853 `regerror`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/regerror.html

Gnulib module: regex

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.854 `regexec`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/regexec.html

Gnulib module: regex

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- Many regular expression implementations have bugs.

Portability problems not fixed by Gnulib:

### 8.855 `regfree`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/regfree.html

Gnulib module: regex

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.856 `remainder`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remainder.html

Gnulib module: remainder or remainder-ieee

Portability problems fixed by either Gnulib module `remainder` or `remainder-ieee`:

- This function is missing on some platforms: MSVC 9.
- This function is not declared on some platforms: IRIX 5.3.

Portability problems fixed by Gnulib module `remainder-ieee`:

- This function has problems when the second argument is zero on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.857 `remainderf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remainderf.html

Gnulib module: remainderf or remainderf-ieee

Portability problems fixed by either Gnulib module `remainderf` or `remainderf-ieee`:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9, MSVC 9.
- This function is not declared on some platforms: IRIX 6.5.
- This function may go into an endless loop on some platforms: IRIX 6.5.

Portability problems fixed by Gnulib module `remainderf-ieee`:

- This function has problems when the second argument is zero on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.858 `remainderl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remainderl.html

Gnulib module: remainderl or remainderl-ieee

Portability problems fixed by either Gnulib module `remainderl` or `remainderl-ieee`:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: IRIX 6.5.
- This function returns completely wrong values on some platforms: OpenBSD 5.1/SPARC.

Portability problems fixed by Gnulib module `remainderl-ieee`:

- This function has problems when the second argument is zero on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.859 `remove`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remove.html

Gnulib module: remove

Portability problems fixed by Gnulib:

- This function fails to reject trailing slashes on non-directories on some platforms: FreeBSD 7.2, Solaris 9.
- This function mistakenly removes a directory with `remove("dir/./")` on some platforms: Cygwin 1.5.x.
- This function does not remove empty directories on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.860 `remque`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remque.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.861 `remquo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remquo.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.862 `remquof`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remquof.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.863 `remquol`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/remquol.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.864 `rename`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rename.html

Gnulib module: rename

Portability problems fixed by Gnulib:

- This function does not allow trailing slashes when creating a destination directory, as in `rename("dir","new/")`: NetBSD 1.6.
- This function does not reject trailing slashes on the destination for non-directories on some platforms, as in `rename("file","new/")`: AIX 7.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not reject trailing slashes on symlinks to non-directories on some platforms, as in `rename("link-to-file/","f")`: FreeBSD 7.2.
- This function ignores trailing slashes on symlinks on some platforms, such that `rename("link/","new")` corrupts `link`: Solaris 9.
- This function incorrectly reduces the link count when comparing two spellings of a hard link on some platforms: NetBSD 1.6, Cygwin 1.5.x.
- This function will not always replace an existing destination on some platforms: Cygwin 1.5.x, mingw, MSVC 9. However, the replacement is not atomic for directories, and may end up losing the empty destination if the source could not be renamed.
- This function mistakenly allows names ending in ‘`.`’ or ‘`..`’ on some platforms: Cygwin 1.5.x, mingw, MSVC 9.
- This function does not reject attempts to rename existing directories and non-directories onto one another on some platforms: Cygwin 1.5.x, mingw, MSVC 9.
- This function does not allow trailing slashes on source directories on older platforms, as in ‘`rename("dir/","new")`’: SunOS 4.1.

Portability problems not fixed by Gnulib:

- POSIX requires that `rename("symlink-to-dir/","dir2")` rename `dir` and leave `symlink-to-dir` dangling; likewise, it requires that `rename("dir","dangling/")` rename `dir` so that `dangling` is no longer a dangling symlink. This behavior is counter-intuitive, so on some systems, `rename` fails with `ENOTDIR` if either argument is a symlink with a trailing slash: glibc, OpenBSD, Cygwin 1.7.
- After renaming a non-empty directory over an existing empty directory, the old directory name is still visible through the `stat` function for 30 seconds after the rename, on NFS file systems, on some platforms: Linux 2.6.18.
- This function will not rename a source that is currently opened by any process: mingw, MSVC 9.

### 8.865 `renameat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/renameat.html

Gnulib module: renameat

Portability problems fixed by Gnulib:

- This function does not reject trailing slashes on non-directories on some platforms, as in `renameat(fd,"file",fd,"new/")`: Solaris 11 2011-11.
- This function ignores trailing slashes on symlinks on some platforms, such that `renameat(fd,"link/",fd,"new")` corrupts `link`: Solaris 9.
- This function is declared in `<unistd.h>` instead of `<stdio.h>` on some platforms: Solaris 11 2011-11.
- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.

Portability problems not fixed by Gnulib:

- POSIX requires that `renameat(fd,"symlink-to-dir/",fd,"dir2")` rename `dir` and leave `symlink-to-dir` dangling; likewise, it requires that `renameat(fd,"dir",fd,"dangling/")` rename `dir` so that `dangling` is no longer a dangling symlink. This behavior is counter-intuitive, so on some systems, `renameat` fails with `ENOTDIR` if either argument is a symlink with a trailing slash: glibc, OpenBSD, Cygwin 1.7.
- After renaming a non-empty directory over an existing empty directory, the old directory name is still visible through the `stat` function for 30 seconds after the rename, on NFS file systems, on some platforms: Linux 2.6.18.
- This function will not rename a source that is currently opened by any process: mingw, MSVC 9.

### 8.866 `rewind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rewind.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.867 `rewinddir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rewinddir.html

Gnulib module: rewinddir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.
- On MacOS X platforms where `long int` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

### 8.868 `rint`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rint.html

Gnulib module: rint

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.869 `rintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rintf.html

Gnulib module: rintf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, Solaris 9, MSVC 9.
- This function is not declared on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

### 8.870 `rintl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rintl.html

Gnulib module: rintl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 8.871 `rmdir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/rmdir.html

Gnulib module: rmdir

Portability problems fixed by Gnulib:

- This function is declared in different header files (namely, `<io.h>` or `<direct.h>`) on some platforms: mingw, MSVC 9.
- This function mistakenly removes a directory with `rmdir("dir/./")` on some platforms: Cygwin 1.5.x.
- This function fails with `EINVAL` instead of the expected `ENOTDIR` for `rmdir("file/")` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- When `rmdir` fails because the specified directory is not empty, the `errno` value is system dependent.
- POSIX requires that `rmdir("link-to-empty/")` remove `empty` and leave `link-to-empty` as a dangling symlink. This is counter-intuitive, so some systems fail with `ENOTDIR` instead: glibc

### 8.872 `round`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/round.html

Gnulib module: round or round-ieee

Portability problems fixed by either Gnulib module `round` or `round-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, older IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared on some platforms: glibc 2.8, IRIX 6.5, OSF/1 5.1.
- This functions returns a wrong result for x = 1/2 - 2^-54 on some platforms: NetBSD 3.0, AIX 7.1.

Portability problems fixed by Gnulib module `round-ieee`:

- This function returns a positive zero for an argument between -0.5 and 0 on some platforms: AIX 7.1, OSF/1 5.1.
- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.873 `roundf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/roundf.html

Gnulib module: roundf or roundf-ieee

Portability problems fixed by either Gnulib module `roundf` or `roundf-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared on some platforms: glibc 2.8, IRIX 6.5, OSF/1 5.1.
- This functions returns a wrong result for x = 1/2 - 2^-25 on some platforms: mingw.

Portability problems fixed by Gnulib module `roundf-ieee`:

- This function returns a positive zero for an argument between -0.5 and 0 on some platforms: AIX 7.1, OSF/1 5.1.
- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.874 `roundl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/roundl.html

Gnulib module: roundl or roundl-ieee

Portability problems fixed by either Gnulib module `roundl` or `roundl-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, older IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: glibc 2.8, IRIX 6.5, OSF/1 5.1.

Portability problems fixed by Gnulib module `roundl-ieee`:

- This function returns a positive zero for an argument between -0.5 and 0 on some platforms: AIX 7.1.
- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.875 `scalbln`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scalbln.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.876 `scalblnf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scalblnf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5.

### 8.877 `scalblnl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scalblnl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5.

### 8.878 `scalbn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scalbn.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, IRIX 6.5, OSF/1 4.0, MSVC 9.

### 8.879 `scalbnf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scalbnf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9.

### 8.880 `scalbnl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scalbnl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5.

### 8.881 `scandir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scandir.html

Gnulib module: scandir

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 9, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. Also, on platforms where `ino_t` is a 32-bit type, this function may report inode numbers incorrectly. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

- The fourth parameter of this function is declared as `int (*) (const void *, const void *)` on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Interix 3.5.
- The fourth parameter of this function is declared as `int (*) (void *, void *)` on some platforms: AIX 5.1.

### 8.882 `scanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/scanf.html

Gnulib module: stdio, nonblocking

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, this function doesn’t support the `hh`, `ll`, `j`, `t`, `z` size specifiers.

### 8.883 `sched_get_priority_max`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_get_priority_max.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.884 `sched_get_priority_min`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_get_priority_min.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, mingw, MSVC 9, BeOS.

### 8.885 `sched_getparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_getparam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.886 `sched_getscheduler`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_getscheduler.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.887 `sched_rr_get_interval`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_rr_get_interval.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.888 `sched_setparam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_setparam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.889 `sched_setscheduler`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_setscheduler.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.890 `sched_yield`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sched_yield.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.891 `seed48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/seed48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.892 `seekdir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/seekdir.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MSVC 9, BeOS.
- On platforms where `long int` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro (only on MacOS X systems).

### 8.893 `select`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/select.html

Gnulib module: select

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), `select` can only be called on descriptors created by the `socket` function, not on regular file descriptors.
- On Windows platforms (excluding Cygwin), error codes for `accept` are not placed in `errno`, and `WSAGetLastError` must be used instead.
- This function fails when the `nfds` argument is 0 on some platforms: Interix 3.5.

Portability problems not fixed by Gnulib:

- When you call `select` with a timeout, some implementations modify the timeout parameter so that upon return from the function, it contains the amount of time not slept. Other implementations leave the timeout parameter unmodified.
- On BeOS, `select` can only be called on descriptors created by the `socket` function, not on regular file descriptors.
- On Solaris 2.6 and older, `select` applied to a file descriptor opened for reading and associated with `/dev/null` hangs, waiting for input, when instead it should return immediately.
- On Linux, when some file descriptor refers to a regular file, `select` may fail, setting `errno` to `EBADF`.
- This function is declared in `<unistd.h>`, not `<sys/select.h>`, on some platforms: IRIX 5.3.

### 8.894 `sem_close`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_close.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.895 `sem_destroy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_destroy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.896 `sem_getvalue`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_getvalue.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.897 `sem_init`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_init.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.898 `sem_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.899 `sem_post`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_post.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.900 `sem_timedwait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_timedwait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9, BeOS.

### 8.901 `sem_trywait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_trywait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.902 `sem_unlink`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_unlink.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, BeOS.

### 8.903 `sem_wait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_wait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.904 `semctl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/semctl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.905 `semget`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/semget.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.906 `semop`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/semop.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.907 `send`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/send.html

Gnulib module: send

Portability problems fixed by Gnulib:

- This function has the return type `int` instead of `ssize_t` on some platforms: OSF/1 5.1.
- On Windows platforms (excluding Cygwin), error codes for `send` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.908 `sendmsg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sendmsg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, Interix 3.5, BeOS.

### 8.909 `sendto`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sendto.html

Gnulib module: sendto

Portability problems fixed by Gnulib:

- This function has the return type `int` instead of `ssize_t` on some platforms: OSF/1 5.1.
- On Windows platforms (excluding Cygwin), error codes for `sendto` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.910 `setbuf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setbuf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.911 `setegid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setegid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.23, mingw, MSVC 9, BeOS.

### 8.912 `setenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setenv.html

Gnulib module: setenv

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 4.3.2, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw, MSVC 9, BeOS.
- This function is not declared on some platforms: OSF/1 5.1.
- On some platforms, this function does not fail with ‘`EINVAL`’ when passed an empty string or a string containing ‘`=`’: MacOS X 10.5, FreeBSD 6.0, NetBSD 1.6, OpenBSD 3.8, Cygwin 1.5.x.
- On some platforms, this function removes a leading ‘`=`’ from the value argument: Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

- Older versions of POSIX required that `setenv(NULL,"",0)` gracefully fail with `EINVAL`, but not all implementations guarantee this, and the requirement was removed.

### 8.913 `seteuid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/seteuid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.23, mingw, MSVC 9, BeOS.

### 8.914 `setgid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setgid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.915 `setgrent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setgrent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.916 `sethostent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sethostent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.917 `setitimer`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setitimer.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.918 `setjmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setjmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- POSIX does not specify whether `setjmp` saves the signal mask in the `jmp_buf`. It does on BSD platforms, and on glibc platforms when `_BSD_SOURCE` is defined; in this case `setjmp` behaves like `sigsetjmp(.,1)`, and functions `_setjmp` and `_longjmp` are available that don’t save or restore the signal mask. On System V platforms (excluding HP-UX), and on glibc platforms by default, `setjmp` doesn’t save the signal mask.

### 8.919 `setkey`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setkey.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.
- This function is not declared in `<stdlib.h>` (without `-D_GNU_SOURCE`) on some platforms: glibc (at least 2.11â2.13).

### 8.920 `setlocale`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setlocale.html

Gnulib module: setlocale

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), `setlocale(category,NULL)` ignores the environment variables `LC_ALL`, `category`, and `LANG`.
- On Windows platforms (excluding Cygwin) and Cygwin 1.5.x, `setlocale(LC_ALL,name)` succeeds and sets the LC_CTYPE category to ‘`C`’ when it does not support the encoding, instead of failing.
- On Windows platforms (excluding Cygwin), `setlocale` understands different locale names, that are not based on ISO 639 language names and ISO 3166 country names.

Portability problems not fixed by Gnulib:

- On Cygwin 1.5.x, which doesn’t have locales, `setlocale(LC_ALL,NULL)` always returns `"C"`.
- On Cygwin 1.7.0, only the charset portion of a locale designation is honored.

### 8.921 `setlogmask`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setlogmask.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.922 `setnetent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setnetent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin, mingw, MSVC 9, BeOS.

### 8.923 `setpgid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setpgid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.924 `setpgrp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setpgrp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5.

### 8.925 `setpriority`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setpriority.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.926 `setprotoent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setprotoent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.927 `setpwent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setpwent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.928 `setregid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setregid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.929 `setreuid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setreuid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.

### 8.930 `setrlimit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setrlimit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- On platforms where `rlim_t` is a 32-bit type, this function does not allow to set limits larger than 4 GB, such as for RLIMIT_FSIZE. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.931 `setservent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setservent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.932 `setsid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setsid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.933 `setsockopt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setsockopt.html

Gnulib module: setsockopt

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `setsockopt` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- Many socket options are not available on all platforms.

### 8.934 `setstate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setstate.html

Gnulib module: random

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function has a slightly incompatible declaration (the argument type being ‘`const char *`’ instead of ‘`char *`’) on some platforms.

### 8.935 `setuid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setuid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.936 `setutxent`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setutxent.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.937 `setvbuf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/setvbuf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.938 `shm_open`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shm_open.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.939 `shm_unlink`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shm_unlink.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.940 `shmat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shmat.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- Attempts to `shmat` into a previously malloc-ed region fail on SunOS 4, with `errno` set to `EINVAL`, even if there is an `munmap` call in between.
- On Linux, the flag `SHM_REMAP` is needed in order to force `shmat` to replace existing memory mappings in the specify address range. On other platforms, it is not needed.

### 8.941 `shmctl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shmctl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.942 `shmdt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shmdt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.943 `shmget`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shmget.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.
- On many platforms (not Linux), SHMMAX is so small that it is unusable for reasonable applications, and/or `shmget` requires superuser privileges.

### 8.944 `shutdown`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/shutdown.html

Gnulib module: shutdown

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), error codes for `shutdown` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

### 8.945 `sigaction`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigaction.html

Gnulib module: sigaction

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- POSIX recommends that when specifying SA_RESETHAND, SA_NODEFER must also be specified.
- Support for SA_ONSTACK is missing on some platforms: mingw, MSVC 9, cygwin.
- Support for SA_SIGINFO is missing on some platforms: mingw, MSVC 9, Interix 3.5.
- Support for SIGCHLD, and thus for SA_NOCLDSTOP and SA_NOCLDWAIT, is missing on some platforms: mingw, MSVC 9.
- Support for SA_RESETHAND is missing on some platforms: NonStop.
- Support for SA_RESTART is missing on some platforms: mingw, MSVC 9, NonStop.
- In spite of having SA_SIGACTION, struct sigaction lacks the sa_sigaction member on some platforms: Irix 5.3.
- The symbolic value `SIG_IGN` for the `SIGCHLD` signal is equivalent to a signal handler

      void handle_child (int sigchld)
      {
        while (waitpid (-1, NULL, WNOHANG) > 0)
          ;
      }

  except that `SIG_IGN` for `SIGCHLD` has the effect that the children execution times are not accounted in the `times` function. On some platforms (BSD? SystemV? Linux?), you need to use the `sigaction` flag `SA_NOCLDWAIT` in order to obtain this behavior.

### 8.946 `sigaddset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigaddset.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.947 `sigaltstack`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigaltstack.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- `sigaltstack` doesn’t work on HP-UX 11/IA-64 and OpenBSD 3.6/Sparc64.
- This function interprets the `ss_sp` member of `stack_t` as the upper bound instead of the lower bound of the alternate stack on some platforms: Irix 6.5

### 8.948 `sigdelset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigdelset.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.949 `sigemptyset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigemptyset.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.950 `sigfillset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigfillset.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.951 `sighold`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sighold.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.952 `sigignore`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigignore.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, BeOS.

### 8.953 `siginterrupt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/siginterrupt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, mingw, MSVC 9, Interix 3.5, BeOS.

Note: POSIX recommends using `sigaction` with SA_RESTART instead of `siginterrupt (sig, 0)`.

### 8.954 `sigismember`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigismember.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.955 `siglongjmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/siglongjmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.
- This is only provided as a macro on some platforms: Cygwin.

### 8.956 `signal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/signal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- On System V platforms, when the signal is triggered, the kernel uninstalls the handler (i.e. resets the signal’s action to SIG_DFL) before invoking the handler. This opens the door to race conditions: undesired things happen if the signal is triggered twice and the signal handler was not quick enough reinstalling itself as a handler. On BSD platforms and glibc platforms, on the other hand, when the signal is triggered, the kernel blocks the signal before invoking the handler. This is saner, but POSIX still allows either behavior. To avoid this problem, use `sigaction` instead of `signal`.

### 8.957 `signbit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/signbit.html

Gnulib module: signbit

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 8.958 `signgam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/signgam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.

### 8.959 `sigpause`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigpause.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.960 `sigpending`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigpending.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.961 `sigprocmask`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigprocmask.html

Gnulib module: sigprocmask

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.962 `sigqueue`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigqueue.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.963 `sigrelse`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigrelse.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

### 8.964 `sigset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigset.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, BeOS.

### 8.965 `sigsetjmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigsetjmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.966 `sigsuspend`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigsuspend.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.967 `sigtimedwait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigtimedwait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- Linux implements the meaning of NULL timeout by doing what `sigwaitinfo` does; other platforms may not do the same.

### 8.968 `sigwait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigwait.html

Gnulib module: extensions

Portability problems fixed by Gnulib:

- This function has an incompatible declaration on some platforms: Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- On Linux/glibc platforms before the advent of NPTL, signals could only be sent to one particular thread. In POSIX, signals are sent to the entire process and executed by any thread of the process that happens to have the particular signal currently unblocked.

### 8.969 `sigwaitinfo`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sigwaitinfo.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.970 `sin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sin.html

Gnulib module: sin

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.971 `sinf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sinf.html

Gnulib module: sinf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.972 `sinh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sinh.html

Gnulib module: sinh

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.973 `sinhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sinhf.html

Gnulib module: sinhf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.974 `sinhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sinhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

### 8.975 `sinl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sinl.html

Gnulib module: sinl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.976 `sleep`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sleep.html

Gnulib module: sleep

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw (2005 or newer), MSVC 9.
- This function takes milliseconds as argument and returns `void` on some platforms: mingw (2005 and older).
- This function cannot sleep longer than 49.7 days on some platforms: Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

- According to POSIX, the `sleep` function may interfere with the program’s use of the `SIGALRM` signal. On Linux, it doesn’t; on other platforms, it may.

### 8.977 `snprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/snprintf.html

Gnulib module: snprintf or snprintf-posix

Portability problems fixed by either Gnulib module `snprintf` or `snprintf-posix`:

- This function is missing on some platforms: IRIX 5.3, OSF/1 4.0, Solaris 2.5.1, MSVC 9.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, BeOS.
- This function does not return a byte count as specified in C99 on some platforms: HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
- This function overwrites memory even when a size argument of 1 is passed on some platforms: Linux libc5, BeOS.

Portability problems fixed by Gnulib module `snprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
- This function does not truncate the result as specified in C99 on some platforms: mingw, MSVC 9.
- This function does not fully support the ‘`n`’ directive on some platforms: HP-UX 11, mingw, MSVC 9.
- This function overwrites memory even when a zero size argument is passed on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

### 8.978 `sockatmark`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sockatmark.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.979 `socket`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/socket.html

Gnulib module: socket

Portability problems fixed by Gnulib:

- On Windows platforms (excluding Cygwin), the descriptors returned by the `socket` function cannot be used in calls to `read`, `write`, and `close`; you have to use `recv`, `send`, `closesocket` in these cases instead.
- On Windows platforms (excluding Cygwin), error codes for `socket` are not placed in `errno`, and `WSAGetLastError` must be used instead.

Portability problems not fixed by Gnulib:

- On BeOS, the descriptors returned by the `socket` function cannot be used in calls to `read`, `write`, and `close`; you have to use `recv`, `send`, `closesocket` in these cases instead.

### 8.980 `socketpair`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/socketpair.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.981 `sprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sprintf.html

Gnulib module: sprintf-posix

Portability problems fixed by Gnulib:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

### 8.982 `sqrt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sqrt.html

Gnulib module: sqrt

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3.

### 8.983 `sqrtf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sqrtf.html

Gnulib module: sqrtf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.984 `sqrtl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sqrtl.html

Gnulib module: sqrtl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.
- This function produces very imprecise results on some platforms: OpenBSD 5.1/SPARC.

Portability problems not fixed by Gnulib:

### 8.985 `srand`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/srand.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.986 `srand48`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/srand48.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.987 `srandom`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/srandom.html

Gnulib module: random

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.988 `sscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, this function doesn’t support the `hh`, `ll`, `j`, `t`, `z` size specifiers.

### 8.989 `stat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/stat.html

Gnulib module: stat

Portability problems fixed by Gnulib:

- On platforms where `off_t` is a 32-bit type, `stat` may not correctly report the size of files or block devices larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)
- On some platforms, `stat("link-to-file/",buf)` succeeds instead of failing with `ENOTDIR`. FreeBSD 7.2, AIX 7.1, Solaris 9.
- On some platforms, `stat(".",buf)` and `stat("./",buf)` give different results: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- See sys/stat.h, for general portability problems with `struct stat`.
- Cygwin’s `stat` function sometimes sets `errno` to `EACCES` when `ENOENT` would be more appropriate.
- Because of the definition of `struct stat`, it is not possible to portably replace `stat` via an object-like macro. Therefore, expressions such as `(islnk ? lstat : stat) (name, buf)` are not portable, and should instead be written `islnk ? lstat (name, buf) : stat (name, buf)`.

### 8.990 `statvfs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/statvfs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, mingw, MSVC 9.
- On platforms where `f_blocks` in ‘`struct statvfs`’ is a 32-bit value, this function may not work correctly on files systems larger than 4 TiB. The fix is to use the `AC_SYS_LARGEFILE` macro. This affects glibc/Hurd, HP-UX 11, Solaris.

Gnulib provides a module `fsusage` that provides similar information as `statvfs`.

### 8.991 `stderr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/stderr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- stderr is created in 32-bit mode instead of 64-bit mode: Cygwin 1.5.x. One workaround is to use freopen(NULL, “r+”, stderr) on Cygwin 1.5.21 or newer. Another is to use the gnulib ftello module and do ftello(stderr).
- POSIX states that a setuid application can guarantee that fd 2 is open, but some systems guarantee this even for non-setuid programs. If an application is executed with fd 2 closed, use of `stderr` can affect an unrelated file that happened to be assigned to fd 2. The gnulib *-safer modules may be used to guarantee that fd 2 stays reserved for `stderr`.

### 8.992 `stdin`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/stdin.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- stdin is created in 32-bit mode instead of 64-bit mode: Cygwin 1.5.x. One workaround is to use freopen(NULL, “r”, stdin) on Cygwin 1.5.21 or newer. Another is to use the gnulib ftello module and do ftello(stdin).
- POSIX states that a setuid application can guarantee that fd 0 is open, but some systems guarantee this even for non-setuid programs. If an application is executed with fd 0 closed, use of `stdin` can affect an unrelated file that happened to be assigned to fd 0. The gnulib *-safer modules may be used to guarantee that fd 0 stays reserved for `stdin`.

### 8.993 `stdout`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/stdout.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- stdout is created in 32-bit mode instead of 64-bit mode: Cygwin 1.5.x. One workaround is to use freopen(NULL, “w”, stdout) on Cygwin 1.5.21 or newer. Another is to use the gnulib ftello module and do ftello(stdout).
- POSIX states that a setuid application can guarantee that fd 1 is open, but some systems guarantee this even for non-setuid programs. If an application is executed with fd 1 closed, use of `stdout` can affect an unrelated file that happened to be assigned to fd 1. The gnulib *-safer modules may be used to guarantee that fd 1 stays reserved for `stdout`.

### 8.994 `stpcpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/stpcpy.html

Gnulib module: stpcpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 8.995 `stpncpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/stpncpy.html

Gnulib module: stpncpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has an incompatible return value on some platforms: AIX 5.1.

Portability problems not fixed by Gnulib:

### 8.996 `strcasecmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcasecmp.html

Gnulib module: strcase

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in multibyte locales. Gnulib provides an alternative function `mbscasecmp` that does a case insensitive comparison of character strings and that works in all locales.

### 8.997 `strcasecmp_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcasecmp_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.998 `strcat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcat.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.999 `strchr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strchr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in some multibyte locales. Gnulib provides an alternative function `mbschr` that works on character strings in all locales.

### 8.1000 `strcmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1001 `strcoll`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcoll.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function fails, setting `errno` to `EILSEQ`, on Solaris 10, in UTF-8 locales, when at least one of the strings contains a Unicode character in a block that was not assigned in Unicode 4.0.

### 8.1002 `strcoll_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcoll_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1003 `strcpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcpy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1004 `strcspn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcspn.html

Gnulib module: strcspn

Portability problems fixed by Gnulib:

- This function is missing on some old platforms.

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in multibyte locales. Gnulib provides an alternative function `mbscspn` that works on character strings in all locales.

### 8.1005 `strdup`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strdup.html

Gnulib module: strdup or strdup-posix

Portability problems fixed by either Gnulib module `strdup` or `strdup-posix`:

- This function is missing on some old platforms.
- This function has no prototype in `<string.h>` on some old platforms.

Portability problems fixed by Gnulib module `strdup-posix`:

- Upon failure, the function does not set `errno` to `ENOMEM` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.1006 `strerror`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strerror.html

Gnulib module: strerror

Portability problems fixed by Gnulib:

- This function does not support the error values that are specified by POSIX but not defined by the system, on some platforms: OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x, mingw, MSVC 9.
- This function reports failure for `strerror(0)` (by setting `errno` or using a string similar to out-of-range values), although POSIX requires this to leave `errno` unchanged and report success, on some platforms: FreeBSD 8.2, OpenBSD 4.7, MacOS X 10.5.
- This function fails to return a string for out-of-range integers on some platforms: HP-UX 11, IRIX 6.5, Solaris 8. (Some return NULL which is a POSIX violation, others return the empty string which is valid but not as useful); this can still cause bugs because most programs call `strerror` without setting and testing `errno`.)

Portability problems not fixed by Gnulib:

### 8.1007 `strerror_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strerror_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1008 `strerror_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strerror_r.html

Gnulib module: strerror_r-posix

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, Minix 3.1.8, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw, MSVC 9.
- glibc and Cygwin have an incompatible version of this function. The POSIX compliant code

      char *s = (strerror_r (err, buf, buflen) == 0 ? buf : NULL);

  is essentially equivalent to this code using the glibc function:

      char *s = strerror_r (err, buf, buflen);

- This function clobbers the `strerror` buffer on some platforms: Cygwin 1.7.9.
- This function is sometimes not declared in `<string.h>` on some platforms: glibc 2.8, OSF/1 5.1.
- The third argument is of type `int` instead of `size_t` on some platforms: AIX 5.1, OSF/1 5.1.
- When this function fails, it returns -1 and sets `errno`, instead of returning the error number, on some platforms: glibc 2.12 with `-D_POSIX_C_SOURCE=200112L`, AIX 6.1, OSF/1 5.1.
- When this function fails, it corrupts `errno`, on some platforms: Solaris 10.
- This function does not support the error values that are specified by POSIX but not defined by the system, on some platforms: OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x.
- This function reports failure for `strerror_r(0, buf, len)`, although POSIX requires this to succeed, on some platforms: FreeBSD 8.2.
- This function produces a different string for `0` than `strerror` on some platforms: MacOS X 10.5.
- This function always fails when the third argument is less than 80 on some platforms: HP-UX 11.31.
- When the buffer is too small and the value is in range, this function does not fail, but instead truncates the result and returns 0 on some platforms: AIX 6.1, OSF/1 5.1.
- When the value is not in range or the buffer is too small, this function fails to leave a NUL-terminated string in the buffer on some platforms: glibc 2.13, FreeBSD 8.2, Solaris 10.
- When the value is out of range but the buffer is too small, this function does not always return the longest possible string on some platforms: OpenBSD 4.7.

Portability problems not fixed by Gnulib:

### 8.1009 `strfmon`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strfmon.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.7.1, mingw, MSVC 9, BeOS.

### 8.1010 `strfmon_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strfmon_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1011 `strftime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strftime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- The Windows C runtime library (which is used by MinGW) does not support the %e specifier (and possibly the other more recent SUS specifiers too, i.e., %C, %D, %h, %n, %r, %R, %t, and %T).

Extension: Gnulib offers a module ‘`strftime`’ that provides an `nstrftime` function with various GNU extensions.

### 8.1012 `strftime_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strftime_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1013 `strlen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strlen.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1014 `strncasecmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strncasecmp.html

Gnulib module: strcase

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in multibyte locales. Gnulib provides alternative functions `mbsncasecmp` and `mbspcasecmp` that do a case insensitive comparison of character strings and that work in all locales.

### 8.1015 `strncasecmp_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strncasecmp_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1016 `strncat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strncat.html

Gnulib module: strncat

Portability problems fixed by Gnulib:

- This function dereferences too much memory on some platforms: Solaris 10 on SPARC.

Portability problems not fixed by Gnulib:

### 8.1017 `strncmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strncmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1018 `strncpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strncpy.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1019 `strndup`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strndup.html

Gnulib module: strndup

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5, BeOS.
- This function does not NUL-terminate the result on some platforms: AIX 5.1.

Portability problems not fixed by Gnulib:

### 8.1020 `strnlen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strnlen.html

Gnulib module: strnlen

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.
- This function is buggy on some platforms: AIX 4.3.

Portability problems not fixed by Gnulib:

### 8.1021 `strpbrk`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strpbrk.html

Gnulib module: strpbrk

Portability problems fixed by Gnulib:

- This function is missing on some old platforms.

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in multibyte locales. Gnulib provides an alternative function `mbspbrk` that works on character strings in all locales.

### 8.1022 `strptime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strptime.html

Gnulib module: strptime

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.1023 `strrchr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strrchr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in some multibyte locales. Gnulib provides an alternative function `mbsrchr` that works on character strings in all locales.

### 8.1024 `strsignal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strsignal.html

Gnulib module: strsignal

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.
- This function does not return a string for out-of-range numbers on some platforms: Solaris, AIX 5.1.
- This function is declared in `unistd.h` instead of `string.h` on some platforms: NetBSD 5.0.

Portability problems not fixed by Gnulib:

- This function returns `const char *` instead of `char *` on some platforms: cygwin 1.5.25.

### 8.1025 `strspn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strspn.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in multibyte locales. Gnulib provides an alternative function `mbsspn` that works on character strings in all locales.

### 8.1026 `strstr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strstr.html

Gnulib module: strstr or strstr-simple

Portability problems fixed by either Gnulib module `strstr-simple` or `strstr`:

- This function can trigger memchr bugs on some platforms: glibc 2.10.
- This function can trigger false positives for long periodic needles on some platforms: glibc 2.12, Cygwin 1.7.7.

Portability problems fixed by Gnulib `strstr`:

- This function has quadratic instead of linear worst-case complexity on some platforms: glibc 2.8, MacOS X 10.5, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in most multibyte locales. Gnulib provides an alternative function `mbsstr` that works on character strings in all locales.

### 8.1027 `strtod`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtod.html

Gnulib module: strtod or strtod-obsolete

Portability problems fixed by either Gnulib module `strtod` or `strtod-obsolete`:

- This function mis-parses strings with leading ‘`+`’ on some old platforms: Old versions of Linux.
- This function returns a wrong end pointer on some old platforms.
- This function consumes whitespace even when there is nothing that should be parsed on some platforms: IRIX 6.5, OSF/1 5.1.
- This function allows whitespace between ‘`e`’ and the exponent on some platforms: HP-UX 11.11, IRIX 6.5, OSF/1 4.0.
- This function returns the wrong end pointer for ‘`-0x`’ on some platforms: glibc 2.4, MacOS X 10.5, FreeBSD 6.2, AIX 7.1, Cygwin < 1.5.25-11.
- This function returns +0.0 (not -0.0) for ‘`-0`’ on some platforms: IRIX 6.5, OSF/1 4.0.
- This function fails to parse Infinities and plain NaNs on some platforms: OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9.
- This function fails to parse ‘`NaN()`’ on some platforms: glibc-2.3.6, MacOS X 10.5, FreeBSD 6.2, OpenBSD 4.0, AIX 7.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin < 1.5.25-11, mingw, MSVC 9.
- This function fails to parse ‘`NaN(n-char-sequence)`’ on some platforms: OpenBSD 4.0, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.
- This function parses ‘`NaN(n-char-sequence)`’, but returns the wrong end pointer on some platforms: glibc-2.4, AIX 7.1.
- This function fails to parse C99 hexadecimal floating point on some platforms: NetBSD 5.0, OpenBSD 4.0, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function returns the wrong end pointer for ‘`0x1p`’ on some platforms: AIX 7.1.

Portability problems fixed by Gnulib module `strtod-obsolete`:

- This function is missing on some old platforms.

Portability problems not fixed by Gnulib:

- This function returns +0.0 (not -0.0) for negative underflow on some platforms: glibc 2.7, Cygwin 1.5.x, mingw, MSVC 9.
- This function cannot distinguish between “nan” and “-nan” on some platforms: glibc 2.7, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.
- This function fails to correctly parse very long strings on some platforms: MacOS X 10.5, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9.
- The replacement function does not always return correctly rounded results.

### 8.1028 `strtof`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtof.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5, BeOS.

### 8.1029 `strtoimax`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtoimax.html

Gnulib module: strtoimax

Portability problems fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 9, MSVC 9, Interix 3.5.
- This function fails on valid input strings on some platforms: AIX 5.1.

Portability problems not fixed by Gnulib:

- This function is only defined as a macro on some platforms: HP-UX 11.11.

### 8.1030 `strtok`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtok.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1031 `strtok_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtok_r.html

Gnulib module: strtok_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function crashes when invoked from code compiled with optimization enabled on some platforms: glibc 2.7.

Portability problems not fixed by Gnulib:

- This function cannot work correctly on character strings in multibyte locales. Gnulib provides an alternative function `mbstok_r` that works on character strings in all locales.

### 8.1032 `strtol`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtol.html

Gnulib module: strtol

Portability problems fixed by Gnulib:

- This function is missing on some old platforms.

Portability problems not fixed by Gnulib:

### 8.1033 `strtold`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtold.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.1034 `strtoll`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtoll.html

Gnulib module: strtoll

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.11, OSF/1 5.1, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 8.1035 `strtoul`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtoul.html

Gnulib module: strtoul

Portability problems fixed by Gnulib:

- This function is missing on some old platforms.

Portability problems not fixed by Gnulib:

### 8.1036 `strtoull`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtoull.html

Gnulib module: strtoull

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.11, OSF/1 5.1, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 8.1037 `strtoumax`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strtoumax.html

Gnulib module: strtoumax

Portability problems fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 9, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- This function is only defined as a macro on some platforms: HP-UX 11.11.

### 8.1038 `strxfrm`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strxfrm.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1039 `strxfrm_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strxfrm_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1040 `swab`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/swab.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.

### 8.1041 `swprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/swprintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- On Windows, this function does not take a buffer size as second argument.
- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

### 8.1042 `swscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/swscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1043 `symlink`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/symlink.html

Gnulib module: symlink

Portability problems fixed by Gnulib:

- On some systems, `symlink(value,"name/")` mistakenly creates a symlink: FreeBSD 7.2, AIX 7.1, Solaris 9.
- This function is missing on some platforms; however, the replacement always fails with `EPERM`: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- Some file systems do not support symbolic links.

### 8.1044 `symlinkat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/symlinkat.html

Gnulib module: symlinkat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.
- Some platforms declare this function in `stdio.h` instead of `unistd.h`: Cygwin 1.7.1.

Portability problems not fixed by Gnulib:

- This function always fails with ‘`ENOSYS`’ on platforms that don’t support symlinks: mingw, MSVC 9.

### 8.1045 `sync`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sync.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, Interix 3.5.

### 8.1046 `sysconf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sysconf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1047 `syslog`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/syslog.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 8.1048 `system`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/system.html

Gnulib module: system-posix

Portability problems fixed by Gnulib:

- The macros `WIFSIGNALED`, `WIFEXITED`, `WIFSTOPPED`, `WTERMSIG`, `WEXITSTATUS`, `WNOHANG`, `WUNTRACED`, `WSTOPSIG` are not defined in `<stdlib.h>` (only in `<sys/wait.h>`) on some platforms: MirBSD 10.

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), the command processor used by the `system` function is `cmd.exe`, not `/bin/sh`. Accordingly, the rules for quoting shell arguments containing spaces, quote or other special characters are different.

### 8.1049 `tan`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tan.html

Gnulib module: tan

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1050 `tanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tanf.html

Gnulib module: tanf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.1051 `tanh`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tanh.html

Gnulib module: tanh

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1052 `tanhf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tanhf.html

Gnulib module: tanhf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 9.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 8.1053 `tanhl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tanhl.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.

### 8.1054 `tanl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tanl.html

Gnulib module: tanl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, Interix 3.5, BeOS.
- This function is only defined as a macro with arguments on some platforms: MSVC 9.
- This function is not declared on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

### 8.1055 `tcdrain`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcdrain.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- On some platforms, `tcdrain` on a non-tty fails with `errno` set to `EINVAL` or, on MacOS X, also `EOPNOTSUPP` or `ENODEV`, rather than `ENOTTY`.

### 8.1056 `tcflow`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcflow.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1057 `tcflush`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcflush.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- On some platforms, `tcflush` of `TCIFLUSH` on a non-tty fails with errno set to `EINVAL` rather than `ENOTTY`.
- On some platforms, `tcflush` of `TCOFLUSH` on a non-tty fails with errno set to `EINVAL` or, on IRIX, also `ENOSYS`, or, on MacOS X, also `EOPNOTSUPP` or `ENODEV`, rather than `ENOTTY`.

### 8.1058 `tcgetattr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcgetattr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1059 `tcgetpgrp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcgetpgrp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.1060 `tcgetsid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcgetsid.html

Gnulib module: tcgetsid

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, OpenBSD 4.5, Minix 3.1.8, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared on some platforms: OSF/1 5.1.
- The declaration of this function in C++ compilation units has C++ linkage, not C linkage, on some platforms: HP-UX 11.00.

Portability problems not fixed by Gnulib:

- This function always fails on some platforms: FreeBSD 6.0, Cygwin 1.7.8, mingw, MSVC 9, Interix 3.5, BeOS.
- This function returns int instead of pid_t on some platforms: Cygwin 1.7.11.

### 8.1061 `tcsendbreak`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcsendbreak.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1062 `tcsetattr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcsetattr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1063 `tcsetpgrp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tcsetpgrp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

### 8.1064 `tdelete`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tdelete.html

Gnulib module: tsearch

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.
- `tdelete` returns `NULL` when removing the last element of a tree on some platforms: OpenBSD 4.0.

Portability problems not fixed by Gnulib:

### 8.1065 `telldir`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/telldir.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MSVC 9, BeOS.
- On platforms where `long int` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro (only on MacOS X systems).

### 8.1066 `tempnam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tempnam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.
- This function is not appropriate for creating temporary files. (It has security risks.) Better use `mkstemp` instead.

### 8.1067 `tfind`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tfind.html

Gnulib module: tsearch

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.1068 `tgamma`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tgamma.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5, BeOS.

### 8.1069 `tgammaf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tgammaf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, MSVC 9, Interix 3.5, BeOS.

### 8.1070 `tgammal`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tgammal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.

### 8.1071 `time`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/time.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1072 `timer_create`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/timer_create.html

Gnulib module: timer-time

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS, Tandem/NSK.
- This function fails with `ENOSYS` on some platforms: OpenBSD 4.9.

### 8.1073 `timer_delete`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/timer_delete.html

Gnulib module: timer-time

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS, Tandem/NSK.
- This function fails with `ENOSYS` on some platforms: OpenBSD 4.9.

### 8.1074 `timer_getoverrun`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/timer_getoverrun.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, IRIX 5.3, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1075 `timer_gettime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/timer_gettime.html

Gnulib module: timer-time

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, mingw, MSVC 9, Interix 3.5, BeOS, Tandem/NSK.
- This function fails with `ENOSYS` on some platforms: OpenBSD 4.9.

### 8.1076 `timer_settime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/timer_settime.html

Gnulib module: timer-time

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.4, Minix 3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS, Tandem/NSK.
- This function fails with `ENOSYS` on some platforms: OpenBSD 4.9.

### 8.1077 `times`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/times.html

Gnulib module: times

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- There is no function on Windows to measure consumed process child times, thus the `tms_cutime` and `tms_cstime` will always be 0 when the module is used.

### 8.1078 `timezone`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/timezone.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: IRIX 6.5, OSF/1 5.1, mingw.
- The address of this variable is not a compile-time constant on some platforms: mingw.

### 8.1079 `tmpfile`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tmpfile.html

Gnulib module: tmpfile

Portability problems fixed by Gnulib:

- This function often fails for trivial reasons on some platforms: mingw, MSVC 9.
- On platforms where `off_t` is a 32-bit type, `tmpfile` may not work correctly to create files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

### 8.1080 `tmpnam`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tmpnam.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is not appropriate for creating temporary files. (It has security risks.) Better use `mkstemp` instead.

### 8.1081 `toascii`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/toascii.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1082 `tolower`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tolower.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1083 `tolower_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tolower_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1084 `toupper`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/toupper.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1085 `toupper_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/toupper_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1086 `towctrans`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/towctrans.html

Gnulib module: towctrans

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.5.1, mingw, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1087 `towctrans_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/towctrans_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1088 `towlower`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/towlower.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.
- This function returns values of which the upper 16 bits are incorrect on some platforms: mingw.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1089 `towlower_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/towlower_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1090 `towupper`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/towupper.html

Gnulib module: wctype-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.
- This function returns values of which the upper 16 bits are incorrect on some platforms: mingw.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1091 `towupper_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/towupper_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1092 `trunc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/trunc.html

Gnulib module: trunc or trunc-ieee

Portability problems fixed by either Gnulib module `trunc` or `trunc-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.8.

Portability problems fixed by Gnulib module `trunc-ieee`:

- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.1093 `truncate`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/truncate.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- On platforms where `off_t` is a 32-bit type, this function is not applicable to arbitrary lengths for files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 8.1094 `truncf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/truncf.html

Gnulib module: truncf or truncf-ieee

Portability problems fixed by either Gnulib module `truncf` or `truncf-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 9, MSVC 9, Interix 3.5.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.8.

Portability problems fixed by Gnulib module `truncf-ieee`:

- This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.1095 `truncl`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/truncl.html

Gnulib module: truncl or truncl-ieee

Portability problems fixed by either Gnulib module `truncl` or `truncl-ieee`:

- This function is missing on some platforms: FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.8.
- This function crashes on some platforms: OSF/1 4.0.

Portability problems fixed by Gnulib module `truncl-ieee`:

- This function returns a positive zero for an argument between -1 and 0 on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

### 8.1096 `tsearch`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tsearch.html

Gnulib module: tsearch

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.1097 `ttyname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ttyname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1098 `ttyname_r`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ttyname_r.html

Gnulib module: ttyname_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, Minix 3.1.8, mingw, MSVC 9, BeOS.
- This function is not declared unless `_REENTRANT` is defined, on some platforms: HP-UX 11.
- This function has an incompatible declaration on some platforms: MacOS X 10.4, Solaris 11 2011-11 (when `_POSIX_PTHREAD_SEMANTICS` is not defined).
- This function ignores the size argument, thus overwriting memory after the buffer, on some platforms: OSF/1 5.1.
- This function refuses to do anything when the output buffer is less than 128 bytes large, on some platforms: Solaris 11 2010-11.

Portability problems not fixed by Gnulib:

### 8.1099 `twalk`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/twalk.html

Gnulib module: tsearch

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

### 8.1100 `tzname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tzname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: IRIX 6.5, OSF/1 5.1, mingw.
- The address of this variable is not a compile-time constant on some platforms: Cygwin, mingw.

### 8.1101 `tzset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/tzset.html

Gnulib module: tzset

Portability problems fixed by Gnulib:

- This function clobbers the buffer used by the localtime function on some platforms: Solaris 2.6.

Portability problems not fixed by Gnulib:

### 8.1102 `ulimit`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ulimit.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 8.1103 `umask`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/umask.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1104 `uname`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/uname.html

Gnulib module: uname

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.1105 `ungetc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ungetc.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.

### 8.1106 `ungetwc`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ungetwc.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1107 `unlink`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/unlink.html

Gnulib module: unlink

Portability problems fixed by Gnulib:

- Some systems mistakenly succeed on `unlink("link-to-file/")`: GNU/Hurd, FreeBSD 7.2, AIX 7.1, Solaris 9.
- On MacOS X 10.5.6, in a writable HFS mount, `unlink("..")` succeeds without doing anything.

Portability problems not fixed by Gnulib:

- Some systems allow a superuser to unlink directories, even though this can cause file system corruption. The error given if a process is not permitted to unlink directories varies across implementations; it is not always the POSIX value of `EPERM`. Meanwhile, if a process has the ability to unlink directories, POSIX requires that `unlink("symlink-to-dir/")` remove `dir` and leave `symlink-to-dir` dangling; this behavior is counter-intuitive. The gnulib module unlinkdir can help determine whether code must be cautious of unlinking directories.
- Removing an open file is non-portable: On Unix this allows the programs that have the file already open to continue working with it; the file’s storage is only freed when the no process has the file open any more. On Windows, the attempt to remove an open file fails.

### 8.1108 `unlinkat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/unlinkat.html

Gnulib module: unlinkat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not safe to be used in libraries and is not multithread-safe.
- Some systems mistakenly succeed on `unlinkat(fd,"file/",flag)`: GNU/Hurd, Solaris 9.
- Some platforms declare this function in `fcntl.h` instead of `unistd.h`: Cygwin 1.7.1.

Portability problems not fixed by Gnulib:

- When `unlinkat(fd,name,AT_REMOVEDIR)` fails because the specified directory is not empty, the `errno` value is system dependent.
- POSIX requires that `unlinkdir(fd,"link-to-empty/",AT_REMOVEDIR)` remove `empty` and leave `link-to-empty` as a dangling symlink. This is counter-intuitive, so some systems fail with `ENOTDIR` instead: glibc
- Some systems allow a superuser to unlink directories, even though this can cause file system corruption. The error given if a process is not permitted to unlink directories varies across implementations; it is not always the POSIX value of `EPERM`. Meanwhile, if a process has the ability to unlink directories, POSIX requires that `unlinkat(fd,"symlink-to-dir/",0)` remove `dir` and leave `symlink-to-dir` dangling; this behavior is counter-intuitive. The gnulib module unlinkdir can help determine whether code must be cautious of unlinking directories.
- Removing an open file is non-portable: On Unix this allows the programs that have the file already open to continue working with it; the file’s storage is only freed when the no process has the file open any more. On Windows, the attempt to remove an open file fails.

### 8.1109 `unlockpt`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/unlockpt.html

Gnulib module: unlockpt

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- This function is not declared on some platforms: IRIX 5.3.
- This function reports success for invalid file descriptors on some platforms: NetBSD 5.1, Cygwin 1.7.9.

### 8.1110 `unsetenv`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/unsetenv.html

Gnulib module: unsetenv

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, Solaris 9, mingw, MSVC 9, BeOS.
- This function is not declared on some platforms: OSF/1 5.1.
- This function has the return type ‘`void`’ instead of ‘`int`’ on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 1.6, OpenBSD 3.8, OSF/1 5.1.
- On some platforms, this function does not fail with ‘`EINVAL`’ when passed an empty string or a string containing ‘`=`’: FreeBSD 6.0, NetBSD 1.6, OpenBSD 4.7.
- This function removes only the first value association for the given environment variable, not all of them, on some platforms: Solaris 11 2011-11, Haiku.

Portability problems not fixed by Gnulib:

- Older versions of POSIX required that `unsetenv(NULL)` gracefully fail with `EINVAL`, but not all implementations guarantee this, and the requirement was removed.

### 8.1111 `uselocale`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/uselocale.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1112 `utime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/utime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On some old platforms (Sequent), `utime (file, NULL)` fails to set the file’s timestamp to the current time.
- On some platforms, this function mis-handles trailing slash: Solaris 9.
- This function cannot set full timestamp resolution. Use `utimensat(AT_FDCWD,file,times,0)`, or the gnulib module utimens, instead.
- On some platforms, the prototype for `utime` omits `const` for the second argument. Fortunately, the argument is not modified, so it is safe to cast away const: mingw, MSVC 9.

### 8.1113 `utimensat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/utimensat.html

Gnulib module: utimensat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS. However, the replacement function may end up truncating timestamps to less resolution than supported by the file system. Furthermore, the replacement function is not safe to be used in libraries and is not multithread-safe.
- This function returns a bogus value instead of failing with `ENOSYS` on some platforms: Linux kernel 2.6.21.
- This function fails with `ENOSYS` if passed the flag `AT_SYMLINK_NOFOLLOW` on a regular file: Linux kernel 2.6.22.
- When using `UTIME_OMIT` or `UTIME_NOW`, some systems require the `tv_sec` argument to be 0, and don’t necessarily handle all file permissions in the manner required by POSIX: Linux kernel 2.6.25.
- When using `UTIME_OMIT` for the modification time, but specifying an access time, some systems fail to update the change time: Linux kernel 2.6.32.
- Out-of-range values of `tv_nsec` do not lead to a failure on some platforms: Linux kernel 2.6.22.19 on hppa.

Portability problems not fixed by Gnulib:

- On some platforms, timestamps of symbolic links cannot be modified, so the replacement fails with `ENOSYS` if passed the flag `AT_SYMLINK_NOFOLLOW` on a symlink.
- The mere act of using `lstat` modifies the access time of symlinks on some platforms, so `utimensat` with `AT_SYMLINK_NOFOLLOW` can only effectively change modification time: Cygwin.
- The mere act of using `stat` modifies the access time of directories on some platforms, so `utimensat` can only effectively change directory modification time: Cygwin 1.5.x.

The gnulib module fdutimensat provides a similar interface.

### 8.1114 `utimes`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/utimes.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
- The declaration of this function lacks `const` in the second argument on some platforms: OSF/1 5.1.
- On some platforms, this function mis-handles trailing slash: FreeBSD 7.2, Solaris 9.
- This function cannot set full timestamp resolution. In particular, some platforms incorrectly round rather than truncate. Use `utimensat(AT_FDCWD,file,times,0)`, or the gnulib module utimens, instead.
- On some platforms, `utimes (file, NULL)` fails to set the file’s timestamp to the current time: glibc 2.3.3.
- On some platforms, `utimes` failed on read-only files when `utime` worked fine. glibc 2.2.5.

Extension: Gnulib provides a module ‘`utimens`’ that works around these problems and allows to set the time with nanosecond resolution (as far as supported by the file system).

### 8.1115 `va_arg`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/va_arg.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- The second argument of `va_arg` must be a type that is invariant under the “default argument promotions” (ISO C 99 6.5.2.2 paragraph 6). This means that the following are not valid here:
  ‘`float`’

    Use ‘`double`’ instead.

  ‘`bool`’

    Use ‘`int`’ instead.

  Integer types smaller than ‘`int`’.

    Use ‘`int`’ or ‘`unsigned int`’ instead.

  This is a portability problem because you don’t know the width of some abstract types like `uid_t`, `gid_t`, `mode_t`. So, instead of

      mode = va_arg (ap, mode_t);

  you have to write

      mode = (sizeof (mode_t) < sizeof (int)
              ? va_arg (ap, int)
              : va_arg (ap, mode_t));

### 8.1116 `va_copy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/va_copy.html

Gnulib module: stdarg

Portability problems fixed by Gnulib:

- This macro is missing on some platforms: AIX 5.1 with cc or xlc, HP-UX 11 with cc, IRIX 6.5 with cc, OSF/1 5.1 with cc.

Portability problems not fixed by Gnulib:

### 8.1117 `va_end`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/va_end.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1118 `va_start`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/va_start.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 8.1119 `vdprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vdprintf.html

Gnulib module: vdprintf or vdprintf-posix

Portability problems fixed by either Gnulib module `vdprintf` or `vdprintf-posix`:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

Portability problems fixed by Gnulib module `vdprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: BeOS.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: BeOS.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: BeOS.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, BeOS.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.1120 `vfprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vfprintf.html

Gnulib module: vfprintf-posix or stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `vfprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems fixed by Gnulib module `stdio` or `vfprintf-posix`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio` or `vfprintf-posix`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- Attempting to write to a read-only stream fails with `EOF` but does not set the error flag for `ferror` on some platforms: glibc 2.13, cygwin 1.7.9.

### 8.1121 `vfscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vfscanf.html

Gnulib module: vfscanf, nonblocking

Portability problems fixed by Gnulib module `vfscanf`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 8, Interix 3.5.
- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, this function doesn’t support the `hh`, `ll`, `j`, `t`, `z` size specifiers.

### 8.1122 `vfwprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vfwprintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.1123 `vfwscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vfwscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1124 `vprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vprintf.html

Gnulib module: vprintf-posix or stdio, nonblocking, sigpipe

Portability problems fixed by Gnulib module `vprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems fixed by Gnulib module `stdio` or `vprintf-posix`, together with module `nonblocking`:

- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio` or `vprintf-posix`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- Attempting to write to a read-only stream fails with `EOF` but does not set the error flag for `ferror` on some platforms: glibc 2.13, cygwin 1.7.9.

### 8.1125 `vscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vscanf.html

Gnulib module: vscanf, nonblocking

Portability problems fixed by Gnulib module `vscanf`, together with module `nonblocking`:

- When reading from a non-blocking pipe whose buffer is empty, this function fails with `errno` being set to `EINVAL` instead of `EAGAIN` on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 4.3.2, IRIX 6.5, OSF/1 5.1, Solaris 8.
- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, these functions don’t support the `hh`, `ll`, `j`, `t`, `z` size specifiers.

### 8.1126 `vsnprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vsnprintf.html

Gnulib module: vsnprintf or vsnprintf-posix

Portability problems fixed by either Gnulib module `vsnprintf` or `vsnprintf-posix`:

- This function is missing on some platforms: IRIX 5.3, OSF/1 4.0, Solaris 2.5.1.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function overwrites memory even when a size argument of 1 is passed on some platforms: Linux libc5, BeOS.
- This function does not return a byte count as specified in C99 on some platforms: HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw, MSVC 9.

Portability problems fixed by Gnulib module `vsnprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
- This function does not truncate the result as specified in C99 on some platforms: mingw, MSVC 9.
- This function does not fully support the ‘`n`’ directive on some platforms: HP-UX 11, mingw, MSVC 9.
- This function overwrites memory even when a zero size argument is passed on some platforms: HP-UX 11, OSF/1 5.1.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

### 8.1127 `vsprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vsprintf.html

Gnulib module: vsprintf-posix

Portability problems fixed by Gnulib:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: AIX 7.1, Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function mishandles large floating point precisions (for example, formatting 1.0 with ‘`"%.511f"`’) on some platforms: Solaris 10.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems not fixed by Gnulib:

- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

### 8.1128 `vsscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vsscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 8, MSVC 9.
- On Windows platforms (excluding Cygwin), this function does not set `errno` upon failure.
- On Windows, these functions don’t support the `hh`, `ll`, `j`, `t`, `z` size specifiers.

### 8.1129 `vswprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vswprintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- On Windows, this function does not take a buffer size as second argument.
- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

### 8.1130 `vswscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vswscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1131 `vwprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vwprintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS, Cygwin 1.7.
- This function exists, but does not support wide arguments on some platforms: Cygwin 1.5.x.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.1132 `vwscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/vwscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1133 `wait`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wait.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1134 `waitid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/waitid.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- As of 2005, no system is known on which `waitid` with flag `WNOWAIT` works correctly.

### 8.1135 `waitpid`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/waitpid.html

Gnulib module: waitpid

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 8.1136 `wcpcpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcpcpy.html

Gnulib module: wcpcpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.13.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1137 `wcpncpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcpncpy.html

Gnulib module: wcpncpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.13.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1138 `wcrtomb`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcrtomb.html

Gnulib module: wcrtomb

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
- This function returns 0 when the first argument is NULL in some locales on some platforms: AIX 4.3, OSF/1 5.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1139 `wcscasecmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscasecmp.html

Gnulib module: wcscasecmp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1140 `wcscasecmp_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscasecmp_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1141 `wcscat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscat.html

Gnulib module: wcscat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1142 `wcschr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcschr.html

Gnulib module: wcschr

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1143 `wcscmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscmp.html

Gnulib module: wcscmp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1144 `wcscoll`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscoll.html

Gnulib module: wcscoll

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1145 `wcscoll_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscoll_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1146 `wcscpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscpy.html

Gnulib module: wcscpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1147 `wcscspn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcscspn.html

Gnulib module: wcscspn

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1148 `wcsdup`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsdup.html

Gnulib module: wcsdup

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, BeOS.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1149 `wcsftime`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsftime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1150 `wcslen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcslen.html

Gnulib module: wcslen

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1151 `wcsncasecmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsncasecmp.html

Gnulib module: wcsncasecmp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1152 `wcsncasecmp_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsncasecmp_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1153 `wcsncat`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsncat.html

Gnulib module: wcsncat

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1154 `wcsncmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsncmp.html

Gnulib module: wcsncmp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1155 `wcsncpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsncpy.html

Gnulib module: wcsncpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1156 `wcsnlen`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsnlen.html

Gnulib module: wcsnlen

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1157 `wcsnrtombs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsnrtombs.html

Gnulib module: wcsnrtombs

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1158 `wcspbrk`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcspbrk.html

Gnulib module: wcspbrk

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1159 `wcsrchr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsrchr.html

Gnulib module: wcsrchr

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1160 `wcsrtombs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsrtombs.html

Gnulib module: wcsrtombs

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, mingw, Interix 3.5.
- This function may set the source pointer to NULL before NUL terminating the destination string on some platforms: OSF/1 5.1.
- This function does not ignore the length argument if the destination argument is NULL on some platforms: mingw.
- This function updates the source pointer also if the destination argument is NULL on some platforms: HP-UX 11, OSF/1 5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1161 `wcsspn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsspn.html

Gnulib module: wcsspn

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1162 `wcsstr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsstr.html

Gnulib module: wcsstr

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, IRIX 5.3, Solaris 2.6.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1163 `wcstod`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstod.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1164 `wcstof`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstof.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1165 `wcstoimax`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstoimax.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1166 `wcstok`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstok.html

Gnulib module: wcstok

Portability problems fixed by Gnulib:

- This function is missing on some platforms: IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1167 `wcstol`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstol.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1168 `wcstold`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstold.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 9, Cygwin, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1169 `wcstoll`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstoll.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1170 `wcstombs`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstombs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1171 `wcstoul`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstoul.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1172 `wcstoull`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstoull.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.11, IRIX 5.3, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1173 `wcstoumax`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcstoumax.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, MSVC 9, Interix 3.5.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1174 `wcswidth`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcswidth.html

Gnulib module: wcswidth

Portability problems fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, mingw, MSVC 9, BeOS.
- This function handles combining characters in UTF-8 locales incorrectly on some platforms: MacOS X 10.3.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1175 `wcsxfrm`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsxfrm.html

Gnulib module: wcsxfrm

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1176 `wcsxfrm_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsxfrm_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1177 `wctob`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wctob.html

Gnulib module: wctob

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Solaris 2.6, mingw, Interix 3.5.
- This function clobbers caller-owned registers on some platforms: Cygwin 1.7.5.
- This function does not work on some platforms: Solaris 9.
- This function is missing a declaration on some platforms: IRIX 6.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1178 `wctomb`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wctomb.html

Gnulib module: wctomb

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1179 `wctrans`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wctrans.html

Gnulib module: wctrans

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.5.1, mingw, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1180 `wctrans_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wctrans_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1181 `wctype`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wctype.html

Gnulib module: wctype

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, MSVC 9.
- This function is declared in `<wchar.h>`, not in `<wctype.h>`, on some platforms: HP-UX 11.00.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1182 `wctype_l`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wctype_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1183 `wcwidth`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcwidth.html

Gnulib module: wcwidth

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, mingw, MSVC 9, BeOS.
- This function is not declared (without `-D_GNU_SOURCE`) on some platforms: glibc 2.8.
- This function handles combining characters in UTF-8 locales incorrectly on some platforms: MacOS X 10.3, OpenBSD 5.0.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1184 `wmemchr`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wmemchr.html

Gnulib module: wmemchr

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, IRIX 6.5, Solaris 2.6, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1185 `wmemcmp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wmemcmp.html

Gnulib module: wmemcmp

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, IRIX 6.5, Solaris 2.6, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1186 `wmemcpy`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wmemcpy.html

Gnulib module: wmemcpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, IRIX 6.5, Solaris 2.6, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1187 `wmemmove`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wmemmove.html

Gnulib module: wmemmove

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, IRIX 6.5, Solaris 2.6, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1188 `wmemset`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wmemset.html

Gnulib module: wmemset

Portability problems fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11.00, IRIX 6.5, Solaris 2.6, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1189 `wordexp`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wordexp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.1190 `wordfree`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wordfree.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 8.1191 `wprintf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wprintf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Interix 3.5, BeOS.
- This function exists, but does not support wide arguments on some platforms: Cygwin 1.5.x.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.
- On some platforms, this function does not set `errno` or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

### 8.1192 `write`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/write.html

Gnulib module: write, nonblocking, sigpipe

Portability problems fixed by Gnulib module `stdio`, together with module `nonblocking`:

- This function crashes when invoked with invalid arguments on some platforms: MSVC 9.
- When writing to a non-blocking pipe whose buffer is full, this function fails with `errno` being set to `ENOSPC` instead of `EAGAIN` on some platforms: mingw, MSVC 9.
- When writing to a non-blocking pipe on which no reader is currently waiting an amount of bytes that exceeds the pipe buffer’s size, then – even if the pipe’s buffer is empty – this function fails, instead of performing a partial write into the pipe buffer, on some platforms: mingw, MSVC 9.

Portability problems fixed by Gnulib module `stdio`, together with module `sigpipe`:

- When writing to a pipe with no readers, this function fails with error `EINVAL`, instead of obeying the current `SIGPIPE` handler, on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function may fail with error `EINTR`, even in programs that don’t install any signal handlers, on some platforms: MacOS X 10.5.

For handling `EINTR`, Gnulib provides a module ‘`safe-write`’ with a function `safe_write`.

### 8.1193 `writev`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/writev.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 8.1194 `wscanf`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wscanf.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

### 8.1195 `y0`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/y0.html

Gnulib module: y0

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.

### 8.1196 `y1`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/y1.html

Gnulib module: y1

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.

### 8.1197 `yn`

POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/yn.html

Gnulib module: yn

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8.

## 9 Past POSIX Function Substitutes

This chapter describes which functions and function-like macros specified by older versions of POSIX (POSIX:2001) are substituted by Gnulib, which portability pitfalls are fixed by Gnulib, and which (known) portability problems are not worked around by Gnulib.

The notation “Gnulib module: —” means that Gnulib does not provide a module providing a substitute for the function. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this function important enough to contribute a substitute for it. If you need this particular function, you may write to `<bug-gnulib at gnu dot org>`.

### 9.1 `bcmp`

POSIX specification: http://www.opengroup.org/susv3xsh/bcmp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.
- This function is marked as “legacy” in POSIX. Better use `memcmp` instead.

### 9.2 `bcopy`

POSIX specification: http://www.opengroup.org/susv3xsh/bcopy.html

Gnulib module: bcopy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

- This function is marked as “legacy” in POSIX. Better use `memcpy` or `memmove` instead.

### 9.3 `bsd_signal`

POSIX specification: http://www.opengroup.org/susv3xsh/bsd_signal.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, MSVC 9, Interix 3.5.

### 9.4 `bzero`

POSIX specification: http://www.opengroup.org/susv3xsh/bzero.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.
- This function is marked as “legacy” in POSIX. Better use `memset` instead.

### 9.5 `ecvt`

POSIX specification: http://www.opengroup.org/susv3xsh/ecvt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0.
- This function is marked as “legacy” in POSIX. Better use `sprintf` instead.

### 9.6 `fcvt`

POSIX specification: http://www.opengroup.org/susv3xsh/fcvt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, NetBSD 5.0.
- This function is marked as “legacy” in POSIX. Better use `sprintf` instead.

### 9.7 `ftime`

POSIX specification: http://www.opengroup.org/susv3xsh/ftime.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 5.3, Solaris 2.4.
- This function is marked as “legacy” in POSIX. Better use `gettimeofday` or `clock_gettime` instead, and use `ftime` only as a fallback for portability to Windows platforms.

### 9.8 `gcvt`

POSIX specification: http://www.opengroup.org/susv3xsh/gcvt.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0.
- This function is marked as “legacy” in POSIX. Better use `sprintf` instead.

### 9.9 `getcontext`

POSIX specification: http://www.opengroup.org/susv3xsh/getcontext.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 9.10 `gethostbyaddr`

POSIX specification: http://www.opengroup.org/susv3xsh/gethostbyaddr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 9.11 `gethostbyname`

POSIX specification: http://www.opengroup.org/susv3xsh/gethostbyname.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

### 9.12 `getwd`

POSIX specification: http://www.opengroup.org/susv3xsh/getwd.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9, BeOS.
- The size of the buffer required for this function is not a compile-time constant. Also, the function truncates a result that would be larger than the minimum buffer size. For these reasons, this function is marked as “legacy” in POSIX. Better use the `getcwd` function instead.

### 9.13 `h_errno`

POSIX specification: http://www.opengroup.org/susv3xsh/h_errno.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5.

### 9.14 `index`

POSIX specification: http://www.opengroup.org/susv3xsh/index.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.
- This function is marked as “legacy” in POSIX. Better use `strchr` instead.

### 9.15 `makecontext`

POSIX specification: http://www.opengroup.org/susv3xsh/makecontext.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 9.16 `mktemp`

POSIX specification: http://www.opengroup.org/susv3xsh/mktemp.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is not appropriate for creating temporary files. (It has security risks.) Therefore it is marked as “legacy” in POSIX. Better use `mkstemp` instead.

### 9.17 `pthread_attr_getstackaddr`

POSIX specification: http://www.opengroup.org/susv3xsh/pthread_attr_getstackaddr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, Solaris 2.4, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 9.18 `pthread_attr_setstackaddr`

POSIX specification: http://www.opengroup.org/susv3xsh/pthread_attr_setstackaddr.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, IRIX 5.3, Solaris 2.4, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

### 9.19 `rindex`

POSIX specification: http://www.opengroup.org/susv3xsh/rindex.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9.
- This function is marked as “legacy” in POSIX. Better use `strrchr` instead.

### 9.20 `scalb`

POSIX specification: http://www.opengroup.org/susv3xsh/scalb.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

### 9.21 `setcontext`

POSIX specification: http://www.opengroup.org/susv3xsh/setcontext.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- The effects of this call are system and compiler optimization dependent, since it restores the contents of register-allocated variables but not the contents of stack-allocated variables.

### 9.22 `swapcontext`

POSIX specification: http://www.opengroup.org/susv3xsh/swapcontext.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 9.23 `ualarm`

POSIX specification: http://www.opengroup.org/susv3xsh/ualarm.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Solaris 2.4, mingw, MSVC 9, BeOS.

### 9.24 `usleep`

POSIX specification: http://www.opengroup.org/susv3xsh/usleep.html

Gnulib module: usleep

Portability problems fixed by Gnulib:

- On some systems, `usleep` rejects attempts to sleep longer than 1 second, as allowed by POSIX: mingw.
- This function is missing on some platforms. However, the replacement is designed to be lightweight, and may round to the nearest second; use `select` or `nanosleep` if better resolution is needed: IRIX 5.3, Solaris 2.4, older mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

- According to POSIX, the `usleep` function may interfere with the program’s use of the `SIGALRM` signal. On Linux, it doesn’t; on other platforms, it may.

### 9.25 `vfork`

POSIX specification: http://www.opengroup.org/susv3xsh/vfork.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: IRIX 6.5, mingw, MSVC 9, BeOS.

### 9.26 `wcswcs`

POSIX specification: http://www.opengroup.org/susv3xsh/wcswcs.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, MSVC 9, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.
- This function is marked as “legacy” in POSIX. Better use `wcsstr` instead.

## 10 Glibc Header File Substitutes

This chapter describes which header files contained in GNU libc but not specified by ISO C or POSIX are substituted by Gnulib, which portability pitfalls are fixed by Gnulib, and which (known) portability problems are not worked around by Gnulib.

The notation “Gnulib module: —” means that Gnulib does not provide a module providing a substitute for the header file. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this header file important enough to contribute a substitute for it. If you need this particular header file, you may write to `<bug-gnulib at gnu dot org>`.

### 10.1 `a.out.h`

Describes the structure of executables (and object files?) in the old `a.out` format.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This header file is useless because most executables and object files are in ELF format on some platforms: glibc 2.3.6, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8.

### 10.2 `aliases.h`

Defines the type `struct aliasent` and declares the functions `setaliasent`, `endaliasent`, `getaliasent`, `getaliasent_r`, `getaliasbyname`, `getaliasbyname_r`.

Documentation:

- man setaliasent.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.3 `alloca.h`

Declares the `alloca` function of function-like macro.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Variable-Size-Automatic.html,
- man alloca.

Gnulib module: alloca

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 4.3.2, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 10.4 `ar.h`

Describes the structure of files produced by the ‘`ar`’ program. Defines the type `struct ar_hdr` and the macros `ARMAG`, `SARMAG`, `ARFMAG`.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, BeOS.

### 10.5 `argp.h`

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Argp.html.

Gnulib module: argp

Portability problems fixed by Gnulib:

- This header file is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 10.6 `argz.h`

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Argz-Functions.html,
- man argz.

Gnulib module: argz

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- The argz functions do not work on some platforms: Cygwin.

Portability problems not fixed by Gnulib:

### 10.7 `byteswap.h`

Defines the functions or function-like macros `bswap_16`, `bswap_32`, `bswap_64`.

Gnulib module: byteswap

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 10.8 `crypt.h`

Defines the type `struct crypt_data` and declares the functions `crypt`, `crypt_r`, `setkey`, `setkey_r`, `encrypt`, `encrypt_r`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/crypt.html, http://www.gnu.org/software/libc/manual/html_node/DES-Encryption.html,
- man crypt, man encrypt.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
- The functions `crypt`, `setkey`, `encrypt` are missing on some platforms: HP-UX 11, OSF/1 5.1.
- The type `struct crypt_data` and the functions `crypt_r`, `setkey_r`, `encrypt_r` are missing on some platforms: IRIX 6.5, Solaris 11 2011-11, Cygwin.

### 10.9 `endian.h`

Describe’s the platform’s endianness (byte ordering of words stored in memory). Defines the macros `BYTE_ORDER`, `LITTLE_ENDIAN`, `BIG_ENDIAN`, `PDP_ENDIAN`.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5.

### 10.10 `envz.h`

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Envz-Functions.html,
- man envz.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.11 `err.h`

Declares the functions `warn`, `vwarn`, `warnx`, `vwarnx`, `err`, `verr`, `errx`, `verrx`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Error-Messages.html,
- man err.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

### 10.12 `error.h`

Declares the functions `error`, `error_at_line` and the variables `error_print_progname`, `error_message_count`, `error_one_per_line`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Error-Messages.html,
- man error.

Gnulib module: error

Portability problems fixed by Gnulib:

- This header file is missing on many platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, Interix 3.5, BeOS.
- This header file contains unrelated definitions on some platforms: MSVC 9.

Portability problems not fixed by Gnulib:

### 10.13 `execinfo.h`

Declares the functions `backtrace`, `backtrace_symbols`, `backtrace_symbols_fd`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Backtraces.html,
- man backtrace.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.14 `fpu_control.h`

Handling of the FPU control word. Defines the `fpu_control_t` type, declares the `__fpu_control` variable, and defines the `_FPU_GETCW`, `_FPU_SETCW` macros.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.15 `fstab.h`

Defines the type `struct fstab`, the macros `FSTAB_*`, `_PATH_FSTAB`, and declares the functions `setfsent`, `endfsent`, `getfsent`, `getfsspec`, `getfsfile`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/fstab.html,
- man setfsent.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- The macro `_PATH_FSTAB` is missing on some platforms: AIX 5.1, HP-UX 11.

### 10.16 `fts.h`

Defines the types `FTS`, `FTSENT` and the macros `FTS_*`, and declares the functions `fts_open`, `fts_read`, `fts_children`, `fts_set`, `fts_close`.

Documentation:

- man fts.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

### 10.17 `getopt.h`

Defines the type `struct option` and declares the variables `optarg`, `optind`, `opterr`, `optopt` and the functions `getopt`, `getopt_long`, `getopt_long_only`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Getopt.html,
- man getopt.

Gnulib module: getopt-gnu

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: AIX 5.1, HP-UX 11, MSVC 9, Interix 3.5.
- The function `getopt_long` is missing on some platforms: IRIX 6.5, OSF/1 5.1, Solaris 9.
- The function `getopt_long_only` is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, IRIX 6.5, OSF/1 5.1, Solaris 9, mingw.
- The method to reset options is incompatible on some platforms: FreeBSD 6.0, NetBSD 5.0(?), OpenBSD 3.8, Cygwin 1.5.x, mingw.
- The function `getopt` does not handle a leading ‘`+`’ character in the options string on some platforms: Solaris 11 2010-11.

Portability problems not fixed by Gnulib:

### 10.18 `gshadow.h`

Defines the type `struct sgrp` and declares the functions `setsgent`, `endsgent`, `getsgent`, `getsgnam`, `sgetsgent`, `fgetsgent`, `putsgent`, `getsgent_r`, `getsgnam_r`, `sgetsgent_r`, `fgetsgent_r`.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.19 `ieee754.h`

Defines the types `union ieee754_float`, `union ieee754_double`, `union ieee854_long_double`.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.20 `ifaddrs.h`

Defines the type `struct ifaddrs` and declares the functions `getifaddrs`, `freeifaddrs`.

Documentation:

- http://ecos.sourceware.org/docs-latest/ref/net-common-tcpip-manpages-getifaddrs.html.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.21 `libintl.h`

Defines the macros `__USE_GNU_GETTEXT`, `__GNU_GETTEXT_SUPPORTED_REVISION`, and declares the functions `gettext`, `dgettext`, `dcgettext`, `ngettext`, `dngettext`, `dcngettext`, `textdomain`, `bindtextdomain`, `bind_textdomain_codeset`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Message-catalogs-with-gettext.html,
- http://www.gnu.org/software/gettext/manual/html_node/gettext.html.

Gnulib module: gettext

Portability problems fixed by Gnulib, if GNU gettext is installed:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9, Interix 3.5, BeOS.
- The functions cannot deal with GNU .mo files with system-dependent strings (of major version 1 or of minor version 1) on some non-glibc platforms: NetBSD 3.0, Solaris 10.

Portability problems not fixed by Gnulib:

### 10.22 `mcheck.h`

Defines the type `enum mcheck_status` and declares the functions `mcheck`, `mcheck_pedantic`, `mcheck_check_all`, `mprobe`, `mtrace`, `muntrace`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Heap-Consistency-Checking.html.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 10.23 `mntent.h`

Defines the type `struct mntent` and the macros `MNTTAB`, `MOUNTED`, `MNTTYPE_*`, `MNTOPT_*`, and declares the functions `setmntent`, `getmntent`, `getmntent_r`, `addmntent`, `endmntent`, `hasmntopt`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/mtab.html,
- man setmntent.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- The function `getmntent_r` is missing on all non-glibc platforms: AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin.

Gnulib module `mountlist` provides a higher-level abstraction.

### 10.24 `obstack.h`

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Obstacks.html.

Gnulib module: obstack

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

### 10.25 `paths.h`

Defines the macros `_PATH_*`.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2010-11, mingw, MSVC 9, BeOS.
- The set of `_PATH_*` macros is platform dependent.

### 10.26 `printf.h`

Defines the type `struct printf_info` and the macros and enum values `PA_*`, and declares the functions `printf_function`, `printf_arginfo_function`, `register_printf_function`, `parse_printf_format`, `printf_size`, `printf_size_info`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Parsing-a-Template-String.html.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

### 10.27 `pty.h`

Declares the functions `openpty` and `forkpty`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/Pseudo_002dTerminal-Pairs.html,
- man openpty.

Gnulib module: pty

Portability problems fixed by Gnulib:

- This header file is missing on some platforms that declare the `forkpty` and `openpty` functions in `util.h` or `libutil.h` instead: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8.
- This header file is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, BeOS.

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.

### 10.28 `resolv.h`

Defines the types `res_sendhookact`, `res_send_qhook`, `res_send_rhook`, `res_state`, `struct res_sym` and the macros `_PATH_RESCONF`, `RES_*`, and declares the functions `fp_nquery`, `fp_query`, `hostalias`, `p_query`, `res_close`, `res_init`, `res_isourserver`, `res_mkquery`, `res_query`, `res_querydomain`, `res_search`, `res_send`.

Documentation:

- man res_init.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- The functions are missing on some platforms: HP-UX 11.

### 10.29 `shadow.h`

Defines the type `struct spwd` and declares the functions `setspent`, `endspent`, `getspent`, `getspent_r`, `getspnam`, `getspnam_r`, `sgetspent`, `sgetspent_r`, `fgetspent`, `fgetspent_r`, `putspent`, `lckpwdf`, `ulckpwdf`.

Documentation:

- man setspent.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- The functions `getspent_r`, `getspnam_r`, `sgetspent_r`, `fgetspent`, `fgetspent_r`, `putspent` are missing on some platforms: HP-UX 11.
- The functions `sgetspent`, `sgetspent_r` are missing on some platforms: HP-UX 11, IRIX 6.5, Solaris 11 2011-11.

### 10.30 `sys/ioctl.h`

Declares the function `ioctl`.

Documentation:

- http://www.gnu.org/software/libc/manual/html_node/IOCTLs.html,
- man ioctl.

Gnulib module: sys_ioctl

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9.
- This header file does not declare the `ioctl` function on some platforms: AIX 5.1, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

### 10.31 `sysexits.h`

Defines the `EX_*` macros, including `EX_OK`.

Gnulib module: sysexits

Portability problems fixed by Gnulib:

- This header file is missing on some platforms: mingw, MSVC 9, Interix 3.5, BeOS.
- The macro `EX_CONFIG` is missing on some platforms: HP-UX 11.

Portability problems not fixed by Gnulib:

### 10.32 `ttyent.h`

Defines the type `struct ttyent` and declares the functions `setttyent`, `endttyent`, `getttyent`, `getttynam`.

Documentation:

- man setttyent.

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This header file is missing on some platforms: HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

## 11 Glibc Function Substitutes

This chapter describes which functions and function-like macros provided as extensions by at least GNU libc are also supported by Gnulib, which portability pitfalls are fixed by Gnulib, and which (known) portability problems are not worked around by Gnulib.

The notation “Gnulib module: —” means that Gnulib does not provide a module providing a substitute for the function. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this function important enough to contribute a substitute for it. If you need this particular function, you may write to `<bug-gnulib at gnu dot org>`.

This list of functions is sorted according to the header that declares them.

### 11.1 Glibc Extensions to `<aio.h>`

#### 11.1.1 `aio_init`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.2 Glibc `<aliases.h>`

#### 11.2.1 `endaliasent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.2.2 `getaliasbyname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.2.3 `getaliasbyname_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.2.4 `getaliasent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.2.5 `getaliasent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.2.6 `setaliasent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.3 Glibc `<argp.h>`

#### 11.3.1 `argp_err_exit_status`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.2 `argp_error`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.3 `argp_failure`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.4 `argp_help`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.5 `argp_parse`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.6 `argp_program_bug_address`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.7 `argp_program_version`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.8 `argp_program_version_hook`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.9 `argp_state_help`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.3.10 `argp_usage`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.4 Glibc `<argz.h>`

#### 11.4.1 `argz_add`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.2 `argz_add_sep`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.3 `argz_append`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.4 `argz_count`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.5 `argz_create`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.6 `argz_create_sep`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.7 `argz_delete`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.8 `argz_extract`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.9 `argz_insert`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.10 `argz_next`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.11 `argz_replace`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

#### 11.4.12 `argz_stringify`

Gnulib module: argz

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is broken on some platforms: Cygwin 1.5.24.

Portability problems not fixed by Gnulib:

### 11.5 Glibc Extensions to `<arpa/inet.h>`

#### 11.5.1 `inet_aton`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

#### 11.5.2 `inet_lnaof`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.5.3 `inet_makeaddr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

#### 11.5.4 `inet_net_ntop`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.5.5 `inet_net_pton`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.5.6 `inet_neta`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 4.0, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.5.7 `inet_netof`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

#### 11.5.8 `inet_network`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

#### 11.5.9 `inet_nsap_addr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.5.10 `inet_nsap_ntoa`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.00, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.6 Glibc `<byteswap.h>`

#### 11.6.1 `bswap_16`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.6.2 `bswap_32`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.6.3 `bswap_64`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.7 Glibc Extensions to `<complex.h>`

#### 11.7.1 `clog10`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.7.2 `clog10f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.7.3 `clog10l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.8 Glibc `<crypt.h>`

#### 11.8.1 `crypt_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.8.2 `encrypt_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.8.3 `setkey_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.9 Glibc Extensions to `<ctype.h>`

#### 11.9.1 `isctype`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.10 Glibc Extensions to `<dirent.h>`

#### 11.10.1 `getdirentries`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on huge directories larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

#### 11.10.2 `scandirat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.14, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.10, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.10.3 `versionsort`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.11 Glibc Extensions to `<dlfcn.h>`

#### 11.11.1 `dladdr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.11.2 `dladdr1`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.11.3 `dlinfo`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.11.4 `dlmopen`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.11.5 `dlvsym`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.12 Glibc `<envz.h>`

#### 11.12.1 `envz_add`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.12.2 `envz_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.12.3 `envz_get`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.12.4 `envz_merge`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.12.5 `envz_remove`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.12.6 `envz_strip`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.13 Glibc `<err.h>`

#### 11.13.1 `err`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.2 `errx`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.3 `verr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.4 `verrx`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.5 `vwarn`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.6 `vwarnx`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.7 `warn`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

#### 11.13.8 `warnx`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

### 11.14 Glibc Extensions to `<errno.h>`

#### 11.14.1 `program_invocation_name`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

#### 11.14.2 `program_invocation_short_name`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5.

### 11.15 Glibc `<error.h>`

#### 11.15.1 `error`

Gnulib module: error

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.15.2 `error_at_line`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.15.3 `error_message_count`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.15.4 `error_one_per_line`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.15.5 `error_print_progname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.16 Glibc `<execinfo.h>`

#### 11.16.1 `backtrace`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.16.2 `backtrace_symbols`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.16.3 `backtrace_symbols_fd`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.4, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.17 Glibc Extensions to `<fcntl.h>`

#### 11.17.1 `fallocate`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on older glibc versions and all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly across the entire data range of files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

#### 11.17.2 `name_to_handle_at`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.17.3 `readahead`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.17.4 `open_by_handle_at`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.18 Glibc Extensions to `<fenv.h>`

#### 11.18.1 `fedisableexcept`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.18.2 `feenableexcept`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.18.3 `fegetexcept`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.19 Glibc Extensions to `<fmtmsg.h>`

#### 11.19.1 `addseverity`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.20 Glibc `<fstab.h>`

#### 11.20.1 `endfsent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.20.2 `getfsent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.20.3 `getfsfile`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.20.4 `getfsspec`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.20.5 `setfsent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.21 Glibc `<fts.h>`

#### 11.21.1 `fts_children`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not correctly report the size of files or block devices larger than 2 GB and may not work correctly on huge directories larger than 2 GB. Also, on platforms where `ino_t` is a 32-bit type, this function may report inode numbers incorrectly. The fix is to use the `AC_SYS_LARGEFILE` macro (only on MacOS X systems).

#### 11.21.2 `fts_close`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

#### 11.21.3 `fts_open`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

#### 11.21.4 `fts_read`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not correctly report the size of files or block devices larger than 2 GB and may not work correctly on huge directories larger than 2 GB. Also, on platforms where `ino_t` is a 32-bit type, this function may report inode numbers incorrectly. The fix is to use the `AC_SYS_LARGEFILE` macro (only on MacOS X systems).

#### 11.21.5 `fts_set`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

### 11.22 Glibc `<getopt.h>`

#### 11.22.1 `getopt_long`

Gnulib module: getopt-gnu

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, MSVC 9, Interix 3.5.
- The function `getopt_long` does not obey the combination of ‘`+`’ and ‘`:`’ flags in the options string on some platforms: glibc 2.11.
- The use of ‘`W;`’ in the optstring argument to does not always allow `-W foo` to behave synonymously with `--foo`: glibc 2.11.
- The function `getopt_long` does not support the ‘`+`’ flag in the options string on some platforms: MacOS X 10.5, AIX 5.2, OSF/1 5.1, Solaris 10.
- The value of `optind` after a missing required argument is wrong on some platforms: MacOS 10.5.
- The function `getopt_long` does not obey the ‘`-`’ flag in the options string when `POSIXLY_CORRECT` is set on some platforms: Cygwin 1.7.0.
- Some implementations fail to reset state, including re-checking `POSIXLY_CORRECT`, when `optind` is set to ‘`0`’: NetBSD, Cygwin 1.7.0.
- The function `getopt_long` does not support options with optional arguments on some platforms: MacOS X 10.5, OpenBSD 4.0, AIX 5.2, IRIX 6.5, Solaris 11 2010-11, Cygwin 1.5.x.
- This function crashes if the option string includes `W;` but there are no long options, on some platforms: glibc 2.14.

Portability problems not fixed by Gnulib:

#### 11.22.2 `getopt_long_only`

Gnulib module: getopt-gnu

Portability problems fixed by Gnulib:

- The function `getopt_long_only` does not obey the combination of ‘`+`’ and ‘`:`’ flags in the options string on some platforms: glibc 2.11.
- The use of ‘`W;`’ in the optstring argument to does not always allow `-W foo` to behave synonymously with `--foo`: glibc 2.11.
- The function `getopt_long_only` does not support the ‘`+`’ flag in the options string on some platforms: MacOS X 10.5, AIX 5.2, OSF/1 5.1, Solaris 10.
- The value of `optind` after a missing required argument is wrong on some platforms: MacOS 10.5.
- The function `getopt_long_only` does not obey the ‘`-`’ flag in the options string when `POSIXLY_CORRECT` is set on some platforms: Cygwin 1.7.0.
- Some implementations fail to reset state, including re-checking `POSIXLY_CORRECT`, when `optind` is set to ‘`0`’: NetBSD, Cygwin 1.7.0.
- The function `getopt_long_only` does not support options with optional arguments on some platforms: MacOS X 10.5, OpenBSD 4.0, AIX 5.2, Solaris 11 2010-11, Cygwin 1.5.x.
- This function is missing on some platforms: MacOS X 10.3, FreeBSD 5.2.1, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9, Interix 3.5.
- This function crashes if the option string includes `W;` but there are no long options, on some platforms: glibc 2.14.

Portability problems not fixed by Gnulib:

- Some implementations return success instead of reporting an ambiguity if user’s option is a prefix of two long options with the same outcome: FreeBSD.
- The GNU Coding Standards discourage the use of `getopt_long_only` in new programs.

### 11.23 Glibc Extensions to `<glob.h>`

#### 11.23.1 `glob_pattern_p`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on most non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.24 Glibc Extensions to `<gnu/libc-version.h>`

#### 11.24.1 `gnu_get_libc_release`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.24.2 `gnu_get_libc_version`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

### 11.25 Glibc Extensions to `<grp.h>`

#### 11.25.1 `fgetgrent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.25.2 `fgetgrent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.25.3 `getgrent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.25.4 `getgrouplist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, BeOS.

#### 11.25.5 `initgroups`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.25.6 `putgrent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.25.7 `setgroups`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, mingw, MSVC 9, Interix 3.5, BeOS.
- On very old systems, this function operated on an array of ‘`int`’, even though that was a different size than an array of ‘`gid_t`’; you can use autoconf’s AC_TYPE_GETGROUPS to set `GETGROUPS_T` to the appropriate size (since `getgroups` and `setgroups` share the same bug).

### 11.26 Glibc `<gshadow.h>`

#### 11.26.1 `endsgent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.2 `fgetsgent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.3 `fgetsgent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.4 `getsgent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.5 `getsgent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.6 `getsgnam`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.7 `getsgnam_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.8 `putsgent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.9 `setsgent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.10 `sgetsgent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.26.11 `sgetsgent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.27 Glibc `<ifaddrs.h>`

#### 11.27.1 `getifaddrs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.27.2 `freeifaddrs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.28 Glibc `<libintl.h>`

#### 11.28.1 `bind_textdomain_codeset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.2 `bindtextdomain`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.3 `dcgettext`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.4 `dcngettext`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.5 `dgettext`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.6 `dngettext`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.7 `gettext`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.8 `ngettext`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.28.9 `textdomain`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.29 Glibc `<link.h>`

#### 11.29.1 `dl_iterate_phdr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.30 Glibc `<malloc.h>`

#### 11.30.1 `mallinfo`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.2 `malloc_get_state`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.3 `malloc_set_state`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.4 `malloc_info`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.5 `malloc_stats`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.6 `malloc_trim`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.7 `malloc_usable_size`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.8 `mallopt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Solaris 11 2010-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.30.9 `memalign`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.00, OSF/1 5.1, mingw, MSVC 9, Interix 3.5.

#### 11.30.10 `pvalloc`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.31 Glibc Extensions to `<math.h>`

#### 11.31.1 `drem`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, mingw, MSVC 9.

#### 11.31.2 `dremf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9.

#### 11.31.3 `dreml`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.4 `exp10`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.31.5 `exp10f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.31.6 `exp10l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.7 `finite`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, MSVC 9.

#### 11.31.8 `finitef`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9.

#### 11.31.9 `finitel`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.31.10 `gamma`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9.

#### 11.31.11 `gammaf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.12 `gammal`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.13 `isinff`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.

#### 11.31.14 `isinfl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.31.15 `isnanf`

Gnulib module: isnanf

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, MSVC 9.

Portability problems not fixed by Gnulib:

#### 11.31.16 `isnanl`

Gnulib module: isnanl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

#### 11.31.17 `j0f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.18 `j0l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.19 `j1f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.20 `j1l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.21 `jnf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.22 `jnl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.23 `lgamma_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5 x86, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.

#### 11.31.24 `lgammaf_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.

#### 11.31.25 `lgammal_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.26 `matherr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: FreeBSD 6.0, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, MSVC 9.

#### 11.31.27 `pow10`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.31.28 `pow10f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.31.29 `pow10l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.30 `scalbf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.31 `scalbl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.32 `significand`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.

#### 11.31.33 `significandf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.

#### 11.31.34 `significandl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.35 `sincos`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9, Interix 3.5.

#### 11.31.36 `sincosf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9, Interix 3.5.

#### 11.31.37 `sincosl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.38 `y0f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.39 `y0l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.40 `y1f`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.41 `y1l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.31.42 `ynf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, mingw, MSVC 9.

#### 11.31.43 `ynl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.32 Glibc `<mcheck.h>`

#### 11.32.1 `mcheck`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.32.2 `mcheck_check_all`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.32.3 `mcheck_pedantic`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.32.4 `mprobe`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.32.5 `mtrace`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.32.6 `muntrace`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.33 Glibc `<mntent.h>`

#### 11.33.1 `addmntent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.33.2 `endmntent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.33.3 `getmntent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, mingw, MSVC 9, BeOS.

#### 11.33.4 `getmntent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.33.5 `hasmntopt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Cygwin, mingw, MSVC 9, BeOS.

#### 11.33.6 `setmntent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.34 Glibc Extensions to `<netdb.h>`

#### 11.34.1 `endnetgrent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.2 `gethostbyaddr_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.3 `gethostbyname2`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.4 `gethostbyname2_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.5 `gethostbyname_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.6 `gethostent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.7 `getnetbyaddr_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.8 `getnetbyname_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.9 `getnetent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.10 `getnetgrent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.11 `getnetgrent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.12 `getprotobyname_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.13 `getprotobynumber_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.14 `getprotoent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.15 `getservbyname_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.16 `getservbyport_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.17 `getservent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.18 `herror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5.

#### 11.34.19 `hstrerror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.20 `innetgr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.21 `rcmd`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

#### 11.34.22 `rcmd_af`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.23 `rexec`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

#### 11.34.24 `rexec_af`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.25 `rresvport`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

#### 11.34.26 `rresvport_af`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 4.0, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.27 `ruserok`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, BeOS.

#### 11.34.28 `ruserok_af`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.34.29 `setnetgrent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.35 Glibc `<netinet/ether.h>`

#### 11.35.1 `ether_aton`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.35.2 `ether_aton_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.35.3 `ether_hostton`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.35.4 `ether_line`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.35.5 `ether_ntoa`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.35.6 `ether_ntoa_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.35.7 `ether_ntohost`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.36 Glibc Extensions to `<netinet/in.h>`

#### 11.36.1 `bindresvport`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.

#### 11.36.2 `getipv4sourcefilter`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.3 `getsourcefilter`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.4 `in6addr_any`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This constant is missing on some platforms: MacOS X 10.5, Minix 3.1.8, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.5 `in6addr_loopback`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This constant is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 4.3.2, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.6 `inet6_option_alloc`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.7 `inet6_option_append`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.8 `inet6_option_find`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.9 `inet6_option_init`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.10 `inet6_option_next`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.11 `inet6_option_space`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.12 `inet6_opt_append`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.13 `inet6_opt_find`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.14 `inet6_opt_finish`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.15 `inet6_opt_get_val`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.16 `inet6_opt_init`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.17 `inet6_opt_next`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.18 `inet6_opt_set_val`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.19 `inet6_rth_add`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.20 `inet6_rth_getaddr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.21 `inet6_rth_init`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.22 `inet6_rth_reverse`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.23 `inet6_rth_segments`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.24 `inet6_rth_space`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.4, MacOS X 10.5, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.25 `setipv4sourcefilter`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.36.26 `setsourcefilter`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.37 Glibc `<obstack.h>`

#### 11.37.1 `obstack_alloc_failed_handler`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.37.2 `obstack_exit_failure`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.37.3 `obstack_free`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.37.4 `obstack_printf`

Gnulib module: obstack-printf or obstack-printf-posix

Portability problems fixed by either Gnulib module `obstack-printf` or `obstack-printf-posix`:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems fixed by Gnulib module `ostack-printf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
- This function does not fully support the ‘`n`’ directive on some platforms: HP-UX 11, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

#### 11.37.5 `obstack_vprintf`

Gnulib module: obstack-printf or obstack-printf-posix

Portability problems fixed by either Gnulib module `obstack-printf` or `obstack-printf-posix`:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems fixed by Gnulib module `ostack-printf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.24, mingw, MSVC 9, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: mingw, MSVC 9, BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: AIX 5.2, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, AIX 5.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function does not support the ‘`n`’ directive on some platforms: MSVC 9.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, IRIX 6.5, Solaris 2.6, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.
- This function behaves incorrectly when a ‘`-`’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, AIX 5.2, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: Solaris 10/x86, mingw, MSVC 9, BeOS.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.
- This function does not fully support the ‘`n`’ directive on some platforms: HP-UX 11, mingw, MSVC 9.

Portability problems not fixed by Gnulib:

### 11.38 Glibc `<printf.h>`

#### 11.38.1 `parse_printf_format`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.38.2 `printf_size`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.38.3 `printf_size_info`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.38.4 `register_printf_function`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.38.5 `register_printf_modifier`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.38.6 `register_printf_specifier`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.38.7 `register_printf_type`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.9, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.39 Glibc Extensions to `<pthread.h>`

#### 11.39.1 `pthread_attr_getaffinity_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has a different signature on some platforms: glibc 2.3.3.

#### 11.39.2 `pthread_attr_setaffinity_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has a different signature on some platforms: glibc 2.3.3.

#### 11.39.3 `pthread_getaffinity_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has a different signature on some platforms: glibc 2.3.3.
- The third parameter has a different type on some platforms: FreeBSD 7.2, NetBSD 5.0.

#### 11.39.4 `pthread_getattr_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.5 `pthread_getname_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.6 `pthread_kill_other_threads_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.7 `pthread_mutex_consistent_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.8 `pthread_mutexattr_getrobust_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

This function has now been standardized by POSIX under the name `pthread_mutexattr_getrobust`.

#### 11.39.9 `pthread_mutexattr_setrobust_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 7, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

This function has now been standardized by POSIX under the name `pthread_mutexattr_setrobust`.

#### 11.39.10 `pthread_rwlockattr_getkind_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.11 `pthread_rwlockattr_setkind_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.12 `pthread_setaffinity_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has a different signature on some platforms: glibc 2.3.3.
- The third parameter has a different type on some platforms: FreeBSD 7.2, NetBSD 5.0.

#### 11.39.13 `pthread_setname_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has a different signature on some platforms: NetBSD 5.0, OSF/1 5.1. On OSF/1 the third argument must be `NULL`. On NetBSD the second argument is interpreted as a `printf` format string, with the third argument as parameter.

#### 11.39.14 `pthread_sigqueue`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.10, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.15 `pthread_timedjoin_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- FreeBSD 6.4 has a function of this name in `libthr` but not in `libpthread`, and it also is missing a declaration.

#### 11.39.16 `pthread_tryjoin_np`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.3.2, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.39.17 `pthread_yield`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin 1.7.7, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.40 Glibc `<pty.h>`

#### 11.40.1 `forkpty`

Gnulib module: forkpty

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11.
- One some systems (at least including Cygwin, Interix, OSF/1 4 and 5, and Mac OS X) linking with `-lutil` is not required.
- On glibc, OpenBSD, NetBSD and FreeBSD linking with `-lutil` is required.
- The function is declared in pty.h on Cygwin, Interix, OSF/1 4 and 5, and glibc. It is declared in util.h on Mac OS X, OpenBSD and NetBSD. It is declared in libutil.h on FreeBSD.
- Some platforms declare the function without marking the last two parameters `const`. FreeBSD, Cygwin 1.7.1.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

#### 11.40.2 `openpty`

Gnulib module: openpty

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11.
- One some systems (at least including Cygwin, Interix, OSF/1 4 and 5, and Mac OS X) linking with `-lutil` is not required.
- On glibc, OpenBSD, NetBSD and FreeBSD linking with `-lutil` is required.
- The function is declared in pty.h on Cygwin, Interix, OSF/1 4 and 5, and glibc. It is declared in util.h on Mac OS X, OpenBSD and NetBSD. It is declared in libutil.h on FreeBSD.
- Some platforms declare the function without marking the last two parameters `const`. FreeBSD, Cygwin 1.7.1.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- After a successful call to `openpty`, the application needs to close the master’s file descriptor before closing the slave’s file descriptor, otherwise the process may hang in a state where it cannot be killed, on some platforms: MacOS X 10.4.11.

### 11.41 Glibc Extensions to `<pwd.h>`

#### 11.41.1 `fgetpwent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.41.2 `fgetpwent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.41.3 `getpw`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.41.4 `getpwent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.41.5 `putpwent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.42 Glibc Extensions to `<regex.h>`

#### 11.42.1 `re_comp`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.2 `re_compile_fastmap`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.3 `re_compile_pattern`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.4 `re_exec`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.5 `re_match`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.6 `re_match_2`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.7 `re_search`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.8 `re_search_2`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.9 `re_set_registers`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.10 `re_set_syntax`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.42.11 `re_syntax_options`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

### 11.43 Glibc `<regexp.h>`

#### 11.43.1 `advance`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.43.2 `loc1`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.43.3 `loc2`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.43.4 `locs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.43.5 `step`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.44 Glibc `<resolv.h>`

#### 11.44.1 `dn_expand`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.44.2 `res_init`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.44.3 `res_mkquery`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.44.4 `res_query`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.44.5 `res_querydomain`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

#### 11.44.6 `res_search`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5.

### 11.45 Glibc `<rpc/auth.h>`

#### 11.45.1 `authdes_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.2 `authdes_pk_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.3 `authnone_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.45.4 `authunix_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

#### 11.45.5 `authunix_create_default`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

#### 11.45.6 `getnetname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.7 `host2netname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.8 `key_decryptsession`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.9 `key_decryptsession_pk`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.10 `key_encryptsession`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.11 `key_encryptsession_pk`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.12 `key_gendes`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.13 `key_get_conv`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.14 `key_secretkey_is_set`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.15 `key_setsecret`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.16 `netname2host`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.17 `netname2user`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.18 `user2netname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.45.19 `xdr_des_block`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.45.20 `xdr_opaque_auth`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.46 Glibc `<rpc/auth_des.h>`

#### 11.46.1 `authdes_getucred`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.46.2 `getpublickey`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.46.3 `getsecretkey`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.46.4 `rtime`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.47 Glibc `<rpc/auth_unix.h>`

#### 11.47.1 `xdr_authunix_parms`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

### 11.48 Glibc `<rpc/clnt.h>`

#### 11.48.1 `callrpc`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.2 `clnt_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.3 `clnt_pcreateerror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.4 `clnt_perrno`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.5 `clnt_perror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.6 `clnt_spcreateerror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.7 `clnt_sperrno`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.8 `clnt_sperror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.9 `clntraw_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.10 `clnttcp_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.11 `clntudp_bufcreate`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.12 `clntudp_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.13 `clntunix_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.48.14 `get_myaddress`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.15 `getrpcport`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, Cygwin, mingw, MSVC 9, BeOS.

#### 11.48.16 `rpc_createerr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, BeOS.

### 11.49 Glibc `<rpc/des_crypt.h>`

#### 11.49.1 `cbc_crypt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.49.2 `des_setparity`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.49.3 `ecb_crypt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.50 Glibc `<rpc/key_prot.h>`

#### 11.50.1 `xdr_cryptkeyarg`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.2 `xdr_cryptkeyarg2`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.3 `xdr_cryptkeyres`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.4 `xdr_getcredres`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.5 `xdr_key_netstarg`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.6 `xdr_key_netstres`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.7 `xdr_keybuf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.8 `xdr_keystatus`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.9 `xdr_netnamestr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.50.10 `xdr_unixcred`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.51 Glibc `<rpc/netdb.h>`

#### 11.51.1 `endrpcent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.51.2 `getrpcbyname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.51.3 `getrpcbyname_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.51.4 `getrpcbynumber`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.51.5 `getrpcbynumber_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.51.6 `getrpcent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.51.7 `getrpcent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.51.8 `setrpcent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.52 Glibc `<rpc/pmap_clnt.h>`

#### 11.52.1 `clnt_broadcast`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.52.2 `pmap_getmaps`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.52.3 `pmap_getport`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.52.4 `pmap_rmtcall`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.52.5 `pmap_set`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.52.6 `pmap_unset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.53 Glibc `<rpc/pmap_prot.h>`

#### 11.53.1 `xdr_pmap`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.53.2 `xdr_pmaplist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.54 Glibc `<rpc/pmap_rmt.h>`

#### 11.54.1 `xdr_rmtcall_args`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

#### 11.54.2 `xdr_rmtcallres`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.55 Glibc `<rpc/rpc_msg.h>`

#### 11.55.1 `xdr_callhdr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.55.2 `xdr_callmsg`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.55.3 `xdr_replymsg`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.56 Glibc `<rpc/svc.h>`

#### 11.56.1 `svc_exit`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.56.2 `svc_fdset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.3 `svc_getreq`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.4 `svc_getreq_common`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.56.5 `svc_getreq_poll`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.56.6 `svc_getreqset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.7 `svc_max_pollfd`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.56.8 `svc_pollfd`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.56.9 `svc_register`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.10 `svc_run`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.11 `svc_sendreply`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.12 `svc_unregister`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.13 `svcerr_auth`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.14 `svcerr_decode`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.15 `svcerr_noproc`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.16 `svcerr_noprog`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.17 `svcerr_progvers`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.18 `svcerr_systemerr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.19 `svcerr_weakauth`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.20 `svcraw_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.21 `svctcp_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.22 `svcudp_bufcreate`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.23 `svcudp_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.24 `svcunix_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.56.25 `xprt_register`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

#### 11.56.26 `xprt_unregister`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.

### 11.57 Glibc `<rpc/xdr.h>`

#### 11.57.1 `xdr_array`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.2 `xdr_bool`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.3 `xdr_bytes`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.4 `xdr_char`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.5 `xdr_double`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.6 `xdr_enum`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.7 `xdr_float`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.8 `xdr_free`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.9 `xdr_hyper`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.10 `xdr_int`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.11 `xdr_int16_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.12 `xdr_int32_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.13 `xdr_int64_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.14 `xdr_int8_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.15 `xdr_long`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.16 `xdr_longlong_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.17 `xdr_netobj`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.18 `xdr_opaque`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.19 `xdr_pointer`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.20 `xdr_quad_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.21 `xdr_reference`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.22 `xdr_short`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.23 `xdr_sizeof`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.24 `xdr_string`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.25 `xdr_u_char`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.26 `xdr_u_hyper`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, IRIX 5.3, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.27 `xdr_u_int`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.28 `xdr_u_long`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.29 `xdr_u_longlong_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.3, OpenBSD 3.8, Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.30 `xdr_u_quad_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.57.31 `xdr_u_short`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.32 `xdr_uint16_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared in the header on some platforms: Cygwin 1.7.5.

#### 11.57.33 `xdr_uint32_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared in the header on some platforms: Cygwin 1.7.5.

#### 11.57.34 `xdr_uint64_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared in the header on some platforms: Cygwin 1.7.5.

#### 11.57.35 `xdr_uint8_t`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is not declared in the header on some platforms: Cygwin 1.7.5.

#### 11.57.36 `xdr_union`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.37 `xdr_vector`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.38 `xdr_void`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.39 `xdr_wrapstring`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.40 `xdrmem_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.41 `xdrrec_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.42 `xdrrec_endofrecord`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.43 `xdrrec_eof`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.44 `xdrrec_skiprecord`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

#### 11.57.45 `xdrstdio_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin 1.7.4, mingw, MSVC 9, BeOS.

### 11.58 Glibc `<rpcsvc/nislib.h>`

#### 11.58.1 `nis_add`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.2 `nis_add_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.3 `nis_addmember`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.4 `nis_checkpoint`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.5 `nis_clone_object`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.6 `nis_creategroup`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.7 `nis_destroy_object`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.8 `nis_destroygroup`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.9 `nis_dir_cmp`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.10 `nis_domain_of`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.11 `nis_domain_of_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.12 `nis_first_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.13 `nis_freenames`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.14 `nis_freeresult`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.15 `nis_freeservlist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.16 `nis_freetags`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.17 `nis_getnames`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.18 `nis_getservlist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.19 `nis_ismember`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.20 `nis_leaf_of`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.21 `nis_leaf_of_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.22 `nis_lerror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.23 `nis_list`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.24 `nis_local_directory`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.25 `nis_local_group`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.26 `nis_local_host`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.27 `nis_local_principal`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.28 `nis_lookup`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.29 `nis_mkdir`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.30 `nis_modify`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.31 `nis_modify_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.32 `nis_name_of`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.33 `nis_name_of_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.34 `nis_next_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.35 `nis_perror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.36 `nis_ping`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.37 `nis_print_directory`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.38 `nis_print_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.39 `nis_print_group`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.40 `nis_print_group_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.41 `nis_print_link`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.42 `nis_print_object`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.43 `nis_print_result`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.44 `nis_print_rights`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.45 `nis_print_table`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.46 `nis_remove`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.47 `nis_remove_entry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.48 `nis_removemember`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.49 `nis_rmdir`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.50 `nis_servstate`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.51 `nis_sperrno`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.52 `nis_sperror`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.53 `nis_sperror_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.54 `nis_stats`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.58.55 `nis_verifygroup`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.59 Glibc `<rpcsvc/nis_callback.h>`

#### 11.59.1 `xdr_cback_data`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.59.2 `xdr_obj_p`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.60 Glibc `<rpcsvc/yp.h>`

#### 11.60.1 `xdr_domainname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.2 `xdr_keydat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.3 `xdr_mapname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.4 `xdr_peername`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.5 `xdr_valdat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.6 `xdr_ypbind_binding`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.7 `xdr_ypbind_resp`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.8 `xdr_ypbind_resptype`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.9 `xdr_ypbind_setdom`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.10 `xdr_ypmap_parms`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.11 `xdr_ypmaplist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.12 `xdr_yppush_status`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.13 `xdr_yppushresp_xfr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.14 `xdr_ypreq_key`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.15 `xdr_ypreq_nokey`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.16 `xdr_ypreq_xfr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.17 `xdr_ypresp_all`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.18 `xdr_ypresp_key_val`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.19 `xdr_ypresp_maplist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.20 `xdr_ypresp_master`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.21 `xdr_ypresp_order`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.22 `xdr_ypresp_val`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.23 `xdr_ypresp_xfr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.24 `xdr_ypstat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.60.25 `xdr_ypxfrstat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.61 Glibc `<rpcsvc/yp_prot.h>`

#### 11.61.1 `xdr_ypall`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.62 Glibc `<rpcsvc/ypclnt.h>`

#### 11.62.1 `yp_all`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.2 `yp_bind`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.3 `yp_first`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.4 `yp_get_default_domain`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.5 `yp_master`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.6 `yp_match`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.7 `yp_next`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.8 `yp_order`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.9 `yp_unbind`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.10 `yp_update`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.11 `ypbinderr_string`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.12 `yperr_string`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.62.13 `ypprot_err`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.63 Glibc `<rpcsvc/ypupd.h>`

#### 11.63.1 `xdr_yp_buf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.63.2 `xdr_ypdelete_args`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.63.3 `xdr_ypupdate_args`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.64 Glibc Extensions to `<sched.h>`

#### 11.64.1 `clone`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.64.2 `sched_getaffinity`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.64.3 `sched_setaffinity`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.64.4 `setns`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.65 Glibc Extensions to `<search.h>`

#### 11.65.1 `hcreate_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

#### 11.65.2 `hdestroy_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

#### 11.65.3 `hsearch_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

#### 11.65.4 `tdestroy`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.66 Glibc Extensions to `<selinux/selinux.h>`

#### 11.66.1 `fgetfilecon`

Gnulib module: selinux-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS. On those platforms, this module provides a stub that always sets `errno` to `ENOTSUP` and returns ‘`-1`’.
- On systems with SELinux support, this module provides a wrapper for the `fgetfilecon` function that insulates the caller from API-nonconforming behavior. Without this wrapper, `fgetfilecon` can return ‘`0`’ and set the `context` pointer to NULL, and in another scenario can return ‘`10`’ and set the `context` pointer to ‘`unlabeled`’. This wrapper returns ‘`-1`’ in each case and sets `errno` to `ENOTSUP` and `ENODATA` respectively. While the conditions that can provoke such behavior are rare, the average caller does not handle them because the possibility of such behavior is not documented.

Portability problems not fixed by Gnulib:

#### 11.66.2 `getfilecon`

Gnulib module: selinux-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS. On those platforms, this module provides a stub that always sets `errno` to `ENOTSUP` and returns ‘`-1`’.
- On systems with SELinux support, this module provides a wrapper for the `getfilecon` function that insulates the caller from API-nonconforming behavior. Without this wrapper, `getfilecon` can return ‘`0`’ and set the `context` pointer to NULL, and in another scenario can return ‘`10`’ and set the `context` pointer to ‘`unlabeled`’. This wrapper returns ‘`-1`’ in each case and sets `errno` to `ENOTSUP` and `ENODATA` respectively. While the conditions that can provoke such behavior are rare, the average caller does not handle them because the possibility of such behavior is not documented.

Portability problems not fixed by Gnulib:

#### 11.66.3 `lgetfilecon`

Gnulib module: selinux-h

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS. On those platforms, this module provides a stub that always sets `errno` to `ENOTSUP` and returns ‘`-1`’.
- On systems with SELinux support, this module provides a wrapper for the `lgetfilecon` function that insulates the caller from API-nonconforming behavior. Without this wrapper, `lgetfilecon` can return ‘`0`’ and set the `context` pointer to NULL, and in another scenario can return ‘`10`’ and set the `context` pointer to ‘`unlabeled`’. This wrapper returns ‘`-1`’ in each case and sets `errno` to `ENOTSUP` and `ENODATA` respectively. While the conditions that can provoke such behavior are rare, the average caller does not handle them because the possibility of such behavior is not documented.

Portability problems not fixed by Gnulib:

### 11.67 Glibc `<shadow.h>`

#### 11.67.1 `endspent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.2 `fgetspent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.3 `fgetspent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.4 `getspent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.5 `getspent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.6 `getspnam`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.7 `getspnam_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.8 `lckpwdf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.9 `putspent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.10 `setspent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.11 `sgetspent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.12 `sgetspent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.67.13 `ulckpwdf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.68 Glibc Extensions to `<signal.h>`

#### 11.68.1 `gsignal`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.68.2 `sigandset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.68.3 `sigblock`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

#### 11.68.4 `siggetmask`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.68.5 `sigisemptyset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.68.6 `sigorset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.68.7 `sigreturn`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.68.8 `sigsetmask`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

#### 11.68.9 `sigstack`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.68.10 `sigvec`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, BeOS.

#### 11.68.11 `ssignal`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.68.12 `sys_siglist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This constant is missing on some platforms: MacOS X 10.5, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5.

#### 11.68.13 `sysv_signal`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

### 11.69 Glibc Extensions to `<stdio.h>`

#### 11.69.1 `asprintf`

Gnulib module: vasprintf or vasprintf-posix

Portability problems fixed by either Gnulib module `vasprintf` or `vasprintf-posix`:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5.

Portability problems fixed by Gnulib module `vasprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: Cygwin 1.5.24, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: Solaris 11 2011-11.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, Solaris 11 2011-11, Cygwin 1.5.x, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, Cygwin 1.5.x, BeOS.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Solaris 11 2011-11, Cygwin 1.5.x.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: BeOS.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems not fixed by Gnulib:

#### 11.69.2 `cuserid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, mingw, MSVC 9.

#### 11.69.3 `clearerr_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.4 `fcloseall`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, Interix 3.5.

#### 11.69.5 `feof_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.6 `ferror_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.7 `fflush_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.8 `fgetc_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.69.9 `fgets_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.10 `fileno_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.11 `fopencookie`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.69.12 `fputc_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.13 `fputs_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.69.14 `fread_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.15 `fwrite_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.69.16 `getw`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.

#### 11.69.17 `putw`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: BeOS.

#### 11.69.18 `setbuffer`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, mingw, MSVC 9.

#### 11.69.19 `setlinebuf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11.23, mingw, MSVC 9.

#### 11.69.20 `sys_errlist`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: Minix 3.1.8, MacOS X 10.5, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.

#### 11.69.21 `sys_nerr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This variable is missing on some platforms: MacOS X 10.5, Minix 3.1.8, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.

#### 11.69.22 `tmpnam_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.69.23 `vasprintf`

Gnulib module: vasprintf or vasprintf-posix

Portability problems fixed by either Gnulib module `vasprintf` or `vasprintf-posix`:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5.

Portability problems fixed by Gnulib module `vasprintf-posix`:

- This function does not support size specifiers as in C99 (`hh`, `ll`, `j`, `t`, `z`) on some platforms: Cygwin 1.5.24, BeOS.
- printf of ‘`long double`’ numbers is unsupported on some platforms: BeOS.
- printf `"%f"`, `"%e"`, `"%g"` of Infinity and NaN yields an incorrect result on some platforms: Solaris 11 2011-11.
- This function does not support the ‘`a`’ and ‘`A`’ directives on some platforms: glibc-2.3.6, MacOS X 10.5, NetBSD 5.0, OpenBSD 4.0, Solaris 11 2011-11, Cygwin 1.5.x, BeOS.
- This function does not support the ‘`F`’ directive on some platforms: NetBSD 3.0, Cygwin 1.5.x, BeOS.
- This function does not support the ‘`ls`’ directive on some platforms: OpenBSD 4.0, Cygwin 1.5.x, Haiku.
- This function does not support precisions in the ‘`ls`’ directive correctly on some platforms: Solaris 11 2011-11.
- This function does not support format directives that access arguments in an arbitrary order, such as `"%2$s"`, on some platforms: NetBSD 3.0, BeOS.
- This function doesn’t support the `'` flag on some platforms: NetBSD 3.0, Cygwin 1.5.24.
- printf `"%010f"` of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Solaris 11 2011-11, Cygwin 1.5.x.
- This function does not support precisions larger than 512 or 1024 in integer, floating-point and pointer output on some platforms: BeOS.
- This function can crash in out-of-memory conditions on some platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0.

Portability problems not fixed by Gnulib:

### 11.70 Glibc Extensions to `<stdlib.h>`

#### 11.70.1 `canonicalize_file_name`

Gnulib module: canonicalize-lgpl

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- This function fails to detect trailing slashes on non-directories on some platforms: glibc 2.3.5.

Portability problems not fixed by Gnulib:

#### 11.70.2 `cfree`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.3 `clearenv`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, IRIX 6.5, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.4 `drand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.5 `ecvt_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.6 `erand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.7 `fcvt_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.8 `getloadavg`

Gnulib module: getloadavg

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 2.6, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is declared in `<sys/loadavg.h>`, not `<stdlib.h>`, on some platforms: Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

#### 11.70.9 `getpt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.10 `initstate_r`

Gnulib module: random_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.
- This function has an incompatible declaration on some platforms: AIX 7.1, OSF/1 5.1.

Portability problems not fixed by Gnulib:

#### 11.70.11 `jrand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.12 `lcong48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.13 `lrand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.14 `mkostemp`

Gnulib module: mkostemp

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.5, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, `mkostemp` may not work correctly to create files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

The gnulib module `clean-temp` can create temporary files that will not be left behind after signals such as SIGINT.

#### 11.70.15 `mkostemps`

Gnulib module: mkostemps

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.5, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, `mkostemps` may not work correctly to create files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

The gnulib module `clean-temp` can create temporary files that will not be left behind after signals such as SIGINT.

#### 11.70.16 `mrand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.17 `mkstemps`

Gnulib module: mkstemps

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.10, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is declared in `<unistd.h>` instead of `<stdlib.h>` on some platforms: MacOS X 10.5.
- On platforms where `off_t` is a 32-bit type, `mkstemps` may not work correctly to create files larger than 2 GB. (Cf. `AC_SYS_LARGEFILE`.)

Portability problems not fixed by Gnulib:

The gnulib module `clean-temp` can create temporary files that will not be left behind after signals such as SIGINT.

#### 11.70.18 `nrand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.19 `on_exit`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.20 `ptsname_r`

Gnulib module: ptsname_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, BeOS.
- This function is not declared unless `_REENTRANT` is defined, on some platforms: OSF/1 5.1.
- This function has an incompatible declaration on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

#### 11.70.21 `qecvt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.22 `qecvt_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.23 `qfcvt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.24 `qfcvt_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.25 `qgcvt`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.26 `qsort_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.7, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.27 `random_r`

Gnulib module: random_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.
- This function has an incompatible declaration on some platforms: AIX 7.1, OSF/1 5.1.

Portability problems not fixed by Gnulib:

#### 11.70.28 `rpmatch`

Gnulib module: rpmatch

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.70.29 `seed48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.30 `setstate_r`

Gnulib module: random_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.
- This function has an incompatible declaration on some platforms: AIX 7.1, OSF/1 5.1.

Portability problems not fixed by Gnulib:

#### 11.70.31 `srand48_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.70.32 `srandom_r`

Gnulib module: random_r

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5.

Portability problems not fixed by Gnulib:

#### 11.70.33 `strtod_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.34 `strtof_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.35 `strtol_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.36 `strtold_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.37 `strtoll_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.38 `strtoq`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9.

#### 11.70.39 `strtoul_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.40 `strtoull_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.70.41 `strtouq`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9.

#### 11.70.42 `valloc`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5.

### 11.71 Glibc Extensions to `<string.h>`

#### 11.71.1 `ffsl`

Gnulib module: ffsl

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 5.2.1, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.71.2 `ffsll`

Gnulib module: ffsll

Portability problems fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.71.3 `memfrob`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.71.4 `memmem`

Gnulib module: memmem or memmem-simple

Both modules implement the same replacement for the `memmem` function with the memmem module providing a replacement on more platforms where the existing `memmem` function has a quadratic worst-case complexity.

Portability problems fixed by either Gnulib module `memmem-simple` or `memmem`:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 5.2.1, OpenBSD 4.0, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, Interix 3.5, BeOS.
- This function has reversed arguments on some older platforms: Linux libc 5.0.9
- This function can trigger false positives for long periodic needles on some platforms: glibc 2.12, Cygwin 1.7.7.
- This function returns incorrect values in some cases, such as when given an empty needle: glibc <= 2.0, Solaris 11 2011-11, Cygwin 1.5.x.

Performance problems fixed by Gnulib module `memmem`:

- This function has quadratic instead of linear worst-case complexity on some platforms: glibc 2.8, FreeBSD 6.2, NetBSD 5.0, AIX 5.1, Solaris 11 2011-11, Cygwin 1.5.x. Note for small needles the replacement may be slower.

Portability problems not fixed by Gnulib:

#### 11.71.5 `mempcpy`

Gnulib module: mempcpy

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.71.6 `memrchr`

Gnulib module: memrchr

Portability problems fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.71.7 `rawmemchr`

Gnulib module: rawmemchr

Portability problems fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.71.8 `strcasestr`

Gnulib module: strcasestr or strcasestr-simple

Portability problems fixed by either Gnulib module `strcasestr-simple` or `strcasestr`:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
- This function can trigger memchr bugs on some platforms: glibc 2.10.
- This function can trigger false positives for long periodic needles on some platforms: glibc 2.12, Cygwin 1.7.7.

Portability problems fixed by Gnulib module `strcasestr`:

- This function has quadratic instead of linear worst-case complexity on some platforms: glibc 2.8, FreeBSD 6.2, NetBSD 5.0, OpenBSD 4.0, Solaris 11 2011-11.

Portability problems not fixed by Gnulib:

#### 11.71.9 `strchrnul`

Gnulib module: strchrnul

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.8, mingw, MSVC 9, Interix 3.5, BeOS.
- This function crashes when no occurrence is found on some platforms: Cygwin 1.7.9.

Portability problems not fixed by Gnulib:

#### 11.71.10 `strfry`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.71.11 `strsep`

Gnulib module: strsep

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, mingw, MSVC 9, BeOS.

Portability problems not fixed by Gnulib:

#### 11.71.12 `strverscmp`

Gnulib module: strverscmp

Portability problems fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 11.72 Glibc `<sys/capability.h>`

#### 11.72.1 `capget`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.72.2 `capset`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.73 Glibc `<sys/epoll.h>`

#### 11.73.1 `epoll_create`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.73.2 `epoll_ctl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.73.3 `epoll_wait`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.74 Glibc `<sys/fanotify.h>`

#### 11.74.1 `fanotify_init`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.12, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.74.2 `fanotify_mark`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.12, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.75 Glibc `<sys/file.h>`

#### 11.75.1 `flock`

Gnulib module: flock

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11.23, Solaris 11 2011-11, BeOS.

### 11.76 Glibc `<sys/fsuid.h>`

#### 11.76.1 `setfsgid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.76.2 `setfsuid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.77 Glibc `<sys/gmon.h>`

#### 11.77.1 `monstartup`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.78 Glibc `<sys/io.h>`, `<sys/perm.h>`

#### 11.78.1 `ioperm`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.78.2 `iopl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.79 Glibc `<sys/kdaemon.h>`

#### 11.79.1 `bdflush`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.80 Glibc `<sys/klog.h>`

#### 11.80.1 `klogctl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.81 Glibc Extensions to `<sys/mman.h>`

#### 11.81.1 `madvise`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Cygwin 1.7.7, mingw, MSVC 9, BeOS.

#### 11.81.2 `mincore`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.81.3 `mremap`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.81.4 `remap_file_pages`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.82 Glibc `<sys/mount.h>`

#### 11.82.1 `mount`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, Interix 3.5.

#### 11.82.2 `umount`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, AIX 5.1, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.82.3 `umount2`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.23, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.83 Glibc `<sys/personality.h>`

#### 11.83.1 `personality`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.84 Glibc `<sys/prctl.h>`

#### 11.84.1 `prctl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.85 Glibc `<sys/profil.h>`

#### 11.85.1 `sprofil`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.86 Glibc `<sys/ptrace.h>`

#### 11.86.1 `ptrace`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.87 Glibc `<sys/quota.h>`

#### 11.87.1 `quotactl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.88 Glibc `<sys/reboot.h>`

#### 11.88.1 `reboot`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.89 Glibc Extensions to `<sys/resource.h>`

#### 11.89.1 `prlimit`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.12, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.90 Glibc Extensions to `<sys/sem.h>`

#### 11.90.1 `semtimedop`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11.11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.91 Glibc `<sys/sendfile.h>`

#### 11.91.1 `sendfile`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 4.0, Solaris 11 2010-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 11.92 Glibc Extensions to `<sys/socket.h>`

#### 11.92.1 `accept4`

Gnulib module: accept4

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not atomic; this matters in multi-threaded programs that spawn child processes.

Portability problems not fixed by Gnulib:

#### 11.92.2 `isfdtype`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 4.0, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.92.3 `recvmmsg`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.92.4 `sendmmsg`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.93 Glibc Extensions to `<sys/stat.h>`

#### 11.93.1 `lchmod`

Gnulib module: lchmod

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

### 11.94 Glibc `<sys/statfs.h>`

#### 11.94.1 `fstatfs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `f_blocks` in ‘`struct statfs`’ is a 32-bit value, this function may not work correctly on files systems larger than 4 TiB. The fix is to use the `AC_SYS_LARGEFILE` macro. This affects MacOS X.

#### 11.94.2 `statfs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `f_blocks` in ‘`struct statfs`’ is a 32-bit value, this function may not work correctly on files systems larger than 4 TiB. The fix is to use the `AC_SYS_LARGEFILE` macro. This affects MacOS X.

### 11.95 Glibc `<sys/swap.h>`

#### 11.95.1 `swapoff`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.95.2 `swapon`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, AIX 5.1, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.96 Glibc `<sys/sysctl.h>`

#### 11.96.1 `sysctl`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 5.3, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.97 Glibc `<sys/sysinfo.h>`

#### 11.97.1 `get_avphys_pages`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.97.2 `get_nprocs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS.

Gnulib provides the module `nproc` that performs a similar function but is portable to more systems.

#### 11.97.3 `get_nprocs_conf`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 10, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.97.4 `get_phys_pages`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.97.5 `sysinfo`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.98 Glibc `<sys/syslog.h>`

#### 11.98.1 `vsyslog`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, MSVC 9, BeOS.

### 11.99 Glibc `<sys/sysmacros.h>`

#### 11.99.1 `gnu_dev_major`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.99.2 `gnu_dev_makedev`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.99.3 `gnu_dev_minor`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.100 Glibc Extensions to `<sys/time.h>`

#### 11.100.1 `adjtime`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.100.2 `futimes`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function cannot set full timestamp resolution. Use `futimens(fd,times)` instead.

#### 11.100.3 `futimesat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.3.6, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
- On some platforms, this function mis-handles trailing slash: Solaris 9.
- This function cannot set full timestamp resolution. Use `file ? utimensat(fd,file,times,0) : futimens(fd,times)`, or the gnulib module fdutimensat, instead.

#### 11.100.4 `lutimes`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function cannot set full timestamp resolution. Use `utimensat(AT_FDCWD,file,times,AT_SYMLINK_NOFOLLOW)`, or the gnulib module utimens, instead.
- The mere act of using `lstat` modifies the access time of symlinks on some platforms, so `lutimes` can only effectively change modification time: Cygwin.

#### 11.100.5 `settimeofday`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

### 11.101 Glibc `<sys/timex.h>`

#### 11.101.1 `adjtimex`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.101.2 `ntp_adjtime`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.101.3 `ntp_gettime`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.101.4 `ntp_gettimex`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.11, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.102 Glibc Extensions to `<sys/uio.h>`

#### 11.102.1 `preadv`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.9, MacOS X 10.5, FreeBSD 5.2.1, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

#### 11.102.2 `process_vm_readv`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.14, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.102.3 `process_vm_writev`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.14, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.102.4 `pwritev`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: glibc 2.9, MacOS X 10.5, FreeBSD 5.2.1, Minix 3.1.8, AIX 5.2, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On platforms where `off_t` is a 32-bit type, this function may not work correctly on files larger than 2 GB. The fix is to use the `AC_SYS_LARGEFILE` macro.

### 11.103 Glibc `<sys/ustat.h>`

#### 11.103.1 `ustat`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.104 Glibc `<sys/vlimit.h>`

#### 11.104.1 `vlimit`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.105 Glibc `<sys/vm86.h>`

#### 11.105.1 `vm86`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.106 Glibc `<sys/vtimes.h>`

#### 11.106.1 `vtimes`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.107 Glibc Extensions to `<sys/wait.h>`

#### 11.107.1 `wait3`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.107.2 `wait4`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, HP-UX 11.11, IRIX 6.5, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.108 Glibc `<sys/xattr.h>`

#### 11.108.1 `fgetxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.2 `flistxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.3 `fremovexattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.4 `fsetxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.5 `getxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.6 `lgetxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.7 `listxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.8 `llistxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.9 `lremovexattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.10 `lsetxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.11 `removexattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.108.12 `setxattr`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.109 Glibc Extensions to `<termios.h>`

#### 11.109.1 `cfmakeraw`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.109.2 `cfsetspeed`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.110 Glibc Extensions to `<time.h>`

#### 11.110.1 `clock_adjtime`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.110.2 `dysize`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.110.3 `getdate_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.110.4 `stime`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Cygwin, mingw, MSVC 9, Interix 3.5.

#### 11.110.5 `strptime_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.110.6 `timegm`

Gnulib module: timegm

Portability problems fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.110.7 `timelocal`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5.

#### 11.110.8 `timespec_get`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.15, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.111 Glibc `<ttyent.h>`

#### 11.111.1 `endttyent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.111.2 `getttyent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.111.3 `getttynam`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.111.4 `setttyent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.112 Glibc Extensions to `<unistd.h>`

#### 11.112.1 `acct`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.2 `brk`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, Cygwin, mingw, MSVC 9.

#### 11.112.3 `chroot`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, mingw, MSVC 9, BeOS.

#### 11.112.4 `daemon`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9, BeOS.

#### 11.112.5 `dup3`

Gnulib module: dup3

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.112.6 `endusershell`

Gnulib module: getusershell

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is missing a declaration on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

#### 11.112.7 `euidaccess`

Gnulib module: euidaccess

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

Other problems of this function:

- There is an inherent race between calling this function and performing some action based on the results; you should think twice before trusting this function, especially in a set-uid or set-gid program.
- This function does not have an option for not following symbolic links (like `stat` versus `lstat`). If you need this option, use the Gnulib module `faccessat` with the `AT_EACCESS` flag.

#### 11.112.8 `execvpe`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: glibc 2.10, MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, Interix 3.5, BeOS.

#### 11.112.9 `get_current_dir_name`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.10 `getdomainname`

Gnulib module: getdomainname

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is declared in `netdb.h`, not in `unistd.h`, on some platforms: AIX 7.1.
- This function is declared in `netdb.h` and in `sys/socket.h`, not in `unistd.h`, on some platforms: OSF/1 5.1.
- The second argument is of type `int`, not `size_t`, on some platforms: MacOS X 10.5, FreeBSD 6.4, AIX 7.1, IRIX 6.5.

Portability problems not fixed by Gnulib:

#### 11.112.11 `getdtablesize`

Gnulib module: getdtablesize

Portability problems fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

#### 11.112.12 `getpagesize`

Gnulib module: getpagesize

Portability problems fixed by Gnulib:

- This function is missing on some platforms: MSVC 9, BeOS.
- This function is broken on some platforms: mingw.

Portability problems not fixed by Gnulib:

#### 11.112.13 `getpass`

Gnulib module: getpass or getpass-gnu

Portability problems fixed by either Gnulib module `getpass` or `getpass-gnu`:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

Portability problems fixed by Gnulib module `getpass-gnu`:

- The returned password is truncated to PASS_MAX characters on some platforms: MacOS X 10.5 (128), FreeBSD 6.2 (128), NetBSD 3.0 (128), OpenBSD 4.0 (128), AIX 5.1 (32), HP-UX 11 (8), IRIX 6.5 (32), OSF/1 5.1 (80), Solaris 11 2010-11 (8, even less than PASS_MAX), Cygwin (128). The gnulib implementation returns the password untruncated.

Portability problems not fixed by Gnulib:

#### 11.112.14 `getresgid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.15 `getresuid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, HP-UX 11.00, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.16 `getusershell`

Gnulib module: getusershell

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is missing a declaration on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

#### 11.112.17 `group_member`

Gnulib module: group-member

Portability problems fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

Portability problems not fixed by Gnulib:

#### 11.112.18 `pipe2`

Gnulib module: pipe2

Portability problems fixed by Gnulib:

- This function is missing on many non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 1.7.1, mingw, MSVC 9, Interix 3.5, BeOS. But the replacement function is not atomic; this matters in multi-threaded programs that spawn child processes.

Portability problems not fixed by Gnulib:

- This function crashes rather than failing with `EMFILE` if no resources are left on some platforms: Cygwin 1.7.9.

Note: This function portably supports the `O_NONBLOCK` flag only if the gnulib module `nonblocking` is also used.

#### 11.112.19 `profil`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.20 `revoke`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.21 `sbrk`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: AIX 5.1, mingw, MSVC 9.

#### 11.112.22 `setlogin`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.23 `setdomainname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.24 `sethostid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.25 `sethostname`

Gnulib module: sethostname

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS. Note that the Gnulib replacement may fail with ENOSYS on some platforms.
- This function is not declared on some platforms: AIX 7.1, OSF/1 5.1, Solaris 10.

Portability problems not fixed by Gnulib:

- On Solaris 11 2010-11, the first argument is `char *` instead of `const char *` and the second parameter is `int` instead of `size_t`.

#### 11.112.26 `setresgid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.27 `setresuid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, NetBSD 5.0, Minix 3.1.8, AIX 5.1, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.28 `setusershell`

Gnulib module: getusershell

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 4.3.2, IRIX 6.5, mingw, MSVC 9, Interix 3.5, BeOS.
- This function is missing a declaration on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

#### 11.112.29 `syncfs`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: glibc 2.13, MacOS X 10.5, FreeBSD 6.4, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.112.30 `syscall`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, Cygwin, mingw, MSVC 9, BeOS.

#### 11.112.31 `ttyslot`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9, BeOS.

#### 11.112.32 `vhangup`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, OSF/1 5.1, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.113 Glibc `<utmp.h>`

#### 11.113.1 `endutent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.2 `getutent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.3 `getutent_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.4 `getutid`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.5 `getutid_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.6 `getutline`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.7 `getutline_r`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.8 `pututline`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.9 `setutent`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.10 `updwtmp`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 4.3.2, HP-UX 11, OSF/1 5.1, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.11 `utmpname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.113.12 `login`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many non-glibc platforms: FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 7.1, HP-UX 11.31, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9, BeOS.

#### 11.113.13 `login_tty`

Gnulib module: login_tty

Portability problems fixed by Gnulib:

- This function is missing on some platforms: Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11.
- This function requires linking with `-lutil` on some platforms: glibc 2.3.6, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8. It is available without link options on other platforms: MacOS X 10.5, OSF/1 5.1, Cygwin, Interix 3.5.

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: mingw, MSVC 9.
- This function is declared in `<utmp.h>` on glibc, Cygwin, in `<util.h>` on MacOS X 10.5, NetBSD 5.0, OpenBSD 3.8, in `<libutil.h>` on FreeBSD 6.0, Haiku, and not declared at all on OSF/1 5.1, Interix 3.5. Also note that `<sys/types.h>` is a prerequisite of `<utmp.h>` on FreeBSD 8.0, OpenBSD 4.6 and of `<libutil.h>` on FreeBSD 8.0.

### 11.114 Glibc Extensions to `<utmpx.h>`

#### 11.114.1 `getutmp`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.114.2 `getutmpx`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.114.3 `updwtmpx`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.

#### 11.114.4 `utmpxname`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.4, FreeBSD 6.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, OSF/1 5.1, mingw, MSVC 9, Interix 3.5, BeOS.

### 11.115 Glibc Extensions to `<wchar.h>`

#### 11.115.1 `fgetwc_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.2 `fgetws_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.3 `fputwc_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.4 `fputws_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.5 `getwc_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.6 `getwchar_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.7 `putwc_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on some platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.8 `putwchar_unlocked`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.9 `wcschrnul`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.10 `wcsftime_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.11 `wcstod_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.12 `wcstof_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.13 `wcstol_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.14 `wcstold_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.15 `wcstoll_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.16 `wcstoq`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.17 `wcstoul_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.18 `wcstoull_l`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on many platforms: MacOS X 10.3, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.19 `wcstouq`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

#### 11.115.20 `wmempcpy`

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

- This function is missing on all non-glibc platforms: MacOS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, Minix 3.1.8, AIX 5.1, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
- On AIX and Windows platforms, `wchar_t` is a 16-bit type and therefore cannot accommodate all Unicode characters.

## 12 Particular Modules

### 12.1 alloca

The alloca module provides for a function `alloca` which allocates memory on the stack, where the system allows it. A memory block allocated with `alloca` exists only until the function that calls `alloca` returns or exits abruptly.

There are a few systems where this is not possible: HP-UX systems, and some other platforms when the C++ compiler is used. On these platforms the alloca module provides a `malloc` based emulation. This emulation will not free a memory block immediately when the calling function returns, but rather will wait until the next `alloca` call from a function with the same or a shorter stack length. Thus, in some cases, a few memory blocks will be kept although they are not needed any more.

The user can `#include <alloca.h>` and use `alloca` on all platforms. Note that the `#include <alloca.h>` must be the first one after the autoconf-generated `config.h`, for AIX 3 compatibility. Thanks to IBM for this nice restriction!

Note that GCC 3.1 and 3.2 can inline functions that call `alloca`. When this happens, the memory blocks allocated with `alloca` will not be freed until the end of the calling function. If this calling function runs a loop calling the function that uses `alloca`, the program easily gets a stack overflow and crashes. To protect against this compiler behaviour, you can mark the function that uses `alloca` with the following attribute:

    #ifdef __GNUC__
    __attribute__ ((__noinline__))
    #endif

An alternative to this module is the ‘`alloca-opt`’ module.

### 12.2 alloca-opt

The alloca-opt module provides for a function `alloca` which allocates memory on the stack, where the system allows it. A memory block allocated with `alloca` exists only until the function that calls `alloca` returns or exits abruptly.

There are a few systems where this is not possible: HP-UX systems, and some other platforms when the C++ compiler is used. On these platforms the alloca-opt module provides no replacement, just a preprocessor macro HAVE_ALLOCA.

The user can `#include <alloca.h>` on all platforms, and use `alloca` on those platforms where the preprocessor macro HAVE_ALLOCA evaluates to true. If HAVE_ALLOCA is false, the code should use a heap-based memory allocation based on `malloc` or - in C++ - `new`. Note that the `#include <alloca.h>` must be the first one after the autoconf-generated `config.h`, for AIX 3 compatibility. Thanks to IBM for this nice restriction!

Note that GCC 3.1 and 3.2 can inline functions that call `alloca`. When this happens, the memory blocks allocated with `alloca` will not be freed until the end of the calling function. If this calling function runs a loop calling the function that uses `alloca`, the program easily gets a stack overflow and crashes. To protect against this compiler behaviour, you can mark the function that uses `alloca` with the following attribute:

    #ifdef __GNUC__
    __attribute__ ((__noinline__))
    #endif

### 12.3 Safe Allocation Macros

The standard C library malloc/realloc/calloc/free APIs are prone to a number of common coding errors. The `safe-alloc` module provides macros that make it easier to avoid many of them. It still uses the standard C allocation functions behind the scenes.

Some of the memory allocation mistakes that are commonly made are

- passing the incorrect number of bytes to `malloc`, especially when allocating an array,
- fail to check the return value of `malloc` and `realloc` for errors,
- forget to fully initialize memory just allocated with `malloc`,
- duplicate calls to `free` by forgetting to set the pointer variable to `NULL`,
- leaking memory in calls to `realloc` when that call fails.

The `safe-alloc` module addresses these problems in the following way:

- It defines macros that wrap around the standard C allocation functions. That makes it possible to use the compiler’s knowledge of the size of objects for allocation; it also allows setting pointers passed in as arguments when appropriate.
- It uses return values only for a success/failure error condition flag, and annotates them with GCC’s `__warn_unused_result__` attribute.
- It uses `calloc` instead of `malloc`.

Macro: int ALLOC (ptr)

  Allocate `sizeof(*ptr)` bytes of memory and store the address of allocated memory in `ptr`. Fill the newly allocated memory with zeros.

  Returns -1 on failure, 0 on success.

Macro: int ALLOC_N (ptr, count)

  Allocate an array of `count` elements, each `sizeof(*ptr)` bytes long, and store the address of allocated memory in `ptr`. Fill the newly allocated memory with zeros.

  Returns -1 on failure, 0 on success.

Macro: int ALLOC_N_UNINITIALIZED (ptr, count)

  Allocate an array of `count` elements, each `sizeof(*ptr)` bytes long, and store the address of allocated memory in `ptr`. The allocated memory is not initialized.

  Returns -1 on failure, 0 on success.

Macro: int REALLOC_N (ptr, count)

  Reallocate the memory pointed to by `ptr` to be big enough to hold at least `count` elements, each `sizeof(*ptr)` bytes long, and store the address of allocated memory in `ptr`. If reallocation fails, the `ptr` variable is not modified.

  Returns -1 on failure, 0 on success.

Macro: void FREE (ptr)

  Free the memory stored in `ptr` and set `ptr` to `NULL`.

### 12.4 Compile-time Assertions

The ‘`verify`’ module supports compile-time tests, as opposed to the standard `assert` macro which supports only runtime tests. Since the tests occur at compile-time, they are more reliable, and they require no runtime overhead.

This module provides a header file `verify.h` that defines two macros: `verify (V)` and `verify_expr (V, EXPR)`. Both accept an integer constant expression argument V and verify that it is nonzero. If not, a compile-time error results.

`verify (V);` is a declaration; it can occur outside of functions. In contrast, `verify_expr (V, EXPR)` is an expression that returns the value of EXPR; it can be used in macros that expand to expressions. If EXPR is an integer constant expression, then `verify_expr (V, EXPR)` is also an integer constant expression. Although EXPR and `verify_expr (V, EXPR)` are guaranteed to have the same side effects and value and type (after integer promotion), they need not have the same type if EXPR’s type is an integer that is narrower than `int` or `unsigned int`.

V should be an integer constant expression in the sense of the C standard. Its leaf operands should be integer, enumeration, or character constants; or `sizeof` expressions that return constants; or floating constants that are the immediate operands of casts. Outside a `sizeof` subexpression, V should not contain any assignments, function calls, comma operators, casts to non-integer types, or subexpressions whose values are outside the representable ranges for their types. If V is not an integer constant expression, then a compiler might reject a usage like ‘`verify (V);`’ even when V is nonzero.

Although the standard `assert` macro is a runtime test, C11 specifies a builtin `_Static_assert (V, STRING-LITERAL)`, its `assert.h` header has a similar macro named `static_assert`, and C++11 has a similar `static_assert` builtin. These builtins and macros differ from `verify` in two major ways. First, they can also be used within a `struct` or `union` specifier, in place of an ordinary member declaration. Second, they require the programmer to specify a compile-time diagnostic as a string literal.

Here are some example uses of `verify` and `verify_expr`.

    #include <verify.h>

    #include <limits.h>
    #include <time.h>

    /* Verify that time_t is an integer type.  */
    verify ((time_t) 1.5 == 1);

    /* Verify that time_t is no smaller than int.  */
    verify (sizeof (int) <= sizeof (time_t));

    /* Verify that time_t is signed.  */
    verify ((time_t) -1 < 0);

    /* Verify that time_t uses two's complement representation.  */
    verify (~ (time_t) -1 == 0);

    /* Return the maximum value of the integer type T,
       verifying that T is an unsigned integer type.
       The cast to (T) is outside the call to verify_expr
       so that the result is of type T
       even when T is narrower than unsigned int.  */
    #define MAX_UNSIGNED_VAL(t) \
       ((T) verify_expr (0 < (T) -1, -1))

### 12.5 Integer Properties

The `intprops` module consists of an include file `<intprops.h>` that defines several macros useful for testing properties of integer types.

Integer overflow is a common source of problems in programs written in C and other languages. In some cases, such as signed integer arithmetic in C programs, the resulting behavior is undefined, and practical platforms do not always behave as if integers wrap around reliably. In other cases, such as unsigned integer arithmetic in C, the resulting behavior is well-defined, but programs may still misbehave badly after overflow occurs.

Many techniques have been proposed to attack these problems. These include precondition testing, GCC’s `-ftrapv` option, GCC’s no-undefined-overflow branch, the As-if Infinitely Ranged (AIR) model implemented in Clang, saturation semantics where overflow reliably yields an extreme value, the RICH static transformer to an overflow-checking variant, and special testing methods. For more information about these techniques, see: Dannenberg R, Dormann W, Keaton D et al., As-if Infinitely Ranged integer model – 2nd ed., Software Engineering Institute Technical Note CMU/SEI-2010-TN-008, April 2010.

Gnulib supports the precondition testing technique, as this is easy to support portably. There are two families of precondition tests: the first, for integer ranges, has a simple and straightforward implementation, while the second, for integer types, is easier to use.

#### 12.5.1 Integer Type Determination

`TYPE_IS_INTEGER (t)` expands to a constant expression that is 1 if the arithmetic type t is an integer type. `_Bool` counts as an integer type.

`TYPE_SIGNED (t)` expands to a constant expression that is 1 if the arithmetic type t is a signed integer type or a floating type. If t is an integer type, `TYPE_SIGNED (t)` expands to an integer constant expression.

Example usage:

    #include <intprops.h>
    #include <time.h>
    enum
    {
      time_t_is_signed_integer =
        TYPE_IS_INTEGER (time_t) && TYPE_SIGNED (time_t)
    };

#### 12.5.2 Integer Bounds

`INT_BUFSIZE_BOUND (t)` expands to an integer constant expression that is a bound on the size of the string representing an integer type or expression t in decimal notation, including the terminating null character and any leading `-` character. For example, if `INT_STRLEN_BOUND (int)` is 12, any value of type `int` can be represented in 12 bytes or less, including the terminating null. The bound is not necessarily tight.

Example usage:

    #include <intprops.h>
    #include <stdio.h>
    int
    int_strlen (int i)
    {
      char buf[INT_BUFSIZE_BOUND (int)];
      return sprintf (buf, "%d", i);
    }

`INT_STRLEN_BOUND (t)` expands to an integer constant expression that is a bound on the length of the string representing an integer type or expression t in decimal notation, including any leading `-` character. This is one less than `INT_BUFSIZE_BOUND (t)`.

`TYPE_MINIMUM (t)` and `TYPE_MAXIMUM (t)` expand to integer constant expressions equal to the minimum and maximum values of the integer type t. These expressions are of the type t (or more precisely, the type t after integer promotions).

Example usage:

    #include <stdint.h>
    #include <sys/types.h>
    #include <intprops.h>
    int
    in_off_t_range (intmax_t a)
    {
      return TYPE_MINIMUM (off_t) <= a && a <= TYPE_MAXIMUM (off_t);
    }

#### 12.5.3 Integer Range Overflow

These macros yield 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow. They do not rely on undefined or implementation-defined behavior. They expand to integer constant expressions if their arguments are. Their implementations are simple and straightforward, but they are typically harder to use than the integer type overflow macros. See Integer Type Overflow.

Although the implementation of these macros is similar to that suggested in Seacord R, The CERT C Secure Coding Standard (2009, revised 2011), in its two sections “INT30-C. Ensure that unsigned integer operations do not wrap” and “INT32-C. Ensure that operations on signed integers do not result in overflow”, Gnulib’s implementation was derived independently of CERT’s suggestions.

Example usage:

    #include <intprops.h>
    void
    print_product (long int a, long int b)
    {
      if (INT_MULTIPLY_RANGE_OVERFLOW (a, b, LONG_MIN, LONG_MAX))
        printf ("multiply would overflow");
      else
        printf ("product is %ld", a * b);
    }

These macros have the following restrictions:

- Their arguments must be integer expressions.
- They may evaluate their arguments zero or multiple times, so the arguments should not have side effects.
- The arithmetic arguments (including the min and max arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value min and maximum max. Unsigned values should use a zero min of the proper type, for example, `(unsigned int) 0`.

These macros are tuned for constant min and max. For commutative operations such as `a + b`, they are also tuned for constant b.

`INT_ADD_RANGE_OVERFLOW (a, b, min, max)`

  Yield 1 if `a + b` would overflow in [min,max] integer arithmetic. See above for restrictions.

`INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)`

  Yield 1 if `a - b` would overflow in [min,max] integer arithmetic. See above for restrictions.

`INT_NEGATE_RANGE_OVERFLOW (a, min, max)`

  Yield 1 if `-a` would overflow in [min,max] integer arithmetic. See above for restrictions.

`INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)`

  Yield 1 if `a * b` would overflow in [min,max] integer arithmetic. See above for restrictions.

`INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)`

  Yield 1 if `a / b` would overflow in [min,max] integer arithmetic. See above for restrictions. Division overflow can happen on two’s complement hosts when dividing the most negative integer by -1. This macro does not check for division by zero.

`INT_REMAINDER_RANGE_OVERFLOW (a, b, min, max)`

  Yield 1 if `a % b` would overflow in [min,max] integer arithmetic. See above for restrictions. Remainder overflow can happen on two’s complement hosts when dividing the most negative integer by -1; although the mathematical result is always 0, in practice some implementations trap, so this counts as an overflow. This macro does not check for division by zero.

`INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, min, max)`

  Yield 1 if `a << b` would overflow in [min,max] integer arithmetic. See above for restrictions. Here, min and max are for a only, and b need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0≤b<w where w is a’s word width, and that when a is negative then `a << b` has undefined behavior and `a >> b` has implementation-defined behavior, but this macro does not check these other restrictions.

#### 12.5.4 Integer Type Overflow

These macros yield 1 if the corresponding C operators might not yield numerically correct answers due to arithmetic overflow of an integer type. They work correctly on all known practical hosts, and do not rely on undefined behavior due to signed arithmetic overflow. They expand to integer constant expressions if their arguments are. They are easier to use than the integer range overflow macros (see Integer Range Overflow).

Example usage:

    #include <intprops.h>
    void
    print_product (long int a, long int b)
    {
      if (INT_MULTIPLY_OVERFLOW (a, b))
        printf ("multiply would overflow");
      else
        printf ("product is %ld", a * b);
    }

These macros have the following restrictions:

- Their arguments must be integer expressions.
- They may evaluate their arguments zero or multiple times, so the arguments should not have side effects.

These macros are tuned for their last argument being a constant.

`INT_ADD_OVERFLOW (a, b)`

  Yield 1 if `a + b` would overflow. See above for restrictions.

`INT_SUBTRACT_OVERFLOW (a, b)`

  Yield 1 if `a - b` would overflow. See above for restrictions.

`INT_NEGATE_OVERFLOW (a)`

  Yields 1 if `-a` would overflow. See above for restrictions.

`INT_MULTIPLY_OVERFLOW (a, b)`

  Yield 1 if `a * b` would overflow. See above for restrictions.

`INT_DIVIDE_OVERFLOW (a, b)`

  Yields 1 if `a / b` would overflow. See above for restrictions. Division overflow can happen on two’s complement hosts when dividing the most negative integer by -1. This macro does not check for division by zero.

`INT_REMAINDER_OVERFLOW (a, b)`

  Yield 1 if `a % b` would overflow. See above for restrictions. Remainder overflow can happen on two’s complement hosts when dividing the most negative integer by -1; although the mathematical result is always 0, in practice some implementations trap, so this counts as an overflow. This macro does not check for division by zero.

`INT_LEFT_SHIFT_OVERFLOW (a, b)`

  Yield 1 if `a << b` would overflow. See above for restrictions. The C standard says that behavior is undefined for shifts unless 0≤b<w where w is a’s word width, and that when a is negative then `a << b` has undefined behavior and `a >> b` has implementation-defined behavior, but this macro does not check these other restrictions.

### 12.6 Character and String Functions in C Locale

The functions in this section are similar to the generic string functions from the standard C library, except that

- They behave as if the locale was set to the "C" locale, even when the locale is different, and/or
- They are specially optimized for the case where all characters are plain ASCII characters.

#### 12.6.1 c-ctype

The `c-ctype` module contains functions operating on single-byte characters, like the functions in `<ctype.h>`, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The functions are:

    extern bool c_isascii (int c);

    extern bool c_isalnum (int c);
    extern bool c_isalpha (int c);
    extern bool c_isblank (int c);
    extern bool c_iscntrl (int c);
    extern bool c_isdigit (int c);
    extern bool c_islower (int c);
    extern bool c_isgraph (int c);
    extern bool c_isprint (int c);
    extern bool c_ispunct (int c);
    extern bool c_isspace (int c);
    extern bool c_isupper (int c);
    extern bool c_isxdigit (int c);

    extern int c_tolower (int c);
    extern int c_toupper (int c);

These functions assign properties only to ASCII characters.

The c argument can be a `char` or `unsigned char` value, whereas the corresponding functions in `<ctype.h>` take an argument that is actually an `unsigned char` value.

The `c_is*` functions return ‘`bool`’, where the corresponding functions in `<ctype.h>` return ‘`int`’ for historical reasons.

Note: The `<ctype.h>` functions support only unibyte locales.

#### 12.6.2 c-strcase

The `c-strcase` module contains case-insensitive string comparison functions operating on single-byte character strings, like the functions in `<strings.h>`, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The functions are:

    extern int c_strcasecmp (const char *s1, const char *s2);
    extern int c_strncasecmp (const char *s1, const char *s2, size_t n);

For case conversion here, only ASCII characters are considered to be upper case or lower case.

Note: The functions `strcasecmp`, `strncasecmp` from `<strings.h>` support only unibyte locales; for multibyte locales, you need the functions `mbscasecmp`, `mbsncasecmp`, `mbspcasecmp`.

#### 12.6.3 c-strcaseeq

The `c-strcaseeq` module contains an optimized case-insensitive string comparison function operating on single-byte character strings, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The functions is actually implemented as a macro:

    extern int STRCASEEQ (const char *s1, const char *s2,
                          int s20, int s21, int s22, int s23, int s24, int s25,
                          int s26, int s27, int s28);

s2 should be a short literal ASCII string, and s20, s21, ... the individual characters of s2.

For case conversion here, only ASCII characters are considered to be upper case or lower case.

#### 12.6.4 c-strcasestr

The `c-strcasestr` module contains a case-insensitive string search function operating on single-byte character strings, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The function is:

    extern char *c_strcasestr (const char *haystack, const char *needle);

For case conversion here, only ASCII characters are considered to be upper case or lower case.

Note: The function `strcasestr` from `<string.h>` supports only unibyte locales; for multibyte locales, you need the function `mbscasestr`.

#### 12.6.5 c-strstr

The `c-strstr` module contains a substring search function operating on single-byte character strings, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The function is:

    extern char *c_strstr (const char *haystack, const char *needle);

Note: The function `strstr` from `<string.h>` supports only unibyte locales; for multibyte locales, you need the function `mbsstr`.

#### 12.6.6 c-strtod

The `c-strtod` module contains a string to number (‘`double`’) conversion function operating on single-byte character strings, that operates as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The function is:

    extern double c_strtod (const char *string, char **endp);

In particular, only a period ‘`.`’ is accepted as decimal point, even when the current locale’s notion of decimal point is a comma ‘`,`’, and no characters outside the basic character set are accepted.

On platforms without `strtod_l`, this function is not safe for use in multi-threaded applications since it calls `setlocale`.

#### 12.6.7 c-strtold

The `c-strtold` module contains a string to number (‘`long double`’) conversion function operating on single-byte character strings, that operates as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The function is:

    extern long double c_strtold (const char *string, char **endp);

In particular, only a period ‘`.`’ is accepted as decimal point, even when the current locale’s notion of decimal point is a comma ‘`,`’.

### 12.7 Quoting

Gnulib provides ‘`quote`’ and ‘`quotearg`’ modules to help with quoting text, such as file names, in messages to the user. Here’s an example of using ‘`quote`’:

    #include <quote.h>
     ...
      error (0, errno, _("cannot change owner of %s"), quote (fname));

This differs from

      error (0, errno, _("cannot change owner of '%s'"), fname);

in that `quote` escapes unusual characters in `fname`, e.g., ‘`'`’ and control characters like ‘`\n`’.

However, a caveat: `quote` reuses the storage that it returns. Hence if you need more than one thing quoted at the same time, you need to use `quote_n`.

Also, the quote module is not suited for multithreaded applications. In that case, you have to use `quotearg_alloc`, defined in the ‘`quotearg`’ module, which is decidedly less convenient.

### 12.8 error and progname

The `error` function uses the `program_name` variable, but does not depend on the `progname` module. Why? Because `error` is released under the LGPL, whereas `progname` is GPL. RMS does not want additional baggage accompanying the `error` module, so an LGPL user must provide their own replacement `program_name`, and a GPL user should manually specify using the `progname` module.

Additionally, using the `progname` module is not something that can be done implicitly. It requires that every `main` function be modified to set `program_name` as one of its first actions.

### 12.9 gcd: greatest common divisor

The `gcd` function returns the greatest common divisor of two numbers `a > 0` and `b > 0`. It is the caller’s responsibility to ensure that the arguments are non-zero.

If you need a gcd function for an integer type larger than ‘`unsigned long`’, you can include the `gcd.c` implementation file with parametrization. The parameters are:

- WORD_T Define this to the unsigned integer type that you need this function for.
- GCD Define this to the name of the function to be created.

The created function has the prototype

    WORD_T GCD (WORD_T a, WORD_T b);

If you need the least common multiple of two numbers, it can be computed like this: `lcm(a,b) = (a / gcd(a,b)) * b` or `lcm(a,b) = a * (b / gcd(a,b))`. Avoid the formula `lcm(a,b) = (a * b) / gcd(a,b)` because - although mathematically correct - it can yield a wrong result, due to integer overflow.

In some applications it is useful to have a function taking the gcd of two signed numbers. In this case, the gcd function result is usually normalized to be non-negative (so that two gcd results can be compared in magnitude or compared against 1, etc.). Note that in this case the prototype of the function has to be

    unsigned long gcd (long a, long b);

and not

    long gcd (long a, long b);

because `gcd(LONG_MIN,LONG_MIN) = -LONG_MIN = LONG_MAX + 1` does not fit into a signed ‘`long`’.

### 12.10 Searching for Libraries

The following macros check for the presence or location of certain C, C++, or Fortran library archive files.

#### Simple Library Tests

The macros `AC_CHECK_LIB`, `AC_SEARCH_LIBS` from GNU Autoconf check for the presence of certain C, C++, or Fortran library archive files. The libraries are looked up in the default linker path – a system dependent list of directories, that usually contains the `/usr/lib` directory – and those directories given by `-L` options in the `LDFLAGS` variable.

#### Locating Libraries

The following macros, defined in the Gnulib module `havelib`, search for the location of certain C, C++, or Fortran library archive files and make the found location available to the compilation process and to further Autoconf tests.

Macro: `AC_LIB_LINKFLAGS(name, [dependencies])`

  Searches for `lib<name>` and the libraries corresponding to explicit and implicit dependencies. Sets and AC_SUBSTs the `LIB<NAME>` and `LTLIB<NAME>` variables (with `<NAME>` in upper case) and augments the `CPPFLAGS` variable by `-I` options.

  This macro should be used when `lib<name>` is expected to be found.

Macro: `AC_LIB_HAVE_LINKFLAGS(name, [dependencies], [includes], [testcode], [missing-message])`

  Searches for `lib<name>` and the libraries corresponding to explicit and implicit dependencies, together with the specified include files and the ability to compile and link the specified testcode. The missing-message defaults to `no` and may contain additional hints for the user. If found, it sets and AC_SUBSTs `HAVE_LIB<NAME>=yes` and the `LIB<NAME>` and `LTLIB<NAME>` variables (with `<NAME>` in upper case) and augments the `CPPFLAGS` variable by `-I` options, and #defines `HAVE_LIB<NAME>` to 1. Otherwise, it sets and AC_SUBSTs `HAVE_LIB<NAME>=no` and `LIB<NAME>` and `LTLIB<NAME>` to empty.

These macros assume that when a library is installed in `some_directory/lib`, its include files are installed in `some_directory/include`.

The complexities that `AC_LIB_LINKFLAGS` and `AC_LIB_HAVE_LINKFLAGS` deal with are the following:

- The library is not necessarily already in the search path (`CPPFLAGS` for the include file search path, `LDFLAGS` for the library search path). The macro provides a ‘`--with-lib<name>`’ option. The user of the ‘`configure`’ script can use this option to indicate the location of the library and its include files. If not provided, the `--prefix` directory is searched as well.
- The library is not necessarily already in the run time library search path. To avoid the need for setting an environment variable like `LD_LIBRARY_PATH`, the macro adds the appropriate run time search path options to the `LIB<NAME>` variable. This works on most systems. It can also be inhibited: The user of ‘`configure`’ can use the `--disable-rpath` option to force an installation that doesn’t contain hardcoded library search paths but instead may require the use of an environment variable like `LD_LIBRARY_PATH`.

The macros also set a variable `LTLIB<NAME>`, that should be used when linking with libtool. Both `LTLIB<NAME>` and `LIB<NAME>` contain essentially the same option, but where `LIB<NAME>` contains platform dependent flags like ‘`-Wl,-rpath`’, `LTLIB<NAME>` contains platform independent flags like ‘`-R`’.

#### Example of using `AC_LIB_LINKFLAGS`

Suppose you want to use `libz`, the compression library.

1. In configure.ac you add the line

         AC_CONFIG_AUX_DIR([build-aux])
         AC_LIB_LINKFLAGS([z])

   Note that since the `AC_LIB_LINKFLAGS` invocation modifies the CPPFLAGS, it should precede all tests that check for header files, declarations, structures or types.

2. To the package’s `build-aux` directory you add the file `config.rpath`, also part of the Gnulib `havelib` module. (`gnulib-tool` will usually do this for you automatically.)
3. In `Makefile.in` you add `@LIBZ@` to the link command line of your program. Or, if you are using Automake, you add `$(LIBZ)` to the `LDADD` variable that corresponds to your program.

#### Dependencies

The dependencies list is a space separated list of library names that `libname` is known to depend upon. Example: If `libfooy` depends on `libfoox`, and `libfooz` depends on `libfoox` and `libfooy`, you can write:

    AC_LIB_LINKFLAGS([foox])
    AC_LIB_LINKFLAGS([fooy], [foox])
    AC_LIB_LINKFLAGS([fooz], [foox fooy])

Explicit dependencies are necessary if you cannot assume that a `.la` file, created by libtool, is installed. If you can assume that `libfooy.la` is installed by libtool (and has not been omitted by the package distributor!), you can omit the explicit dependency and just write

    AC_LIB_LINKFLAGS([fooy])

This way, you don’t need to know in advance which libraries the needed library depends upon.

#### Static vs. shared

The macros find the libraries regardless whether they are installed as shared or static libraries.

#### `CPPFLAGS` vs. `LDFLAGS`

The macros determine the directories that should be added to the compiler preprocessor’s search path and to the linker’s search path. For the compiler preprocessor, `-I` options with the necessary directories are added to the `CPPFLAGS` variable, for use by the whole package. For the linker, appropriate options are added to the `LIB<NAME>` and `LTLIB<NAME>` variables, for use during linking by those programs and libraries that need the dependency on `lib<name>`. You need to use the value of `LIB<NAME>` or `LTLIB<NAME>` in the Makefiles. `LTLIB<NAME>` is for use with libtool, whereas `LIB<NAME>` is for when libtool is not involved in linking.

The macros do not check whether the include files and the library found match. If you want to verify this at configure time, one technique is to have a version number in the include files and a version number in the library, like this:

      #define LIBNAME_VERSION 10203
      extern int libname_version; /* initialized to LIBNAME_VERSION */

and use a test like

      AC_TRY_RUN([int main () { return libname_version != LIBNAME_VERSION; }])

#### Bi-arch systems

A bi-arch system is one where

- the processor has a 32-bit execution mode and a 64-bit execution mode (for example, x86_64, ia64, sparc64, powerpc64), and
- 32-bit mode libraries and executables and 64-bit mode libraries are both installed, and
- 32-bit mode libraries and object files cannot be mixed with 64-bit mode ones.

On several types of such systems, for historical reasons, the 32-bit libraries are installed in `prefix/lib`, whereas the 64-bit libraries are installed in

- `prefix/lib64` on many glibc systems,
- `prefix/lib/64` on Solaris systems.

On such systems, in 64-bit mode, `configure` will search for the libraries in `prefix/lib64` or `prefix/lib/64`, respectively, not in `prefix/lib`. A user can adhere to these system-wide conventions by using the ‘`--libdir`’ option when installing packages. When a user has already installed packages in 64-bit mode using the GNU default ‘`--libdir=prefix/lib`’, he can make this directory adhere to the system-wide convention by placing a symbolic link:

On glibc systems:

  `ln -s lib prefix/lib64`

On Solaris systems:

  `ln -s . prefix/lib/64`

### 12.11 Controlling the Exported Symbols of Shared Libraries

The `lib-symbol-visibility` module allows precise control of the symbols exported by a shared library. This is useful because

- It prevents abuse of undocumented APIs of your library. Symbols that are not exported from the library cannot be used. This eliminates the problem that when the maintainer of the library changes internals of the library, maintainers of other projects cry “breakage”. Instead, these maintainers are forced to negotiate the desired API from the maintainer of the library.
- It reduces the risk of symbol collision between your library and other libraries. For example, the symbol ‘`readline`’ is defined in several libraries, most of which don’t have the same semantics and the same calling convention as the GNU readline library.
- It reduces the startup time of programs linked to the library. This is because the dynamic loader has less symbols to process.
- It allows the compiler to generate better code. Within a shared library, a call to a function that is a global symbol costs a “call” instruction to a code location in the so-called PLT (procedure linkage table) which contains a “jump” instruction to the actual function’s code. (This is needed so that the function can be overridden, for example by a function with the same name in the executable or in a shared library interposed with `LD_PRELOAD`.) Whereas a call to a function for which the compiler can assume that it is in the same shared library is just a direct “call” instructions. Similarly for variables: A reference to a global variable fetches a pointer in the so-called GOT (global offset table); this is a pointer to the variable’s memory. So the code to access it is two memory load instructions. Whereas for a variable which is known to reside in the same shared library, it is just a direct memory access: one memory load instruction.

There are traditionally three ways to specify the exported symbols of a shared library.

- The programmer specifies the list of symbols to be exported when the shared library is created. Usually a command-line option is passed to the linker, with the name of a file containing the symbols.

  The upside of this approach is flexibility: it allows the same code to be used in different libraries with different export lists. The downsides are: 1. it’s a lot of maintenance overhead when the symbol list is platform dependent, 2. it doesn’t work well with C++, due to name mangling.

- The programmer specifies a “hidden” attribute for every variable and function that shall not be exported.

  The drawbacks of this approach are: Symbols are still exported from the library by default. It’s a lot of maintenance work to mark every non- exported variable and function. But usually the exported API is quite small, compared to the internal API of the library. And it’s the wrong paradigm: It doesn’t force thinking when introducing new exported API.

- The programmer specifies a “hidden” attribute for all files that make up the shared library, and an “exported” attribute for those symbols in these files that shall be exported.

  This is perfect: It burdens the maintainer only for exported API, not for library-internal API. And it keeps the annotations in the source code.

GNU libtool’s `-export-symbols` option implements the first approach.

This gnulib module implements the third approach. For this it relies on GNU GCC 4.0 or newer, namely on its ‘`-fvisibility=hidden`’ command-line option and the “visibility” attribute. (The “visibility” attribute was already supported in GCC 3.4, but without the command line option, introduced in GCC 4.0, the third approach could not be used.)

More explanations on this subject can be found in http://gcc.gnu.org/wiki/Visibility - which contains more details on the GCC features and additional advice for C++ libraries - and in Ulrich Drepper’s paper http://people.redhat.com/drepper/dsohowto.pdf - which also explains other tricks for reducing the startup time impact of shared libraries.

The gnulib autoconf macro `gl_VISIBILITY` tests for GCC 4.0 or newer. It defines a Makefile variable `@CFLAG_VISIBILITY@` containing ‘`-fvisibility=hidden`’ or nothing. It also defines as a C macro and as a substituted variable: @HAVE_VISIBILITY@. Its value is 1 when symbol visibility control is supported, and 0 otherwise.

To use this module in a library, say libfoo, you will do these steps:

1. Add `@CFLAG_VISIBILITY@` or (in a Makefile.am) `$(CFLAG_VISIBILITY)` to the CFLAGS for the compilation of the sources that make up the library.
2. Add a C macro definition, say ‘`-DBUILDING_LIBFOO`’, to the CPPFLAGS for the compilation of the sources that make up the library.
3. Define a macro specific to your library like this.

       #if BUILDING_LIBFOO && HAVE_VISIBILITY
       #define LIBFOO_DLL_EXPORTED __attribute__((__visibility__("default")))
       #else
       #define LIBFOO_DLL_EXPORTED
       #endif

   This macro should be enabled in all public header files of your library.

4. Annotate all variable, function and class declarations in all public header files of your library with ‘`LIBFOO_DLL_EXPORTED`’. This annotation can occur at different locations: between the ‘`extern`’ and the type or return type, or just before the entity being declared, or after the entire declarator. My preference is to put it right after ‘`extern`’, so that the declarations in the header files remain halfway readable.

Note that the precise control of the exported symbols will not work with other compilers than GCC >= 4.0, and will not work on systems where the assembler or linker lack the support of “hidden” visibility. Therefore, it’s good if, in order to reduce the risk of collisions with symbols in other libraries, you continue to use a prefix specific to your library for all non-static variables and functions and for all C++ classes in your library.

Note about other compilers: MSVC support can be added easily, by extending the definition of the macro mentioned above, to something like this:

    #if BUILDING_LIBFOO && HAVE_VISIBILITY
    #define LIBFOO_DLL_EXPORTED __attribute__((__visibility__("default")))
    #elif BUILDING_LIBFOO && defined _MSC_VER
    #define LIBFOO_DLL_EXPORTED __declspec(dllexport)
    #elif defined _MSC_VER
    #define LIBFOO_DLL_EXPORTED __declspec(dllimport)
    #else
    #define LIBFOO_DLL_EXPORTED
    #endif

### 12.12 LD Version Scripts

The `lib-symbol-versions` module can be used to add shared library versioning support. Currently, only GNU LD and the Solaris linker supports this.

Version scripts provides information that can be used by GNU/Linux distribution packaging tools. For example, Debian has a tool `dpkg-shlibdeps` that can determine the minimal required version of each dependency (by looking at the symbol list) and stuff the information into the Debian specific packaging files.

For more information and other uses of version scripts, see Ulrich Drepper’s paper http://people.redhat.com/drepper/dsohowto.pdf

You use the module by importing it to your library, and then add the following lines to the `Makefile.am` that builds the library:

    if HAVE_LD_VERSION_SCRIPT
    libfoo_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libfoo.map
    endif

The version script file format is documented in the GNU LD manual, but a small example would be:

    LIBFOO_1.0 {
      global:
        libfoo_init; libfoo_doit; libfoo_done;

      local:
        *;
    };

If you target platforms that do not support linker scripts (i.e., all platforms that doesn’t use GNU LD) you may want to consider a more portable but less powerful alternative: libtool `-export-symbols`. It will hide internal symbols from your library, but will not add ELF versioning symbols. Your usage would then be something like:

    if HAVE_LD_VERSION_SCRIPT
    libfoo_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libfoo.map
    else
    libfoo_la_LDFLAGS += -export-symbols $(srcdir)/libfoo.sym
    endif

See the Libtool manual for the file syntax, but a small example would be:

    libfoo_init
    libfoo_doit
    libfoo_done

To avoid the need for a `*.sym` file if your symbols are easily expressed using a regular expression, you may use `-export-symbols-regex`:

    if HAVE_LD_VERSION_SCRIPT
    libfoo_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libfoo.map
    else
    libfoo_la_LDFLAGS += -export-symbols-regex '^libfoo_.*'
    endif

For more discussions about symbol visibility, rather than shared library versioning, see the `visibility` module (see Exported Symbols of Shared Libraries).

### 12.13 Visual Studio Compatibility

The `lib-msvc-compat` module detects whether the linker supports `--output-def` when building a library. That parameter is used to generate a DEF file for a shared library (DLL). DEF files are useful for developers that use Visual Studio to develop programs that links to your library. See the GNU LD manual for more information.

There are other ways to create a DEF file, but we believe they are all sub-optimal to using `--output-def` during the build process. The variants we have considered include:

- Use DUMPBIN /EXPORTS. This is explained in http://support.microsoft.com/kb/131313/en-us. The tool does not generate DEF files directly, so its output needs to be post processed manually:

      $ { echo EXPORTS; \
          dumpbin /EXPORTS libfoo-0.dll | tail -n+20 | awk '{ print $4 }'; \
        } > libfoo-0.def
      $ lib /def:libfoo-0.def

- Use IMPDEF. There is a tool called IMPDEF (http://sei.pku.edu.cn/~caodg/course/c/reference/win32/tools/dlltool.html) that can generate DEF files. However, it is not part of a standard Visual Studio installation. Further, it is documented as being an unreliable process.
- Use DLLTOOL. The dlltool is part of the MinGW suite, and thus not part of a standard Visual Studio installation. The documentation for the IMPDEF tool claims that DLLTOOL is the wrong tool for this job. Finally, DLLTOOL does not generate DEF files directly, so it requires post-processing of the output.

If you are using libtool to build your shared library, here is how to use this module. Import `lib-msvc-compat` to your project, and then add the following lines to the `Makefile.am` that builds the library:

    if HAVE_LD_OUTPUT_DEF
    libfoo_la_LDFLAGS += -Wl,--output-def,libfoo-$(DLL_VERSION).def
    defexecdir = $(bindir)
    defexec_DATA = libfoo-$(DLL_VERSION).def
    DISTCLEANFILES += $(defexec_DATA)
    endif

The `DLL_VERSION` variable needs to be defined. It should be the shared library version number used in the DLL filename. For Windows targets you compute this value from the values you pass to Libtool’s `-version-info`. Assuming you have variables `LT_CURRENT` and `LT_AGE` defined for the `CURRENT` and `AGE` libtool version integers, you compute `DLL_VERSION` as follows:

    DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}`
    AC_SUBST(DLL_VERSION)

### 12.14 Supporting Relocation

It has been a pain for many users of GNU packages for a long time that packages are not relocatable. It means a user cannot copy a program, installed by another user on the same machine, to his home directory, and have it work correctly (including i18n). So many users need to go through `configure; make; make install` with all its dependencies, options, and hurdles.

Red Hat, Debian, and similar package systems solve the “ease of installation” problem, but they hardwire path names, usually to `/usr` or `/usr/local`. This means that users need root privileges to install a binary package, and prevents installing two different versions of the same binary package.

A relocatable program can be moved or copied to a different location on the file system. It is possible to make symlinks to the installed and moved programs, and invoke them through the symlink. It is possible to do the same thing with a hard link only if the hard link file is in the same directory as the real program.

The `relocatable-prog` module aims to ease the process of making a GNU program relocatable. It helps overcome two obstacles. First, it aids with relocating the hard-coded references to absolute file names that GNU programs often contain. These references must be fixed up at runtime if a program is to be successfully relocated. The `relocatable-prog` module provides a function `relocate` that does this job.

Second, the loader must be able to find shared libraries linked to relocatable executables or referenced by other shared libraries linked to relocatable executables. The `relocatable-prog` module helps out here in a platform-specific way:

- On GNU/Linux, it adds a linker option (`-rpath`) that causes the dynamic linker to search for libraries in a directory relative to the location of the invoked executable.
- On other Unix systems, it installs a wrapper executable. The wrapper sets the environment variable that controls shared library searching (usually `LD_LIBRARY_PATH`) and then invokes the real executable.

  This approach does not always work. On OpenBSD and OpenServer, prereleases of Libtool 1.5 put absolute file names of libraries in executables, which prevents searching any other locations.

- On Windows, the executable’s own directory is searched for libraries, so installing shared libraries into the executable’s directory is sufficient.

You can make your program relocatable by following these steps:

1. Import the `relocatable-prog` module.
2. In every program, add to `main` as the first statement (even before setting the locale or doing anything related to libintl):

       set_program_name (argv[0]);

   The prototype for this function is in `progname.h`.

3. Everywhere where you use a constant pathname from installation-time, wrap it in `relocate` so it gets translated to the run-time situation. Example:

       bindtextdomain (PACKAGE, LOCALEDIR);

   becomes:

       bindtextdomain (PACKAGE, relocate (LOCALEDIR));

   The prototype for this function is in `relocatable.h`.

4. The `set_program_name` function can also configure some additional libraries to relocate files that they access, by defining corresponding C preprocessor symbols to 1. The libraries for which this is supported and the corresponding preprocessor symbols are:
   libcharset

     `DEPENDS_ON_LIBCHARSET`

   libiconv

     `DEPENDS_ON_LIBICONV`

   libintl

     `DEPENDS_ON_LIBINTL`

   Defining the symbol for a library makes every program in the package depend on that library, whether the program really uses the library or not, so this feature should be used with some caution.

5. If your package installs shell scripts, also import the `relocatable-script` module. Then, near the beginning of each shell script that your package installs, add the following:

       @relocatable_sh@
       if test "@RELOCATABLE@" = yes; then
         exec_prefix="@exec_prefix@"
         bindir="@bindir@"
         orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables
         func_find_curr_installdir # determine curr_installdir
         func_find_prefixes
         # Relocate the directory variables that we use.
         gettext_dir=`
           echo "$gettext_dir/" \
           | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" \
           | sed -e 's,/$,,'`
       fi

   You must adapt the definition of `orig_installdir`, depending on where the script gets installed. Also, at the end, instead of `gettext_dir`, transform those variables that you need.

6. In your `Makefile.am`, for every program `foo` that gets installed in, say, `$(bindir)`, you add:

       foo_CPPFLAGS = -DINSTALLDIR=\"$(bindir)\"
       if RELOCATABLE_VIA_LD
       foo_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
       endif

7. You may also need to add a couple of variable assignments to your `configure.ac`.

   If your package (or any package you rely on, e.g. gettext-runtime) will be relocated together with a set of installed shared libraries, then set RELOCATABLE_LIBRARY_PATH to a colon-separated list of those libraries’ directories, e.g.

       RELOCATABLE_LIBRARY_PATH='$(libdir)'

   If your `config.h` is not in `$(top_builddir)`, then set RELOCATABLE_CONFIG_H_DIR to its directory, e.g.

       RELOCATABLE_CONFIG_H_DIR='$(top_builddir)/src'

### 12.15 func

The `func` module makes sure that you can use the predefined identifier `__func__` as defined by C99 in your code.

A small example is:

    #include <config.h>
    #include <stdio.h> /* for printf */

    int main (void)
    {
        printf ("%s: hello world\n", __func__);
    }

Note that `sizeof` cannot be applied to `__func__`: On SunPRO C compiler, `sizeof __func__` evaluates to 0.

### 12.16 configmake

The `configmake` module builds a C include file named `configmake.h` containing the usual installation directory values; for example, those specified by `--prefix` or `--libdir` to configure. Each variable is given a `#define` with an all-uppercase macro name, such as `PREFIX` and `LIBDIR`. (Automake cannot create this file directly because the user might override directory values at `make` time.)

Specifically, the module retrieves values of the variables through `configure` followed by `make`, not directly through `configure`, so that a user who sets some of these variables consistently on the `make` command line gets correct results.

One advantage of this approach, compared to the classical approach of adding `-DLIBDIR=\"$(libdir)\"` etc. to `AM_CPPFLAGS`, is that it protects against the use of undefined variables. That is, if, say, `$(libdir)` is not set in the Makefile, `LIBDIR` is not defined by this module, and code using `LIBDIR` gives a compilation error.

Another advantage is that `make` output is shorter.

For the complete list of variables which are `#define`d this way, see the file `gnulib/modules/configmake`, or inspect your resulting gnulib Makefile.

### 12.17 warnings

The `warnings` module allows to regularly build a package with more GCC warnings than the default warnings emitted by GCC.

It provides the following functionality:

- You can select some warning options, such as ‘`-Wall`’, to be enabled whenever building with a GCC version that supports these options. The user can choose to override these warning options by providing the opposite options in the `CFLAGS` variable at configuration time.
- You can make these warnings apply to selected directories only. In projects where subprojects are maintained by different people, or where parts of the source code are imported from external sources – for example from gnulib –, it is useful to apply different warning options to different directories.
- It allows to use ‘`-Werror`’ at ‘`make distcheck`’ time, to verify that on the maintainer’s system, no warnings remain. (Note that use of ‘`-Werror`’ in `CFLAGS` does not work in general, because it may break autoconfiguration.)

To use this module, you need the following:

1. In `configure.ac`, use for example

       gl_WARN_ADD([-Wall], [WARN_CFLAGS])
       gl_WARN_ADD([-Wpointer-arith], [WARN_CFLAGS])

2. In the directories which shall use `WARN_CFLAGS`, use it in the definition of `AM_CFLAGS`, like this:

       AM_CFLAGS = $(WARN_CFLAGS)

   Note that the `AM_CFLAGS` is used in combination with `CFLAGS` and before `CFLAGS` in build rules emitted by Automake. This allows the user to provide `CFLAGS` that override the `WARN_CFLAGS`.

Note that it is a bad idea to use ‘`gl_WARN_ADD([-Werror])`’. The warnings emitted by GCC depend, to some extent, on the contents of the system header files, on the size and signedness of built-in types, etc. Use of ‘`-Werror`’ would cause frustration to all users on platforms that the maintainer has not tested before the release. It is better if maintainers use ‘`-Werror`’ only for themselves (for example, during ‘`make distcheck`’, as mentioned above).

### 12.18 manywarnings

The `manywarnings` module allows you to enable as many GCC warnings as possible for your package. The purpose is to protect against introducing new code that triggers warnings that weren’t already triggered by the existing code base.

An example use of the module is as follows:

    gl_MANYWARN_ALL_GCC([warnings])
    # Set up the list of the pointless, undesired warnings.
    nw=
    nw="$nw -Wsystem-headers"       # Don't let system headers trigger warnings
    nw="$nw -Wundef"                # All compiler preprocessors support #if UNDEF
    nw="$nw -Wtraditional"          # All compilers nowadays support ANSI C
    nw="$nw -Wconversion"           # These warnings usually don't point to mistakes.
    nw="$nw -Wsign-conversion"      # Likewise.
    # Enable all GCC warnings not in this list.
    gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw])
    for w in $warnings; do
      gl_WARN_ADD([$w])
    done

This module is meant to be used by developers who are not very experienced regarding the various GCC warning options. In the beginning you will set the list of undesired warnings (‘`nw`’ in the example above) to empty, and compile the package with all possible warnings enabled. The GCC option `-fdiagnostics-show-option`, available in GCC 4.1 or newer, helps understanding which warnings originated from which option. Then you will go through the list of warnings. You will likely deactivate warnings that occur often and don’t point to mistakes in the code, by adding them to the ‘`nw`’ variable, then reconfiguring and recompiling. When warnings point to real mistakes and bugs in the code, you will of course not disable them.

There are also many GCC warning options which usually don’t point to mistakes in the code; these warnings enforce a certain programming style. It is a project management decision whether you want your code to follow any of these styles. Note that some of these programming styles are conflicting. You cannot have them all; you have to choose among them.

When a new version of GCC is released, you can add the new warning options that it introduces into the `gl_MANYWARN_ALL_GCC` macro (and submit your modification to the Gnulib maintainers :-)), and enjoy the benefits of the new warnings, while adding the undesired ones to the ‘`nw`’ variable.

### 12.19 Running self-tests under valgrind

For projects written in C or similar languages, running the self-tests under Valgrind can reveal hard to find memory issues. The `valgrind-tests` module searches for Valgrind and declares the `VALGRIND` automake variable for use with automake’s `TESTS_ENVIRONMENT`.

After importing the `valgrind-tests` module to your project, you use it by adding the following to the `Makefile.am` that runs the self-tests:

    TESTS_ENVIRONMENT = $(VALGRIND)

This will run all self-checks under valgrind. This can be wasteful if you have many shell scripts or other non-binaries. Using the Automake parallel-tests feature, this can be avoided by using the following instead:

    AUTOMAKE_OPTIONS = parallel-tests
    TEST_EXTENSIONS = .pl .sh
    LOG_COMPILER = $(VALGRIND)

Then valgrind will only be used for the non-.sh and non-.pl tests. However, this means that binaries invoked through scripts will not be invoked under valgrind, which could be solved by adding the following:

    TESTS_ENVIRONMENT = VALGRIND='$(VALGRIND)'

And then modify the shell scripts to invoke the binary prefixed with `$VALGRIND`.

### 12.20 stat-size

The `stat-size` module provides a small number of macros intended for interpreting the file size information in an instance of `struct stat`.

On POSIX systems, the `st_blocks` member of `struct stat` contains the number of disk blocks occupied by a file. The `ST_NBLOCKS` macro is used to estimate this quantity on systems which don’t actually have `st_blocks`. Each of these blocks contains `ST_NBLOCKSIZE` bytes.

The value of `ST_NBLOCKSIZE` is often quite small, small enough that performing I/O in chunks that size would be inefficient. `ST_BLKSIZE` is the I/O block size recommended for I/O to this file. This is not guaranteed to give optimum performance, but it should be reasonably efficient.

## 13 Regular expressions

### 13.1 Overview

A regular expression (or regexp, or pattern) is a text string that describes some (mathematical) set of strings. A regexp r matches a string s if s is in the set of strings described by r.

Using the Regex library, you can:

- see if a string matches a specified pattern as a whole, and
- search within a string for a substring matching a specified pattern.

Some regular expressions match only one string, i.e., the set they describe has only one member. For example, the regular expression ‘`foo`’ matches the string ‘`foo`’ and no others. Other regular expressions match more than one string, i.e., the set they describe has more than one member. For example, the regular expression ‘`f*`’ matches the set of strings made up of any number (including zero) of ‘`f`’s. As you can see, some characters in regular expressions match themselves (such as ‘`f`’) and some don’t (such as ‘`*`’); the ones that don’t match themselves instead let you specify patterns that describe many different strings.

To either match or search for a regular expression with the Regex library functions, you must first compile it with a Regex pattern compiling function. A compiled pattern is a regular expression converted to the internal format used by the library functions. Once you’ve compiled a pattern, you can use it for matching or searching any number of times.

The Regex library is used by including `regex.h`. Regex provides three groups of functions with which you can operate on regular expressions. One group—the GNU group—is more powerful but not completely compatible with the other two, namely the POSIX and Berkeley UNIX groups; its interface was designed specifically for GNU.

We wrote this chapter with programmers in mind, not users of programs—such as Emacs—that use Regex. We describe the Regex library in its entirety, not how to write regular expressions that a particular program understands.

### 13.2 Regular Expression Syntax

Characters are things you can type. Operators are things in a regular expression that match one or more characters. You compose regular expressions from operators, which in turn you specify using one or more characters.

Most characters represent what we call the match-self operator, i.e., they match themselves; we call these characters ordinary. Other characters represent either all or parts of fancier operators; e.g., ‘`.`’ represents what we call the match-any-character operator (which, no surprise, matches (almost) any character); we call these characters special. Two different things determine what characters represent what operators:

1. the regular expression syntax your program has told the Regex library to recognize, and
2. the context of the character in the regular expression.

In the following sections, we describe these things in more detail.

#### 13.2.1 Syntax Bits

In any particular syntax for regular expressions, some characters are always special, others are sometimes special, and others are never special. The particular syntax that Regex recognizes for a given regular expression depends on the current syntax (as set by `re_set_syntax`) when the pattern buffer of that regular expression was compiled.

You get a pattern buffer by compiling a regular expression. See GNU Pattern Buffers, for more information on pattern buffers. See GNU Regular Expression Compiling, and BSD Regular Expression Compiling, for more information on compiling.

Regex considers the current syntax to be a collection of bits; we refer to these bits as syntax bits. In most cases, they affect what characters represent what operators. We describe the meanings of the operators to which we refer in Common Operators, GNU Operators, and GNU Emacs Operators.

For reference, here is the complete list of syntax bits, in alphabetical order:

`RE_BACKSLASH_ESCAPE_IN_LISTS`

  If this bit is set, then ‘`\`’ inside a list (see List Operators quotes (makes ordinary, if it’s special) the following character; if this bit isn’t set, then ‘`\`’ is an ordinary character inside lists. (See The Backslash Character, for what ‘`\`’ does outside of lists.)

`RE_BK_PLUS_QM`

  If this bit is set, then ‘`\+`’ represents the match-one-or-more operator and ‘`\?`’ represents the match-zero-or-more operator; if this bit isn’t set, then ‘`+`’ represents the match-one-or-more operator and ‘`?`’ represents the match-zero-or-one operator. This bit is irrelevant if `RE_LIMITED_OPS` is set.

`RE_CHAR_CLASSES`

  If this bit is set, then you can use character classes in lists; if this bit isn’t set, then you can’t.

`RE_CONTEXT_INDEP_ANCHORS`

  If this bit is set, then ‘`^`’ and ‘`$`’ are special anywhere outside a list; if this bit isn’t set, then these characters are special only in certain contexts. See Match-beginning-of-line Operator, and Match-end-of-line Operator.

`RE_CONTEXT_INDEP_OPS`

  If this bit is set, then certain characters are special anywhere outside a list; if this bit isn’t set, then those characters are special only in some contexts and are ordinary elsewhere. Specifically, if this bit isn’t set then ‘`*`’, and (if the syntax bit `RE_LIMITED_OPS` isn’t set) ‘`+`’ and ‘`?`’ (or ‘`\+`’ and ‘`\?`’, depending on the syntax bit `RE_BK_PLUS_QM`) represent repetition operators only if they’re not first in a regular expression or just after an open-group or alternation operator. The same holds for ‘`{`’ (or ‘`\{`’, depending on the syntax bit `RE_NO_BK_BRACES`) if it is the beginning of a valid interval and the syntax bit `RE_INTERVALS` is set.

`RE_CONTEXT_INVALID_DUP`

  If this bit is set, then an open-interval operator cannot occur at the start of a regular expression, or immediately after an alternation, open-group or close-interval operator.

`RE_CONTEXT_INVALID_OPS`

  If this bit is set, then repetition and alternation operators can’t be in certain positions within a regular expression. Specifically, the regular expression is invalid if it has:

  - a repetition operator first in the regular expression or just after a match-beginning-of-line, open-group, or alternation operator; or
  - an alternation operator first or last in the regular expression, just before a match-end-of-line operator, or just after an alternation or open-group operator.

  If this bit isn’t set, then you can put the characters representing the repetition and alternation characters anywhere in a regular expression. Whether or not they will in fact be operators in certain positions depends on other syntax bits.

`RE_DEBUG`

  If this bit is set, and the regex library was compiled with `-DDEBUG`, then internal debugging is turned on; if unset, then it is turned off.

`RE_DOT_NEWLINE`

  If this bit is set, then the match-any-character operator matches a newline; if this bit isn’t set, then it doesn’t.

`RE_DOT_NOT_NULL`

  If this bit is set, then the match-any-character operator doesn’t match a null character; if this bit isn’t set, then it does.

`RE_HAT_LISTS_NOT_NEWLINE`

  If this bit is set, nonmatching lists ‘`[^...]`’ do not match newline; if not set, they do.

`RE_ICASE`

  If this bit is set, then ignore case when matching; otherwise, case is significant.

`RE_INTERVALS`

  If this bit is set, then Regex recognizes interval operators; if this bit isn’t set, then it doesn’t.

`RE_INVALID_INTERVAL_ORD`

  If this bit is set, a syntactically invalid interval is treated as a string of ordinary characters. For example, the extended regular expression ‘`a{1`’ is treated as ‘`a\{1`’.

`RE_LIMITED_OPS`

  If this bit is set, then Regex doesn’t recognize the match-one-or-more, match-zero-or-one or alternation operators; if this bit isn’t set, then it does.

`RE_NEWLINE_ALT`

  If this bit is set, then newline represents the alternation operator; if this bit isn’t set, then newline is ordinary.

`RE_NO_BK_BRACES`

  If this bit is set, then ‘`{`’ represents the open-interval operator and ‘`}`’ represents the close-interval operator; if this bit isn’t set, then ‘`\{`’ represents the open-interval operator and ‘`\}`’ represents the close-interval operator. This bit is relevant only if `RE_INTERVALS` is set.

`RE_NO_BK_PARENS`

  If this bit is set, then ‘`(`’ represents the open-group operator and ‘`)`’ represents the close-group operator; if this bit isn’t set, then ‘`\(`’ represents the open-group operator and ‘`\)`’ represents the close-group operator.

`RE_NO_BK_REFS`

  If this bit is set, then Regex doesn’t recognize ‘`\`’digit as the back reference operator; if this bit isn’t set, then it does.

`RE_NO_BK_VBAR`

  If this bit is set, then ‘`|`’ represents the alternation operator; if this bit isn’t set, then ‘`\|`’ represents the alternation operator. This bit is irrelevant if `RE_LIMITED_OPS` is set.

`RE_NO_EMPTY_RANGES`

  If this bit is set, then a regular expression with a range whose ending point collates lower than its starting point is invalid; if this bit isn’t set, then Regex considers such a range to be empty.

`RE_NO_GNU_OPS`

  If this bit is set, GNU regex operators are not recognized; otherwise, they are.

`RE_NO_POSIX_BACKTRACKING`

  If this bit is set, succeed as soon as we match the whole pattern, without further backtracking. This means that a match may not be the leftmost longest; see What Gets Matched? for what this means.

`RE_NO_SUB`

  If this bit is set, then `no_sub` will be set to one during `re_compile_pattern`. This causes matching and searching routines not to record substring match information.

`RE_UNMATCHED_RIGHT_PAREN_ORD`

  If this bit is set and the regular expression has no matching open-group operator, then Regex considers what would otherwise be a close-group operator (based on how `RE_NO_BK_PARENS` is set) to match ‘`)`’.

#### 13.2.2 Predefined Syntaxes

If you’re programming with Regex, you can set a pattern buffer’s (see GNU Pattern Buffers) syntax either to an arbitrary combination of syntax bits (see Syntax Bits) or else to the configurations defined by Regex. These configurations define the syntaxes used by certain programs—GNU Emacs, POSIX Awk, traditional Awk, Grep, Egrep—in addition to syntaxes for POSIX basic and extended regular expressions.

The predefined syntaxes—taken directly from `regex.h`—are:

    #define RE_SYNTAX_EMACS 0

    #define RE_SYNTAX_AWK                                                   \
      (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL                       \
       | RE_NO_BK_PARENS            | RE_NO_BK_REFS                         \
       | RE_NO_BK_VBAR               | RE_NO_EMPTY_RANGES                   \
       | RE_UNMATCHED_RIGHT_PAREN_ORD)

    #define RE_SYNTAX_POSIX_AWK                                             \
      (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)

    #define RE_SYNTAX_GREP                                                  \
      (RE_BK_PLUS_QM              | RE_CHAR_CLASSES                         \
       | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS                            \
       | RE_NEWLINE_ALT)

    #define RE_SYNTAX_EGREP                                                 \
      (RE_CHAR_CLASSES        | RE_CONTEXT_INDEP_ANCHORS                    \
       | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE                    \
       | RE_NEWLINE_ALT       | RE_NO_BK_PARENS                             \
       | RE_NO_BK_VBAR)

    #define RE_SYNTAX_POSIX_EGREP                                           \
      (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)

    /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff.  */
    #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC

    #define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC

    /* Syntax bits common to both basic and extended POSIX regex syntax.  */
    #define _RE_SYNTAX_POSIX_COMMON                                         \
      (RE_CHAR_CLASSES | RE_DOT_NEWLINE      | RE_DOT_NOT_NULL              \
       | RE_INTERVALS  | RE_NO_EMPTY_RANGES)

    #define RE_SYNTAX_POSIX_BASIC                                           \
      (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)

    /* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
       RE_LIMITED_OPS, i.e., \? \+ \| are not recognized.  Actually, this
       isn't minimal, since other operators, such as \`, aren't disabled.  */
    #define RE_SYNTAX_POSIX_MINIMAL_BASIC                                   \
      (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)

    #define RE_SYNTAX_POSIX_EXTENDED                                        \
      (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS                   \
       | RE_CONTEXT_INDEP_OPS  | RE_NO_BK_BRACES                            \
       | RE_NO_BK_PARENS       | RE_NO_BK_VBAR                              \
       | RE_UNMATCHED_RIGHT_PAREN_ORD)

    /* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
       replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added.  */
    #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED                                \
      (_RE_SYNTAX_POSIX_COMMON  | RE_CONTEXT_INDEP_ANCHORS                  \
       | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES                           \
       | RE_NO_BK_PARENS        | RE_NO_BK_REFS                             \
       | RE_NO_BK_VBAR          | RE_UNMATCHED_RIGHT_PAREN_ORD)

#### 13.2.3 Collating Elements vs. Characters

POSIX generalizes the notion of a character to that of a collating element. It defines a collating element to be “a sequence of one or more bytes defined in the current collating sequence as a unit of collation.”

This generalizes the notion of a character in two ways. First, a single character can map into two or more collating elements. For example, the German collates as the collating element ‘`s`’ followed by another collating element ‘`s`’. Second, two or more characters can map into one collating element. For example, the Spanish ‘`ll`’ collates after ‘`l`’ and before ‘`m`’.

Since POSIX’s “collating element” preserves the essential idea of a “character,” we use the latter, more familiar, term in this document.

#### 13.2.4 The Backslash Character

The ‘`\`’ character has one of four different meanings, depending on the context in which you use it and what syntax bits are set (see Syntax Bits). It can: 1) stand for itself, 2) quote the next character, 3) introduce an operator, or 4) do nothing.

1. It stands for itself inside a list (see List Operators) if the syntax bit `RE_BACKSLASH_ESCAPE_IN_LISTS` is not set. For example, ‘`[\]`’ would match ‘`\`’.
2. It quotes (makes ordinary, if it’s special) the next character when you use it either:
   - outside a list,1 or
   - inside a list and the syntax bit `RE_BACKSLASH_ESCAPE_IN_LISTS` is set.
3. It introduces an operator when followed by certain ordinary characters—sometimes only when certain syntax bits are set. See the cases `RE_BK_PLUS_QM`, `RE_NO_BK_BRACES`, `RE_NO_BK_VAR`, `RE_NO_BK_PARENS`, `RE_NO_BK_REF` in Syntax Bits. Also:
   - ‘`\b`’ represents the match-word-boundary operator (see Match-word-boundary Operator).
   - ‘`\B`’ represents the match-within-word operator (see Match-within-word Operator).
   - ‘`\<`’ represents the match-beginning-of-word operator
     (see Match-beginning-of-word Operator).
   - ‘`\>`’ represents the match-end-of-word operator (see Match-end-of-word Operator).
   - ‘`\w`’ represents the match-word-constituent operator (see Match-word-constituent Operator).
   - ‘`\W`’ represents the match-non-word-constituent operator (see Match-non-word-constituent Operator).
   - ‘`\``’ represents the match-beginning-of-buffer operator and ‘`\'`’ represents the match-end-of-buffer operator (see Buffer Operators).
   - If Regex was compiled with the C preprocessor symbol `emacs` defined, then ‘`\sclass`’ represents the match-syntactic-class operator and ‘`\Sclass`’ represents the match-not-syntactic-class operator (see Syntactic Class Operators).
4. In all other cases, Regex ignores ‘`\`’. For example, ‘`\n`’ matches ‘`n`’.

### 13.3 Common Operators

You compose regular expressions from operators. In the following sections, we describe the regular expression operators specified by POSIX; GNU also uses these. Most operators have more than one representation as characters. See Regular Expression Syntax, for what characters represent what operators under what circumstances.

For most operators that can be represented in two ways, one representation is a single character and the other is that character preceded by ‘`\`’. For example, either ‘`(`’ or ‘`\(`’ represents the open-group operator. Which one does depends on the setting of a syntax bit, in this case `RE_NO_BK_PARENS`. Why is this so? Historical reasons dictate some of the varying representations, while POSIX dictates others.

Finally, almost all characters lose any special meaning inside a list (see List Operators).

#### 13.3.1 The Match-self Operator (ordinary character)

This operator matches the character itself. All ordinary characters (see Regular Expression Syntax) represent this operator. For example, ‘`f`’ is always an ordinary character, so the regular expression ‘`f`’ matches only the string ‘`f`’. In particular, it does not match the string ‘`ff`’.

#### 13.3.2 The Match-any-character Operator (`.`)

This operator matches any single printing or nonprinting character except it won’t match a:

newline

  if the syntax bit `RE_DOT_NEWLINE` isn’t set.

null

  if the syntax bit `RE_DOT_NOT_NULL` is set.

The ‘`.`’ (period) character represents this operator. For example, ‘`a.b`’ matches any three-character string beginning with ‘`a`’ and ending with ‘`b`’.

#### 13.3.3 The Concatenation Operator

This operator concatenates two regular expressions a and b. No character represents this operator; you simply put b after a. The result is a regular expression that will match a string if a matches its first part and b matches the rest. For example, ‘`xy`’ (two match-self operators) matches ‘`xy`’.

#### 13.3.4 Repetition Operators

Repetition operators repeat the preceding regular expression a specified number of times.

#### 13.3.4.1 The Match-zero-or-more Operator (`*`)

This operator repeats the smallest possible preceding regular expression as many times as necessary (including zero) to match the pattern. ‘`*`’ represents this operator. For example, ‘`o*`’ matches any string made up of zero or more ‘`o`’s. Since this operator operates on the smallest preceding regular expression, ‘`fo*`’ has a repeating ‘`o`’, not a repeating ‘`fo`’. So, ‘`fo*`’ matches ‘`f`’, ‘`fo`’, ‘`foo`’, and so on.

Since the match-zero-or-more operator is a suffix operator, it may be useless as such when no regular expression precedes it. This is the case when it:

- is first in a regular expression, or
- follows a match-beginning-of-line, open-group, or alternation operator.

Three different things can happen in these cases:

1. If the syntax bit `RE_CONTEXT_INVALID_OPS` is set, then the regular expression is invalid.
2. If `RE_CONTEXT_INVALID_OPS` isn’t set, but `RE_CONTEXT_INDEP_OPS` is, then ‘`*`’ represents the match-zero-or-more operator (which then operates on the empty string).
3. Otherwise, ‘`*`’ is ordinary.

The matcher processes a match-zero-or-more operator by first matching as many repetitions of the smallest preceding regular expression as it can. Then it continues to match the rest of the pattern.

If it can’t match the rest of the pattern, it backtracks (as many times as necessary), each time discarding one of the matches until it can either match the entire pattern or be certain that it cannot get a match. For example, when matching ‘`ca*ar`’ against ‘`caaar`’, the matcher first matches all three ‘`a`’s of the string with the ‘`a*`’ of the regular expression. However, it cannot then match the final ‘`ar`’ of the regular expression against the final ‘`r`’ of the string. So it backtracks, discarding the match of the last ‘`a`’ in the string. It can then match the remaining ‘`ar`’.

#### 13.3.4.2 The Match-one-or-more Operator (`+` or `\+`)

If the syntax bit `RE_LIMITED_OPS` is set, then Regex doesn’t recognize this operator. Otherwise, if the syntax bit `RE_BK_PLUS_QM` isn’t set, then ‘`+`’ represents this operator; if it is, then ‘`\+`’ does.

This operator is similar to the match-zero-or-more operator except that it repeats the preceding regular expression at least once; see Match-zero-or-more Operator, for what it operates on, how some syntax bits affect it, and how Regex backtracks to match it.

For example, supposing that ‘`+`’ represents the match-one-or-more operator; then ‘`ca+r`’ matches, e.g., ‘`car`’ and ‘`caaaar`’, but not ‘`cr`’.

#### 13.3.4.3 The Match-zero-or-one Operator (`?` or `\?`)

If the syntax bit `RE_LIMITED_OPS` is set, then Regex doesn’t recognize this operator. Otherwise, if the syntax bit `RE_BK_PLUS_QM` isn’t set, then ‘`?`’ represents this operator; if it is, then ‘`\?`’ does.

This operator is similar to the match-zero-or-more operator except that it repeats the preceding regular expression once or not at all; see Match-zero-or-more Operator, to see what it operates on, how some syntax bits affect it, and how Regex backtracks to match it.

For example, supposing that ‘`?`’ represents the match-zero-or-one operator; then ‘`ca?r`’ matches both ‘`car`’ and ‘`cr`’, but nothing else.

#### 13.3.4.4 Interval Operators (`{` … `}` or `\{` … `\}`)

If the syntax bit `RE_INTERVALS` is set, then Regex recognizes interval expressions. They repeat the smallest possible preceding regular expression a specified number of times.

If the syntax bit `RE_NO_BK_BRACES` is set, ‘`{`’ represents the open-interval operator and ‘`}`’ represents the close-interval operator ; otherwise, ‘`\{`’ and ‘`\}`’ do.

Specifically, supposing that ‘`{`’ and ‘`}`’ represent the open-interval and close-interval operators; then:

`{count}`

  matches exactly count occurrences of the preceding regular expression.

`{min,}`

  matches min or more occurrences of the preceding regular expression.

`{min, max}`

  matches at least min but no more than max occurrences of the preceding regular expression.

The interval expression (but not necessarily the regular expression that contains it) is invalid if:

- min is greater than max, or
- any of count, min, or max are outside the range zero to `RE_DUP_MAX` (which symbol `regex.h` defines).

If the interval expression is invalid and the syntax bit `RE_NO_BK_BRACES` is set, then Regex considers all the characters in the would-be interval to be ordinary. If that bit isn’t set, then the regular expression is invalid.

If the interval expression is valid but there is no preceding regular expression on which to operate, then if the syntax bit `RE_CONTEXT_INVALID_OPS` is set, the regular expression is invalid. If that bit isn’t set, then Regex considers all the characters—other than backslashes, which it ignores—in the would-be interval to be ordinary.

#### 13.3.5 The Alternation Operator (`|` or `\|`)

If the syntax bit `RE_LIMITED_OPS` is set, then Regex doesn’t recognize this operator. Otherwise, if the syntax bit `RE_NO_BK_VBAR` is set, then ‘`|`’ represents this operator; otherwise, ‘`\|`’ does.

Alternatives match one of a choice of regular expressions: if you put the character(s) representing the alternation operator between any two regular expressions a and b, the result matches the union of the strings that a and b match. For example, supposing that ‘`|`’ is the alternation operator, then ‘`foo|bar|quux`’ would match any of ‘`foo`’, ‘`bar`’ or ‘`quux`’.

The alternation operator operates on the largest possible surrounding regular expressions. (Put another way, it has the lowest precedence of any regular expression operator.) Thus, the only way you can delimit its arguments is to use grouping. For example, if ‘`(`’ and ‘`)`’ are the open and close-group operators, then ‘`fo(o|b)ar`’ would match either ‘`fooar`’ or ‘`fobar`’. (‘`foo|bar`’ would match ‘`foo`’ or ‘`bar`’.)

The matcher usually tries all combinations of alternatives so as to match the longest possible string. For example, when matching ‘`(fooq|foo)*(qbarquux|bar)`’ against ‘`fooqbarquux`’, it cannot take, say, the first (“depth-first”) combination it could match, since then it would be content to match just ‘`fooqbar`’.

Note that since the default behavior is to return the leftmost longest match, when more than one of a series of alternatives matches the actual match will be the longest matching alternative, not necessarily the first in the list.

#### 13.3.6 List Operators (`[` … `]` and `[^` … `]`)

Lists, also called bracket expressions, are a set of one or more items. An item is a character, a collating symbol, an equivalence class expression, a character class expression, or a range expression. The syntax bits affect which kinds of items you can put in a list. We explain the last four items in subsections below. Empty lists are invalid.

A matching list matches a single character represented by one of the list items. You form a matching list by enclosing one or more items within an open-matching-list operator (represented by ‘`[`’) and a close-list operator (represented by ‘`]`’).

For example, ‘`[ab]`’ matches either ‘`a`’ or ‘`b`’. ‘`[ad]*`’ matches the empty string and any string composed of just ‘`a`’s and ‘`d`’s in any order. Regex considers invalid a regular expression with a ‘`[`’ but no matching ‘`]`’.

Nonmatching lists are similar to matching lists except that they match a single character not represented by one of the list items. You use an open-nonmatching-list operator (represented by ‘`[^`’2) instead of an open-matching-list operator to start a nonmatching list.

For example, ‘`[^ab]`’ matches any character except ‘`a`’ or ‘`b`’.

If the syntax bit `RE_HAT_LISTS_NOT_NEWLINE` is set, then nonmatching lists do not match a newline.

Most characters lose any special meaning inside a list. The special characters inside a list follow.

‘`]`’

  ends the list if it’s not the first list item. So, if you want to make the ‘`]`’ character a list item, you must put it first.

‘`\`’

  quotes the next character if the syntax bit `RE_BACKSLASH_ESCAPE_IN_LISTS` is set.

‘`[.`’

  represents the open-collating-symbol operator (see Collating Symbol Operators).

‘`.]`’

  represents the close-collating-symbol operator.

‘`[=`’

  represents the open-equivalence-class operator (see Equivalence Class Operators).

‘`=]`’

  represents the close-equivalence-class operator.

‘`[:`’

  represents the open-character-class operator (see Character Class Operators) if the syntax bit `RE_CHAR_CLASSES` is set and what follows is a valid character class expression.

‘`:]`’

  represents the close-character-class operator if the syntax bit `RE_CHAR_CLASSES` is set and what precedes it is an open-character-class operator followed by a valid character class name.

‘`-`’

  represents the range operator (see Range Operator) if it’s not first or last in a list or the ending point of a range.

All other characters are ordinary. For example, ‘`[.*]`’ matches ‘`.`’ and ‘`*`’.

#### 13.3.6.1 Collating Symbol Operators (`[.` … `.]`)

Collating symbols can be represented inside lists. You form a collating symbol by putting a collating element between an open-collating-symbol operator and a close-collating-symbol operator. ‘`[.`’ represents the open-collating-symbol operator and ‘`.]`’ represents the close-collating-symbol operator. For example, if ‘`ll`’ is a collating element, then ‘`[[.ll.]]`’ would match ‘`ll`’.

#### 13.3.6.2 Equivalence Class Operators (`[=` … `=]`)

Regex recognizes equivalence class expressions inside lists. A equivalence class expression is a set of collating elements which all belong to the same equivalence class. You form an equivalence class expression by putting a collating element between an open-equivalence-class operator and a close-equivalence-class operator. ‘`[=`’ represents the open-equivalence-class operator and ‘`=]`’ represents the close-equivalence-class operator. For example, if ‘`a`’ and ‘`A`’ were an equivalence class, then both ‘`[[=a=]]`’ and ‘`[[=A=]]`’ would match both ‘`a`’ and ‘`A`’. If the collating element in an equivalence class expression isn’t part of an equivalence class, then the matcher considers the equivalence class expression to be a collating symbol.

#### 13.3.6.3 Character Class Operators (`[:` … `:]`)

If the syntax bit `RE_CHAR_CLASSES` is set, then Regex recognizes character class expressions inside lists. A character class expression matches one character from a given class. You form a character class expression by putting a character class name between an open-character-class operator (represented by ‘`[:`’) and a close-character-class operator (represented by ‘`:]`’). The character class names and their meanings are:

`alnum`

  letters and digits

`alpha`

  letters

`blank`

  system-dependent; for GNU, a space or tab

`cntrl`

  control characters (in the ASCII encoding, code 0177 and codes less than 040)

`digit`

  digits

`graph`

  same as `print` except omits space

`lower`

  lowercase letters

`print`

  printable characters (in the ASCII encoding, space tilde—codes 040 through 0176)

`punct`

  neither control nor alphanumeric characters

`space`

  space, carriage return, newline, vertical tab, and form feed

`upper`

  uppercase letters

`xdigit`

  hexadecimal digits: `0`–`9`, `a`–`f`, `A`–`F`

These correspond to the definitions in the C library’s `<ctype.h>` facility. For example, ‘`[:alpha:]`’ corresponds to the standard facility `isalpha`. Regex recognizes character class expressions only inside of lists; so ‘`[[:alpha:]]`’ matches any letter, but ‘`[:alpha:]`’ outside of a bracket expression and not followed by a repetition operator matches just itself.

#### 13.3.6.4 The Range Operator (`-`)

Regex recognizes range expressions inside a list. They represent those characters that fall between two elements in the current collating sequence. You form a range expression by putting a range operator between two of any of the following: characters, collating elements, collating symbols, and equivalence class expressions. The starting point of the range and the ending point of the range don’t have to be the same kind of item, e.g., the starting point could be a collating element and the ending point could be an equivalence class expression. If a range’s ending point is an equivalence class, then all the collating elements in that class will be in the range.3 ‘`-`’ represents the range operator. For example, ‘`a-f`’ within a list represents all the characters from ‘`a`’ through ‘`f`’ inclusively.

If the syntax bit `RE_NO_EMPTY_RANGES` is set, then if the range’s ending point collates less than its starting point, the range (and the regular expression containing it) is invalid. For example, the regular expression ‘`[z-a]`’ would be invalid. If this bit isn’t set, then Regex considers such a range to be empty.

Since ‘`-`’ represents the range operator, if you want to make a ‘`-`’ character itself a list item, you must do one of the following:

- Put the ‘`-`’ either first or last in the list.
- Include a range whose starting point collates strictly lower than ‘`-`’ and whose ending point collates equal or higher. Unless a range is the first item in a list, a ‘`-`’ can’t be its starting point, but can be its ending point. That is because Regex considers ‘`-`’ to be the range operator unless it is preceded by another ‘`-`’. For example, in the ASCII encoding, ‘`)`’, ‘`*`’, ‘`+`’, ‘`,`’, ‘`-`’, ‘`.`’, and ‘`/`’ are contiguous characters in the collating sequence. You might think that ‘`[)-+--/]`’ has two ranges: ‘`)-+`’ and ‘`--/`’. Rather, it has the ranges ‘`)-+`’ and ‘`+--`’, plus the character ‘`/`’, so it matches, e.g., ‘`,`’, not ‘`.`’.
- Put a range whose starting point is ‘`-`’ first in the list.

For example, ‘`[-a-z]`’ matches a lowercase letter or a hyphen (in English, in ASCII).

#### 13.3.7 Grouping Operators (`(` … `)` or `\(` … `\)`)

A group, also known as a subexpression, consists of an open-group operator, any number of other operators, and a close-group operator. Regex treats this sequence as a unit, just as mathematics and programming languages treat a parenthesized expression as a unit.

Therefore, using groups, you can:

- delimit the argument(s) to an alternation operator (see Alternation Operator) or a repetition operator (see Repetition Operators).
- keep track of the indices of the substring that matched a given group. See Using Registers, for a precise explanation. This lets you:
  - use the back-reference operator (see Back-reference Operator).
  - use registers (see Using Registers).

If the syntax bit `RE_NO_BK_PARENS` is set, then ‘`(`’ represents the open-group operator and ‘`)`’ represents the close-group operator; otherwise, ‘`\(`’ and ‘`\)`’ do.

If the syntax bit `RE_UNMATCHED_RIGHT_PAREN_ORD` is set and a close-group operator has no matching open-group operator, then Regex considers it to match ‘`)`’.

#### 13.3.8 The Back-reference Operator (\digit)

If the syntax bit `RE_NO_BK_REF` isn’t set, then Regex recognizes back references. A back reference matches a specified preceding group. The back reference operator is represented by ‘`\digit`’ anywhere after the end of a regular expression’s digit-th group (see Grouping Operators).

digit must be between ‘`1`’ and ‘`9`’. The matcher assigns numbers 1 through 9 to the first nine groups it encounters. By using one of ‘`\1`’ through ‘`\9`’ after the corresponding group’s close-group operator, you can match a substring identical to the one that the group does.

Back references match according to the following (in all examples below, ‘`(`’ represents the open-group, ‘`)`’ the close-group, ‘`{`’ the open-interval and ‘`}`’ the close-interval operator):

- If the group matches a substring, the back reference matches an identical substring. For example, ‘`(a)\1`’ matches ‘`aa`’ and ‘`(bana)na\1bo\1`’ matches ‘`bananabanabobana`’. Likewise, ‘`(.*)\1`’ matches any (newline-free if the syntax bit `RE_DOT_NEWLINE` isn’t set) string that is composed of two identical halves; the ‘`(.*)`’ matches the first half and the ‘`\1`’ matches the second half.
- If the group matches more than once (as it might if followed by, e.g., a repetition operator), then the back reference matches the substring the group last matched. For example, ‘`((a*)b)*\1\2`’ matches ‘`aabababa`’; first group 1 (the outer one) matches ‘`aab`’ and group 2 (the inner one) matches ‘`aa`’. Then group 1 matches ‘`ab`’ and group 2 matches ‘`a`’. So, ‘`\1`’ matches ‘`ab`’ and ‘`\2`’ matches ‘`a`’.
- If the group doesn’t participate in a match, i.e., it is part of an alternative not taken or a repetition operator allows zero repetitions of it, then the back reference makes the whole match fail. For example, ‘`(one()|two())-and-(three\2|four\3)`’ matches ‘`one-and-three`’ and ‘`two-and-four`’, but not ‘`one-and-four`’ or ‘`two-and-three`’. For example, if the pattern matches ‘`one-and-`’, then its group 2 matches the empty string and its group 3 doesn’t participate in the match. So, if it then matches ‘`four`’, then when it tries to back reference group 3—which it will attempt to do because ‘`\3`’ follows the ‘`four`’—the match will fail because group 3 didn’t participate in the match.

You can use a back reference as an argument to a repetition operator. For example, ‘`(a(b))\2*`’ matches ‘`a`’ followed by two or more ‘`b`’s. Similarly, ‘`(a(b))\2{3}`’ matches ‘`abbbb`’.

If there is no preceding digit-th subexpression, the regular expression is invalid.

#### 13.3.9 Anchoring Operators

These operators can constrain a pattern to match only at the beginning or end of the entire string or at the beginning or end of a line.

#### 13.3.9.1 The Match-beginning-of-line Operator (`^`)

This operator can match the empty string either at the beginning of the string or after a newline character. Thus, it is said to anchor the pattern to the beginning of a line.

In the cases following, ‘`^`’ represents this operator. (Otherwise, ‘`^`’ is ordinary.)

- It (the ‘`^`’) is first in the pattern, as in ‘`^foo`’.
- The syntax bit `RE_CONTEXT_INDEP_ANCHORS` is set, and it is outside a bracket expression.
- It follows an open-group or alternation operator, as in ‘`a\(^b\)`’ and ‘`a\|^b`’. See Grouping Operators, and Alternation Operator.

These rules imply that some valid patterns containing ‘`^`’ cannot be matched; for example, ‘`foo^bar`’ if `RE_CONTEXT_INDEP_ANCHORS` is set.

If the `not_bol` field is set in the pattern buffer (see GNU Pattern Buffers), then ‘`^`’ fails to match at the beginning of the string. This lets you match against pieces of a line, as you would need to if, say, searching for repeated instances of a given pattern in a line; it would work correctly for patterns both with and without match-beginning-of-line operators.

#### 13.3.9.2 The Match-end-of-line Operator (`$`)

This operator can match the empty string either at the end of the string or before a newline character in the string. Thus, it is said to anchor the pattern to the end of a line.

It is always represented by ‘`$`’. For example, ‘`foo$`’ usually matches, e.g., ‘`foo`’ and, e.g., the first three characters of ‘`foo\nbar`’.

Its interaction with the syntax bits and pattern buffer fields is exactly the dual of ‘`^`’’s; see the previous section. (That is, “‘`^`’” becomes “‘`$`’”, “beginning” becomes “end”, “next” becomes “previous”, “after” becomes “before”, and “`not_bol`” becomes “`not_eol`”.)

### 13.4 GNU Operators

Following are operators that GNU defines (and POSIX doesn’t).

#### 13.4.1 Word Operators

The operators in this section require Regex to recognize parts of words. Regex uses a syntax table to determine whether or not a character is part of a word, i.e., whether or not it is word-constituent.

#### 13.4.1.1 Non-Emacs Syntax Tables

A syntax table is an array indexed by the characters in your character set. In the ASCII encoding, therefore, a syntax table has 256 elements. Regex always uses a `char *` variable `re_syntax_table` as its syntax table. In some cases, it initializes this variable and in others it expects you to initialize it.

- If Regex is compiled with the preprocessor symbols `emacs` and `SYNTAX_TABLE` both undefined, then Regex allocates `re_syntax_table` and initializes an element i either to `Sword` (which it defines) if i is a letter, number, or ‘`_`’, or to zero if it’s not.
- If Regex is compiled with `emacs` undefined but `SYNTAX_TABLE` defined, then Regex expects you to define a `char *` variable `re_syntax_table` to be a valid syntax table.
- See Emacs Syntax Tables, for what happens when Regex is compiled with the preprocessor symbol `emacs` defined.

#### 13.4.1.2 The Match-word-boundary Operator (`\b`)

This operator (represented by ‘`\b`’) matches the empty string at either the beginning or the end of a word. For example, ‘`\brat\b`’ matches the separate word ‘`rat`’.

#### 13.4.1.3 The Match-within-word Operator (`\B`)

This operator (represented by ‘`\B`’) matches the empty string within a word. For example, ‘`c\Brat\Be`’ matches ‘`crate`’, but ‘`dirty \Brat`’ doesn’t match ‘`dirty rat`’.

#### 13.4.1.4 The Match-beginning-of-word Operator (`\<`)

This operator (represented by ‘`\<`’) matches the empty string at the beginning of a word.

#### 13.4.1.5 The Match-end-of-word Operator (`\>`)

This operator (represented by ‘`\>`’) matches the empty string at the end of a word.

#### 13.4.1.6 The Match-word-constituent Operator (`\w`)

This operator (represented by ‘`\w`’) matches any word-constituent character.

#### 13.4.1.7 The Match-non-word-constituent Operator (`\W`)

This operator (represented by ‘`\W`’) matches any character that is not word-constituent.

#### 13.4.2 Buffer Operators

Following are operators which work on buffers. In Emacs, a buffer is, naturally, an Emacs buffer. For other programs, Regex considers the entire string to be matched as the buffer.

#### 13.4.2.1 The Match-beginning-of-buffer Operator (`\``)

This operator (represented by ‘`\``’) matches the empty string at the beginning of the buffer.

#### 13.4.2.2 The Match-end-of-buffer Operator (`\'`)

This operator (represented by ‘`\'`’) matches the empty string at the end of the buffer.

### 13.5 GNU Emacs Operators

Following are operators that GNU defines (and POSIX doesn’t) that you can use only when Regex is compiled with the preprocessor symbol `emacs` defined.

#### 13.5.1 Syntactic Class Operators

The operators in this section require Regex to recognize the syntactic classes of characters. Regex uses a syntax table to determine this.

#### 13.5.1.1 Emacs Syntax Tables

A syntax table is an array indexed by the characters in your character set. In the ASCII encoding, therefore, a syntax table has 256 elements.

If Regex is compiled with the preprocessor symbol `emacs` defined, then Regex expects you to define and initialize the variable `re_syntax_table` to be an Emacs syntax table. Emacs’ syntax tables are more complicated than Regex’s own (see Non-Emacs Syntax Tables). See Syntax in The GNU Emacs User’s Manual, for a description of Emacs’ syntax tables.

#### 13.5.1.2 The Match-syntactic-class Operator (`\s` class)

This operator matches any character whose syntactic class is represented by a specified character. ‘`\sclass`’ represents this operator where class is the character representing the syntactic class you want. For example, ‘`w`’ represents the syntactic class of word-constituent characters, so ‘`\sw`’ matches any word-constituent character.

#### 13.5.1.3 The Match-not-syntactic-class Operator (`\S` class)

This operator is similar to the match-syntactic-class operator except that it matches any character whose syntactic class is not represented by the specified character. ‘`\Sclass`’ represents this operator. For example, ‘`w`’ represents the syntactic class of word-constituent characters, so ‘`\Sw`’ matches any character that is not word-constituent.

### 13.6 What Gets Matched?

Regex usually matches strings according to the “leftmost longest” rule; that is, it chooses the longest of the leftmost matches. This does not mean that for a regular expression containing subexpressions that it simply chooses the longest match for each subexpression, left to right; the overall match must also be the longest possible one.

For example, ‘`(ac*)(c*d[ac]*)\1`’ matches ‘`acdacaaa`’, not ‘`acdac`’, as it would if it were to choose the longest match for the first subexpression.

### 13.7 Programming with Regex

Here we describe how you use the Regex data structures and functions in C programs. Regex has three interfaces: one designed for GNU, one compatible with POSIX (as specified by POSIX, draft 1003.2/D11.2), and one compatible with Berkeley UNIX. The POSIX interface is not documented here; see the documentation of GNU libc, or the POSIX man pages. The Berkeley UNIX interface is documented here for convenience, since its documentation is not otherwise readily available on GNU systems.

#### 13.7.1 GNU Regex Functions

If you’re writing code that doesn’t need to be compatible with either POSIX or Berkeley UNIX, you can use these functions. They provide more options than the other interfaces.

#### 13.7.1.1 GNU Pattern Buffers

To compile, match, or search for a given regular expression, you must supply a pattern buffer. A pattern buffer holds one compiled regular expression.4

You can have several different pattern buffers simultaneously, each holding a compiled pattern for a different regular expression.

`regex.h` defines the pattern buffer `struct` with the following public fields:

      unsigned char *buffer;
      unsigned long allocated;
      char *fastmap;
      char *translate;
      size_t re_nsub;
      unsigned no_sub : 1;
      unsigned not_bol : 1;
      unsigned not_eol : 1;

#### 13.7.1.2 GNU Regular Expression Compiling

In GNU, you can both match and search for a given regular expression. To do either, you must first compile it in a pattern buffer (see GNU Pattern Buffers).

Regular expressions match according to the syntax with which they were compiled; with GNU, you indicate what syntax you want by setting the variable `re_syntax_options` (declared in `regex.h`) before calling the compiling function, `re_compile_pattern` (see below). See Syntax Bits, and Predefined Syntaxes.

You can change the value of `re_syntax_options` at any time. Usually, however, you set its value once and then never change it.

`re_compile_pattern` takes a pattern buffer as an argument. You must initialize the following fields:

`translate initialization`
`translate`

  Initialize this to point to a translate table if you want one, or to zero if you don’t. We explain translate tables in GNU Translate Tables.

`fastmap`

  Initialize this to nonzero if you want a fastmap, or to zero if you don’t.

`buffer`
`allocated`

  If you want `re_compile_pattern` to allocate memory for the compiled pattern, set both of these to zero. If you have an existing block of memory (allocated with `malloc`) you want Regex to use, set `buffer` to its address and `allocated` to its size (in bytes).

  `re_compile_pattern` uses `realloc` to extend the space for the compiled pattern as necessary.

To compile a pattern buffer, use:

    char *
    re_compile_pattern (const char *regex, const int regex_size,
                        struct re_pattern_buffer *pattern_buffer)

regex is the regular expression’s address, regex_size is its length, and pattern_buffer is the pattern buffer’s address.

If `re_compile_pattern` successfully compiles the regular expression, it returns zero and sets `*pattern_buffer` to the compiled pattern. It sets the pattern buffer’s fields as follows:

`buffer`

  to the compiled pattern.

`syntax`

  to the current value of `re_syntax_options`.

`re_nsub`

  to the number of subexpressions in regex.

If `re_compile_pattern` can’t compile regex, it returns an error string corresponding to a POSIX error code.

#### 13.7.1.3 GNU Matching

Matching the GNU way means trying to match as much of a string as possible starting at a position within it you specify. Once you’ve compiled a pattern into a pattern buffer (see GNU Regular Expression Compiling), you can ask the matcher to match that pattern against a string using:

    int
    re_match (struct re_pattern_buffer *pattern_buffer,
              const char *string, const int size,
              const int start, struct re_registers *regs)

pattern_buffer is the address of a pattern buffer containing a compiled pattern. string is the string you want to match; it can contain newline and null characters. size is the length of that string. start is the string index at which you want to begin matching; the first character of string is at index zero. See Using Registers, for an explanation of regs; you can safely pass zero.

`re_match` matches the regular expression in pattern_buffer against the string string according to the syntax of pattern_buffer. (See GNU Regular Expression Compiling, for how to set it.) The function returns -1 if the compiled pattern does not match any part of string and -2 if an internal error happens; otherwise, it returns how many (possibly zero) characters of string the pattern matched.

An example: suppose pattern_buffer points to a pattern buffer containing the compiled pattern for ‘`a*`’, and string points to ‘`aaaaab`’ (whereupon size should be 6). Then if start is 2, `re_match` returns 3, i.e., ‘`a*`’ would have matched the last three ‘`a`’s in string. If start is 0, `re_match` returns 5, i.e., ‘`a*`’ would have matched all the ‘`a`’s in string. If start is either 5 or 6, it returns zero.

If start is not between zero and size, then `re_match` returns -1.

#### 13.7.1.4 GNU Searching

Searching means trying to match starting at successive positions within a string. The function `re_search` does this.

Before calling `re_search`, you must compile your regular expression. See GNU Regular Expression Compiling.

Here is the function declaration:

    int
    re_search (struct re_pattern_buffer *pattern_buffer,
               const char *string, const int size,
               const int start, const int range,
               struct re_registers *regs)

whose arguments are the same as those to `re_match` (see GNU Matching) except that the two arguments start and range replace `re_match`’s argument start.

If range is positive, then `re_search` attempts a match starting first at index start, then at start + 1 if that fails, and so on, up to start + range; if range is negative, then it attempts a match starting first at index start, then at start -1 if that fails, and so on.

If start is not between zero and size, then `re_search` returns -1. When range is positive, `re_search` adjusts range so that start + range - 1 is between zero and size, if necessary; that way it won’t search outside of string. Similarly, when range is negative, `re_search` adjusts range so that start + range + 1 is between zero and size, if necessary.

If the `fastmap` field of pattern_buffer is zero, `re_search` matches starting at consecutive positions; otherwise, it uses `fastmap` to make the search more efficient. See Searching with Fastmaps.

If no match is found, `re_search` returns -1. If a match is found, it returns the index where the match began. If an internal error happens, it returns -2.

#### 13.7.1.5 Matching and Searching with Split Data

Using the functions `re_match_2` and `re_search_2`, you can match or search in data that is divided into two strings.

The function:

    int
    re_match_2 (struct re_pattern_buffer *buffer,
                const char *string1, const int size1,
                const char *string2, const int size2,
                const int start,
                struct re_registers *regs,
                const int stop)

is similar to `re_match` (see GNU Matching) except that you pass two data strings and sizes, and an index stop beyond which you don’t want the matcher to try matching. As with `re_match`, if it succeeds, `re_match_2` returns how many characters of string it matched. Regard string1 and string2 as concatenated when you set the arguments start and stop and use the contents of regs; `re_match_2` never returns a value larger than size1 + size2.

The function:

    int
    re_search_2 (struct re_pattern_buffer *buffer,
                 const char *string1, const int size1,
                 const char *string2, const int size2,
                 const int start, const int range,
                 struct re_registers *regs,
                 const int stop)

is similarly related to `re_search`.

#### 13.7.1.6 Searching with Fastmaps

If you’re searching through a long string, you should use a fastmap. Without one, the searcher tries to match at consecutive positions in the string. Generally, most of the characters in the string could not start a match. It takes much longer to try matching at a given position in the string than it does to check in a table whether or not the character at that position could start a match. A fastmap is such a table.

More specifically, a fastmap is an array indexed by the characters in your character set. Under the ASCII encoding, therefore, a fastmap has 256 elements. If you want the searcher to use a fastmap with a given pattern buffer, you must allocate the array and assign the array’s address to the pattern buffer’s `fastmap` field. You either can compile the fastmap yourself or have `re_search` do it for you; when `fastmap` is nonzero, it automatically compiles a fastmap the first time you search using a particular compiled pattern.

By setting the bufferâs `fastmap` field before calling `re_compile_pattern`, you can reuse a buffer data structure across multiple searches with different patterns, and allocate the fastmap only once. Nonetheless, the fastmap must be recompiled each time the buffer has a new pattern compiled into it.

To compile a fastmap yourself, use:

    int
    re_compile_fastmap (struct re_pattern_buffer *pattern_buffer)

pattern_buffer is the address of a pattern buffer. If the character c could start a match for the pattern, `re_compile_fastmap` makes `pattern_buffer->fastmap[c]` nonzero. It returns 0 if it can compile a fastmap and -2 if there is an internal error. For example, if ‘`|`’ is the alternation operator and pattern_buffer holds the compiled pattern for ‘`a|b`’, then `re_compile_fastmap` sets `fastmap['a']` and `fastmap['b']` (and no others).

`re_search` uses a fastmap as it moves along in the string: it checks the string’s characters until it finds one that’s in the fastmap. Then it tries matching at that character. If the match fails, it repeats the process. So, by using a fastmap, `re_search` doesn’t waste time trying to match at positions in the string that couldn’t start a match.

If you don’t want `re_search` to use a fastmap, store zero in the `fastmap` field of the pattern buffer before calling `re_search`.

Once you’ve initialized a pattern buffer’s `fastmap` field, you need never do so again—even if you compile a new pattern in it—provided the way the field is set still reflects whether or not you want a fastmap. `re_search` will still either do nothing if `fastmap` is null or, if it isn’t, compile a new fastmap for the new pattern.

#### 13.7.1.7 GNU Translate Tables

If you set the `translate` field of a pattern buffer to a translate table, then the GNU Regex functions to which you’ve passed that pattern buffer use it to apply a simple transformation to all the regular expression and string characters at which they look.

A translate table is an array indexed by the characters in your character set. Under the ASCII encoding, therefore, a translate table has 256 elements. The array’s elements are also characters in your character set. When the Regex functions see a character c, they use `translate[c]` in its place, with one exception: the character after a ‘`\`’ is not translated. (This ensures that, the operators, e.g., ‘`\B`’ and ‘`\b`’, are always distinguishable.)

For example, a table that maps all lowercase letters to the corresponding uppercase ones would cause the matcher to ignore differences in case.5 Such a table would map all characters except lowercase letters to themselves, and lowercase letters to the corresponding uppercase ones. Under the ASCII encoding, here’s how you could initialize such a table (we’ll call it `case_fold`):

    for (i = 0; i < 256; i++)
      case_fold[i] = i;
    for (i = 'a'; i <= 'z'; i++)
      case_fold[i] = i - ('a' - 'A');

You tell Regex to use a translate table on a given pattern buffer by assigning that table’s address to the `translate` field of that buffer. If you don’t want Regex to do any translation, put zero into this field. You’ll get weird results if you change the table’s contents anytime between compiling the pattern buffer, compiling its fastmap, and matching or searching with the pattern buffer.

#### 13.7.1.8 Using Registers

A group in a regular expression can match a (possibly empty) substring of the string that regular expression as a whole matched. The matcher remembers the beginning and end of the substring matched by each group.

To find out what they matched, pass a nonzero regs argument to a GNU matching or searching function (see GNU Matching and GNU Searching), i.e., the address of a structure of this type, as defined in `regex.h`:

    struct re_registers
    {
      unsigned num_regs;
      regoff_t *start;
      regoff_t *end;
    };

Except for (possibly) the num_regs’th element (see below), the ith element of the `start` and `end` arrays records information about the ith group in the pattern. (They’re declared as C pointers, but this is only because not all C compilers accept zero-length arrays; conceptually, it is simplest to think of them as arrays.)

The `start` and `end` arrays are allocated in one of two ways. The simplest and perhaps most useful is to let the matcher (re)allocate enough space to record information for all the groups in the regular expression. If `re_set_registers` is not called before searching or matching, then the matcher allocates two arrays each of 1 + re_nsub elements (re_nsub is another field in the pattern buffer; see GNU Pattern Buffers). The extra element is set to -1. Then on subsequent calls with the same pattern buffer and regs arguments, the matcher reallocates more space if necessary.

The function:

    void
    re_set_registers (struct re_pattern_buffer *buffer,
    			      struct re_registers *regs,
    			      size_t num_regs,
    			      regoff_t *starts, regoff_t *ends)

sets regs to hold num_regs registers, storing them in starts and ends. Subsequent matches using buffer and regs will use this memory for recording register information. starts and ends must be allocated with malloc, and must each be at least num_regs * `sizeof (regoff_t)` bytes long.

If num_regs is zero, then subsequent matches should allocate their own register data.

Unless this function is called, the first search or match using buffer will allocate its own register data, without freeing the old data.

The following examples illustrate the information recorded in the `re_registers` structure. (In all of them, ‘`(`’ represents the open-group and ‘`)`’ the close-group operator. The first character in the string string is at index 0.)

- If the regular expression has an i-th group that matches a substring of string, then the function sets `regs->start[i]` to the index in string where the substring matched by the i-th group begins, and `regs->end[i]` to the index just beyond that substring’s end. The function sets `regs->start[0]` and `regs->end[0]` to analogous information about the entire pattern.

  For example, when you match ‘`((a)(b))`’ against ‘`ab`’, you get:

  - 0 in `regs->start[0]` and 2 in `regs->end[0]`
  - 0 in `regs->start[1]` and 2 in `regs->end[1]`
  - 0 in `regs->start[2]` and 1 in `regs->end[2]`
  - 1 in `regs->start[3]` and 2 in `regs->end[3]`
- If a group matches more than once (as it might if followed by, e.g., a repetition operator), then the function reports the information about what the group last matched.

  For example, when you match the pattern ‘`(a)*`’ against the string ‘`aa`’, you get:

  - 0 in `regs->start[0]` and 2 in `regs->end[0]`
  - 1 in `regs->start[1]` and 2 in `regs->end[1]`
- If the i-th group does not participate in a successful match, e.g., it is an alternative not taken or a repetition operator allows zero repetitions of it, then the function sets `regs->start[i]` and `regs->end[i]` to -1.

  For example, when you match the pattern ‘`(a)*b`’ against the string ‘`b`’, you get:

  - 0 in `regs->start[0]` and 1 in `regs->end[0]`
  - -1 in `regs->start[1]` and -1 in `regs->end[1]`
- If the i-th group matches a zero-length string, then the function sets `regs->start[i]` and `regs->end[i]` to the index just beyond that zero-length string.

  For example, when you match the pattern ‘`(a*)b`’ against the string ‘`b`’, you get:

  - 0 in `regs->start[0]` and 1 in `regs->end[0]`
  - 0 in `regs->start[1]` and 0 in `regs->end[1]`
- If an i-th group contains a j-th group in turn not contained within any other group within group i and the function reports a match of the i-th group, then it records in `regs->start[j]` and `regs->end[j]` the last match (if it matched) of the j-th group.

  For example, when you match the pattern ‘`((a*)b)*`’ against the string ‘`abb`’, group 2 last matches the empty string, so you get what it previously matched:

  - 0 in `regs->start[0]` and 3 in `regs->end[0]`
  - 2 in `regs->start[1]` and 3 in `regs->end[1]`
  - 2 in `regs->start[2]` and 2 in `regs->end[2]`

  When you match the pattern ‘`((a)*b)*`’ against the string ‘`abb`’, group 2 doesn’t participate in the last match, so you get:

  - 0 in `regs->start[0]` and 3 in `regs->end[0]`
  - 2 in `regs->start[1]` and 3 in `regs->end[1]`
  - 0 in `regs->start[2]` and 1 in `regs->end[2]`
- If an i-th group contains a j-th group in turn not contained within any other group within group i and the function sets `regs->start[i]` and `regs->end[i]` to -1, then it also sets `regs->start[j]` and `regs->end[j]` to -1.

  For example, when you match the pattern ‘`((a)*b)*c`’ against the string ‘`c`’, you get:

  - 0 in `regs->start[0]` and 1 in `regs->end[0]`
  - -1 in `regs->start[1]` and -1 in `regs->end[1]`
  - -1 in `regs->start[2]` and -1 in `regs->end[2]`

#### 13.7.1.9 Freeing GNU Pattern Buffers

To free any allocated fields of a pattern buffer, use the POSIX function `regfree`:

    void
    regfree (regex_t *preg)

preg is the pattern buffer whose allocated fields you want freed; this works because since the type `regex_t`—the type for POSIX pattern buffers—is equivalent to the type `re_pattern_buffer`.

`regfree` also sets preg’s `allocated` field to zero. After a buffer has been freed, it must have a regular expression compiled in it before passing it to a matching or searching function.

#### 13.7.2 BSD Regex Functions

If you’re writing code that has to be Berkeley UNIX compatible, you’ll need to use these functions whose interfaces are the same as those in Berkeley UNIX.

#### 13.7.2.1 BSD Regular Expression Compiling

With Berkeley UNIX, you can only search for a given regular expression; you can’t match one. To search for it, you must first compile it. Before you compile it, you must indicate the regular expression syntax you want it compiled according to by setting the variable `re_syntax_options` (declared in `regex.h` to some syntax (see Regular Expression Syntax).

To compile a regular expression use:

    char *
    re_comp (char *regex)

regex is the address of a null-terminated regular expression. `re_comp` uses an internal pattern buffer, so you can use only the most recently compiled pattern buffer. This means that if you want to use a given regular expression that you’ve already compiled—but it isn’t the latest one you’ve compiled—you’ll have to recompile it. If you call `re_comp` with the null string (not the empty string) as the argument, it doesn’t change the contents of the pattern buffer.

If `re_comp` successfully compiles the regular expression, it returns zero. If it can’t compile the regular expression, it returns an error string. `re_comp`’s error messages are identical to those of `re_compile_pattern` (see GNU Regular Expression Compiling).

#### 13.7.2.2 BSD Searching

Searching the Berkeley UNIX way means searching in a string starting at its first character and trying successive positions within it to find a match. Once you’ve compiled a pattern using `re_comp` (see BSD Regular Expression Compiling), you can ask Regex to search for that pattern in a string using:

    int
    re_exec (char *string)

string is the address of the null-terminated string in which you want to search.

`re_exec` returns either 1 for success or 0 for failure. It automatically uses a GNU fastmap (see Searching with Fastmaps).

### 13.8 Regular expression syntaxes

Gnulib supports many different types of regular expressions; although the underlying features are the same or identical, the syntax used varies. The descriptions given here for the different types are generated automatically.

#### 13.8.1 ‘`awk`’ regular expression syntax

The character ‘`.`’ matches any single character except the null character.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are invalid. Within square brackets, ‘`\`’ can be used to quote the following character. Character classes are not supported, so for example you would need to use ‘`[0-9]`’ instead of ‘`[[:digit:]]`’.

GNU extensions are not supported and so ‘`\w`’, ‘`\W`’, ‘`\<`’, ‘`\>`’, ‘`\b`’, ‘`\B`’, ‘`\``’, and ‘`\'`’ match ‘`w`’, ‘`W`’, ‘`<`’, ‘`>`’, ‘`b`’, ‘`B`’, ‘```’, and ‘`'`’ respectively.

Grouping is performed with parentheses ‘`()`’. An unmatched ‘`)`’ matches just itself. A backslash followed by a digit matches that digit.

The alternation operator is ‘`|`’.

The characters ‘`^`’ and ‘`$`’ always represent the beginning and end of a string respectively, except within square brackets. Within brackets, ‘`^`’ can be used to invert the membership of the character class being specified.

‘`*`’, ‘`+`’ and ‘`?`’ are special at any point in a regular expression except:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`(`’
3. After the alternation operator ‘`|`’

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.2 ‘`egrep`’ regular expression syntax

The character ‘`.`’ matches any single character except newline.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are ignored. Within square brackets, ‘`\`’ is taken literally. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit. Non-matching lists ‘`[^…]`’ do not ever match newline.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with parentheses ‘`()`’. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`(`’.

The alternation operator is ‘`|`’.

The characters ‘`^`’ and ‘`$`’ always represent the beginning and end of a string respectively, except within square brackets. Within brackets, ‘`^`’ can be used to invert the membership of the character class being specified.

The characters ‘`*`’, ‘`+`’ and ‘`?`’ are special anywhere in a regular expression.

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.3 ‘`ed`’ regular expression syntax

The character ‘`.`’ matches any single character except the null character.

‘`\+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`\?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`+ and ?`’

  match themselves.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are invalid. Within square brackets, ‘`\`’ is taken literally. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with backslashes followed by parentheses ‘`\(`’, ‘`\)`’. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`\(`’.

The alternation operator is ‘`\|`’.

The character ‘`^`’ only represents the beginning of a string when it appears:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’
3. After the alternation operator ‘`\|`’

The character ‘`$`’ only represents the end of a string when it appears:

1. At the end of a regular expression
2. Before a close-group, signified by ‘`\)`’
3. Before the alternation operator ‘`\|`’

‘`\*`’, ‘`\+`’ and ‘`\?`’ are special at any point in a regular expression except:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’
3. After the alternation operator ‘`\|`’

Intervals are specified by ‘`\{`’ and ‘`\}`’. Invalid intervals such as ‘`a\{1z`’ are not accepted.

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.4 ‘`emacs`’ regular expression syntax

The character ‘`.`’ matches any single character except newline.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are ignored. Within square brackets, ‘`\`’ is taken literally. Character classes are not supported, so for example you would need to use ‘`[0-9]`’ instead of ‘`[[:digit:]]`’.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with backslashes followed by parentheses ‘`\(`’, ‘`\)`’. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`\(`’.

The alternation operator is ‘`\|`’.

The character ‘`^`’ only represents the beginning of a string when it appears:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’
3. After the alternation operator ‘`\|`’

The character ‘`$`’ only represents the end of a string when it appears:

1. At the end of a regular expression
2. Before a close-group, signified by ‘`\)`’
3. Before the alternation operator ‘`\|`’

‘`*`’, ‘`+`’ and ‘`?`’ are special at any point in a regular expression except:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’
3. After the alternation operator ‘`\|`’

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.5 ‘`gnu-awk`’ regular expression syntax

The character ‘`.`’ matches any single character.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are invalid. Within square brackets, ‘`\`’ can be used to quote the following character. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with parentheses ‘`()`’. An unmatched ‘`)`’ matches just itself. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`(`’.

The alternation operator is ‘`|`’.

The characters ‘`^`’ and ‘`$`’ always represent the beginning and end of a string respectively, except within square brackets. Within brackets, ‘`^`’ can be used to invert the membership of the character class being specified.

‘`*`’, ‘`+`’ and ‘`?`’ are special at any point in a regular expression except:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`(`’
3. After the alternation operator ‘`|`’

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.6 ‘`grep`’ regular expression syntax

The character ‘`.`’ matches any single character except newline.

‘`\+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`\?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`+ and ?`’

  match themselves.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are ignored. Within square brackets, ‘`\`’ is taken literally. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit. Non-matching lists ‘`[^…]`’ do not ever match newline.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with backslashes followed by parentheses ‘`\(`’, ‘`\)`’. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`\(`’.

The alternation operator is ‘`\|`’.

The character ‘`^`’ only represents the beginning of a string when it appears:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’
3. After a newline
4. After the alternation operator ‘`\|`’

The character ‘`$`’ only represents the end of a string when it appears:

1. At the end of a regular expression
2. Before a close-group, signified by ‘`\)`’
3. Before a newline
4. Before the alternation operator ‘`\|`’

‘`\*`’, ‘`\+`’ and ‘`\?`’ are special at any point in a regular expression except:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’
3. After a newline
4. After the alternation operator ‘`\|`’

Intervals are specified by ‘`\{`’ and ‘`\}`’. Invalid intervals such as ‘`a\{1z`’ are not accepted.

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.7 ‘`posix-awk`’ regular expression syntax

The character ‘`.`’ matches any single character except the null character.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are invalid. Within square brackets, ‘`\`’ can be used to quote the following character. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit.

GNU extensions are not supported and so ‘`\w`’, ‘`\W`’, ‘`\<`’, ‘`\>`’, ‘`\b`’, ‘`\B`’, ‘`\``’, and ‘`\'`’ match ‘`w`’, ‘`W`’, ‘`<`’, ‘`>`’, ‘`b`’, ‘`B`’, ‘```’, and ‘`'`’ respectively.

Grouping is performed with parentheses ‘`()`’. An unmatched ‘`)`’ matches just itself. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`(`’.

The alternation operator is ‘`|`’.

The characters ‘`^`’ and ‘`$`’ always represent the beginning and end of a string respectively, except within square brackets. Within brackets, ‘`^`’ can be used to invert the membership of the character class being specified.

‘`*`’, ‘`+`’ and ‘`?`’ are special at any point in a regular expression except the following places, where they are not allowed:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`(`’
3. After the alternation operator ‘`|`’

Intervals are specified by ‘`{`’ and ‘`}`’. Invalid intervals such as ‘`a{1z`’ are not accepted.

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.8 ‘`posix-basic`’ regular expression syntax

This is a synonym for ed.

#### 13.8.9 ‘`posix-egrep`’ regular expression syntax

The character ‘`.`’ matches any single character except newline.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are ignored. Within square brackets, ‘`\`’ is taken literally. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit. Non-matching lists ‘`[^…]`’ do not ever match newline.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with parentheses ‘`()`’. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`(`’.

The alternation operator is ‘`|`’.

The characters ‘`^`’ and ‘`$`’ always represent the beginning and end of a string respectively, except within square brackets. Within brackets, ‘`^`’ can be used to invert the membership of the character class being specified.

The characters ‘`*`’, ‘`+`’ and ‘`?`’ are special anywhere in a regular expression.

Intervals are specified by ‘`{`’ and ‘`}`’. Invalid intervals are treated as literals, for example ‘`a{1`’ is treated as ‘`a\{1`’

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.10 ‘`posix-extended`’ regular expression syntax

The character ‘`.`’ matches any single character except the null character.

‘`+`’

  indicates that the regular expression should match one or more occurrences of the previous atom or regexp.

‘`?`’

  indicates that the regular expression should match zero or one occurrence of the previous atom or regexp.

‘`\+`’

  matches a ‘`+`’

‘`\?`’

  matches a ‘`?`’.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are invalid. Within square brackets, ‘`\`’ is taken literally. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with parentheses ‘`()`’. An unmatched ‘`)`’ matches just itself. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`(`’.

The alternation operator is ‘`|`’.

The characters ‘`^`’ and ‘`$`’ always represent the beginning and end of a string respectively, except within square brackets. Within brackets, ‘`^`’ can be used to invert the membership of the character class being specified.

‘`*`’, ‘`+`’ and ‘`?`’ are special at any point in a regular expression except the following places, where they are not allowed:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`(`’
3. After the alternation operator ‘`|`’

Intervals are specified by ‘`{`’ and ‘`}`’. Invalid intervals such as ‘`a{1z`’ are not accepted.

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.11 ‘`posix-minimal-basic`’ regular expression syntax

The character ‘`.`’ matches any single character except the null character.

Bracket expressions are used to match ranges of characters. Bracket expressions where the range is backward, for example ‘`[z-a]`’, are invalid. Within square brackets, ‘`\`’ is taken literally. Character classes are supported; for example ‘`[[:digit:]]`’ will match a single decimal digit.

GNU extensions are supported:

1. ‘`\w`’ matches a character within a word
2. ‘`\W`’ matches a character which is not within a word
3. ‘`\<`’ matches the beginning of a word
4. ‘`\>`’ matches the end of a word
5. ‘`\b`’ matches a word boundary
6. ‘`\B`’ matches characters which are not a word boundary
7. ‘`\``’ matches the beginning of the whole input
8. ‘`\'`’ matches the end of the whole input

Grouping is performed with backslashes followed by parentheses ‘`\(`’, ‘`\)`’. A backslash followed by a digit acts as a back-reference and matches the same thing as the previous grouped expression indicated by that number. For example ‘`\2`’ matches the second group expression. The order of group expressions is determined by the position of their opening parenthesis ‘`\(`’.

The character ‘`^`’ only represents the beginning of a string when it appears:

1. At the beginning of a regular expression
2. After an open-group, signified by ‘`\(`’

The character ‘`$`’ only represents the end of a string when it appears:

1. At the end of a regular expression
2. Before a close-group, signified by ‘`\)`’

Intervals are specified by ‘`\{`’ and ‘`\}`’. Invalid intervals such as ‘`a\{1z`’ are not accepted.

The longest possible match is returned; this applies to the regular expression as a whole and (subject to this constraint) to subexpressions within groups.

#### 13.8.12 ‘`sed`’ regular expression syntax

This is a synonym for ed.

## Appendix A GNU Free Documentation License

Version 1.3, 3 November 2008

    Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
    http://fsf.org/

    Everyone is permitted to copy and distribute verbatim copies
    of this license document, but changing it is not allowed.

1. PREAMBLE

   The purpose of this License is to make a manual, textbook, or other functional and useful document free in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

   This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

   We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

2. APPLICABILITY AND DEFINITIONS

   This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The “Document”, below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as “you”. You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law.

   A “Modified Version” of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language.

   A “Secondary Section” is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document’s overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them.

   The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

   The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

   A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.

   Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

   The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.

   The “publisher” means any person or entity that distributes copies of the Document to the public.

   A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.

   The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

3. VERBATIM COPYING

   You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3.

   You may also lend copies, under the same conditions stated above, and you may publicly display copies.

4. COPYING IN QUANTITY

   If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document’s license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects.

   If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.

   If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public.

   It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document.

5. MODIFICATIONS

   You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version:

   1. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission.
   2. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement.
   3. State on the Title page the name of the publisher of the Modified Version, as the publisher.
   4. Preserve all the copyright notices of the Document.
   5. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices.
   6. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below.
   7. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document’s license notice.
   8. Include an unaltered copy of this License.
   9. Preserve the section Entitled “History”, Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled “History” in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.
   10. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the “History” section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission.
   11. For any section Entitled “Acknowledgements” or “Dedications”, Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein.
   12. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles.
   13. Delete any section Entitled “Endorsements”. Such a section may not be included in the Modified Version.
   14. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in title with any Invariant Section.
   15. Preserve any Warranty Disclaimers.

   If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version’s license notice. These titles must be distinct from any other section titles.

   You may add a section Entitled “Endorsements”, provided it contains nothing but endorsements of your Modified Version by various parties—for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard.

   You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one.

   The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version.

6. COMBINING DOCUMENTS

   You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers.

   The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work.

   In the combination, you must combine any sections Entitled “History” in the various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”

7. COLLECTIONS OF DOCUMENTS

   You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects.

   You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

8. AGGREGATION WITH INDEPENDENT WORKS

   A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an “aggregate” if the copyright resulting from the compilation is not used to limit the legal rights of the compilation’s users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document.

   If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document’s Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate.

9. TRANSLATION

   Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail.

   If a section in the Document is Entitled “Acknowledgements”, “Dedications”, or “History”, the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title.

10. TERMINATION

    You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License.

    However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation.

    Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice.

    Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it.

11. FUTURE REVISIONS OF THIS LICENSE

    The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft/.

    Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License “or any later version” applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy’s public statement of acceptance of a version permanently authorizes you to choose that version for the Document.

12. RELICENSING

    “Massive Multiauthor Collaboration Site” (or “MMC Site”) means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A “Massive Multiauthor Collaboration” (or “MMC”) contained in the site means any set of copyrightable works thus published on the MMC site.

    “CC-BY-SA” means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization.

    “Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document.

    An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008.

    The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

### ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

      Copyright (C)  year  your name.
      Permission is granted to copy, distribute and/or modify this document
      under the terms of the GNU Free Documentation License, Version 1.3
      or any later version published by the Free Software Foundation;
      with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
      Texts.  A copy of the license is included in the section entitled ``GNU
      Free Documentation License''.

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with…Texts.” line with this:

        with the Invariant Sections being list their titles, with
        the Front-Cover Texts being list, and with the Back-Cover Texts
        being list.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

## Index

Jump to: | $ ( ) * + - . = ? [ \ ] ^ _ { | } A B C D E F G H I J K L M N O P Q R S T U V W X Y

| Index Entry |  | Section

$ |  |
| `$`: |  | Match-end-of-line Operator

( |  |
| `(`: |  | Grouping Operators

) |  |
| `)`: |  | Grouping Operators

* |  |
| ‘`*`’: |  | Match-zero-or-more Operator

+ |  |
| ‘`+`’: |  | Match-one-or-more Operator

- |  |
| ‘`-`’: |  | List Operators

. |  |
| ‘`.`’: |  | Match-any-character Operator

= |  |
| ‘`=]`’ in regex: |  | Equivalence Class Operators

? |  |
| ‘`?`’: |  | Match-zero-or-one Operator

[ |  |
| ‘`[`’: |  | List Operators
| ‘`[=`’ in regex: |  | Equivalence Class Operators
| ‘`[colon`’ in regex: |  | Character Class Operators
| ‘`[^`’: |  | List Operators

\ |  |
| \: |  | The Backslash Character
| ‘`\`’: |  | List Operators
| ‘`\'`’: |  | Match-end-of-buffer Operator
| `\(`: |  | Grouping Operators
| `\)`: |  | Grouping Operators
| ‘`\<`’: |  | Match-beginning-of-word Operator
| ‘`\>`’: |  | Match-end-of-word Operator
| ‘`\b`’: |  | Match-word-boundary Operator
| ‘`\B`’: |  | Match-within-word Operator
| ‘`\s`’: |  | Match-syntactic-class Operator
| ‘`\S`’: |  | Match-not-syntactic-class Operator
| ‘`\w`’: |  | Match-word-constituent Operator
| ‘`\W`’: |  | Match-non-word-constituent Operator
| ‘`\``’: |  | Match-beginning-of-buffer Operator
| ‘`\{`’: |  | Interval Operators
| `\|`: |  | Alternation Operator
| ‘`\}`’: |  | Interval Operators

] |  |
| ‘`]`’: |  | List Operators

^ |  |
| `^`: |  | Match-beginning-of-line Operator
| ‘`^`’: |  | List Operators

_ |  |
| `_Exit`: |  | _Exit
| `_exit`: |  | _exit
| `_longjmp`: |  | _longjmp
| `_setjmp`: |  | _setjmp
| `_tolower`: |  | _tolower
| `_toupper`: |  | _toupper

{ |  |
| ‘`{`’: |  | Interval Operators

| `|`: |  | Alternation Operator

} |  |
| ‘`}`’: |  | Interval Operators

A |  |
| `a64l`: |  | a64l
| `abort`: |  | abort
| Aborting execution: |  | Out of memory handling
| `abs`: |  | abs
| `accept`: |  | accept
| `accept4`: |  | accept4
| `access`: |  | access
| `acct`: |  | acct
| `acos`: |  | acos
| `acosf`: |  | acosf
| `acosh`: |  | acosh
| `acoshf`: |  | acoshf
| `acoshl`: |  | acoshl
| `acosl`: |  | acosl
| ``AC_LIB_HAVE_LINKFLAGS(name, [dependencies], [includes], [testcode], [missing-message])``: |  | Searching for Libraries
| ``AC_LIB_LINKFLAGS(name, [dependencies])``: |  | Searching for Libraries
| `addmntent`: |  | addmntent
| `addseverity`: |  | addseverity
| `adjtime`: |  | adjtime
| `adjtimex`: |  | adjtimex
| `advance`: |  | advance
| `aio_cancel`: |  | aio_cancel
| `aio_error`: |  | aio_error
| `aio_fsync`: |  | aio_fsync
| `aio_init`: |  | aio_init
| `aio_read`: |  | aio_read
| `aio_return`: |  | aio_return
| `aio_suspend`: |  | aio_suspend
| `aio_write`: |  | aio_write
| `alarm`: |  | alarm
| `aligned_alloc`: |  | aligned_alloc
| `ALLOC`: |  | Safe Allocation Macros
| `alloca`: |  | alloca
| `alloca`: |  | alloca-opt
| `allocated initialization`: |  | GNU Regular Expression Compiling
| `ALLOC_N`: |  | Safe Allocation Macros
| `ALLOC_N_UNINITIALIZED`: |  | Safe Allocation Macros
| `alphasort`: |  | alphasort
| alternation operator: |  | Alternation Operator
| alternation operator and ‘`^`’: |  | Match-beginning-of-line Operator
| anchoring: |  | Anchoring Operators
| anchors: |  | Match-beginning-of-line Operator
| anchors: |  | Match-end-of-line Operator
| `argp_error`: |  | argp_error
| `argp_err_exit_status`: |  | argp_err_exit_status
| `argp_failure`: |  | argp_failure
| `argp_help`: |  | argp_help
| `argp_parse`: |  | argp_parse
| `argp_program_bug_address`: |  | argp_program_bug_address
| `argp_program_version`: |  | argp_program_version
| `argp_program_version_hook`: |  | argp_program_version_hook
| `argp_state_help`: |  | argp_state_help
| `argp_usage`: |  | argp_usage
| `argz_add`: |  | argz_add
| `argz_add_sep`: |  | argz_add_sep
| `argz_append`: |  | argz_append
| `argz_count`: |  | argz_count
| `argz_create`: |  | argz_create
| `argz_create_sep`: |  | argz_create_sep
| `argz_delete`: |  | argz_delete
| `argz_extract`: |  | argz_extract
| `argz_insert`: |  | argz_insert
| `argz_next`: |  | argz_next
| `argz_replace`: |  | argz_replace
| `argz_stringify`: |  | argz_stringify
| `asctime`: |  | asctime
| `asctime_r`: |  | asctime_r
| `asin`: |  | asin
| `asinf`: |  | asinf
| `asinh`: |  | asinh
| `asinhf`: |  | asinhf
| `asinhl`: |  | asinhl
| `asinl`: |  | asinl
| `asprintf`: |  | asprintf
| `assert`: |  | assert
| assertion: |  | Compile-time Assertions
| `atan`: |  | atan
| `atan2`: |  | atan2
| `atan2f`: |  | atan2f
| `atan2l`: |  | atan2l
| `atanf`: |  | atanf
| `atanh`: |  | atanh
| `atanhf`: |  | atanhf
| `atanhl`: |  | atanhl
| `atanl`: |  | atanl
| `atexit`: |  | atexit
| `atof`: |  | atof
| `atoi`: |  | atoi
| `atol`: |  | atol
| `atoll`: |  | atoll
| `authdes_create`: |  | authdes_create
| `authdes_getucred`: |  | authdes_getucred
| `authdes_pk_create`: |  | authdes_pk_create
| `authnone_create`: |  | authnone_create
| `authunix_create`: |  | authunix_create
| `authunix_create_default`: |  | authunix_create_default
| autopoint, caveat: |  | gettextize and autopoint
| Awk: |  | Predefined Syntaxes

B |  |
| back references: |  | Back-reference Operator
| `backtrace`: |  | backtrace
| `backtrace_symbols`: |  | backtrace_symbols
| `backtrace_symbols_fd`: |  | backtrace_symbols_fd
| backtracking: |  | Match-zero-or-more Operator
| backtracking: |  | Alternation Operator
| `basename`: |  | basename
| `bcmp`: |  | bcmp
| `bcopy`: |  | bcopy
| `bdflush`: |  | bdflush
| beginning-of-line operator: |  | Match-beginning-of-line Operator
| `bind`: |  | bind
| `bindresvport`: |  | bindresvport
| `bindtextdomain`: |  | bindtextdomain
| `bind_textdomain_codeset`: |  | bind_textdomain_codeset
| block size: |  | stat-size
| bracket expression: |  | List Operators
| `brk`: |  | brk
| `bsd_signal`: |  | bsd_signal
| `bsearch`: |  | bsearch
| `bswap_16`: |  | bswap_16
| `bswap_32`: |  | bswap_32
| `bswap_64`: |  | bswap_64
| `btowc`: |  | btowc
| `buffer field, set by `re_compile_pattern``: |  | GNU Regular Expression Compiling
| `buffer initialization`: |  | GNU Regular Expression Compiling
| `bzero`: |  | bzero

C |  |
| C++ header files: |  | Header files
| C++ tests modules: |  | Extra tests modules
| `c16rtomb`: |  | c16rtomb
| `c32rtomb`: |  | c32rtomb
| `cabs`: |  | cabs
| `cabsf`: |  | cabsf
| `cabsl`: |  | cabsl
| `cacos`: |  | cacos
| `cacosf`: |  | cacosf
| `cacosh`: |  | cacosh
| `cacoshf`: |  | cacoshf
| `cacoshl`: |  | cacoshl
| `cacosl`: |  | cacosl
| `calloc`: |  | calloc
| `callrpc`: |  | callrpc
| `canonicalize_file_name`: |  | canonicalize_file_name
| `capget`: |  | capget
| `capset`: |  | capset
| `carg`: |  | carg
| `cargf`: |  | cargf
| `cargl`: |  | cargl
| `casin`: |  | casin
| `casinf`: |  | casinf
| `casinh`: |  | casinh
| `casinhf`: |  | casinhf
| `casinhl`: |  | casinhl
| `casinl`: |  | casinl
| `catan`: |  | catan
| `catanf`: |  | catanf
| `catanh`: |  | catanh
| `catanhf`: |  | catanhf
| `catanhl`: |  | catanhl
| `catanl`: |  | catanl
| `catclose`: |  | catclose
| `catgets`: |  | catgets
| `catopen`: |  | catopen
| `cbc_crypt`: |  | cbc_crypt
| `cbrt`: |  | cbrt
| `cbrtf`: |  | cbrtf
| `cbrtl`: |  | cbrtl
| `ccos`: |  | ccos
| `ccosf`: |  | ccosf
| `ccosh`: |  | ccosh
| `ccoshf`: |  | ccoshf
| `ccoshl`: |  | ccoshl
| `ccosl`: |  | ccosl
| `ceil`: |  | ceil
| `ceilf`: |  | ceilf
| `ceill`: |  | ceill
| `cexp`: |  | cexp
| `cexpf`: |  | cexpf
| `cexpl`: |  | cexpl
| `cfgetispeed`: |  | cfgetispeed
| `cfgetospeed`: |  | cfgetospeed
| `cfmakeraw`: |  | cfmakeraw
| `cfree`: |  | cfree
| `cfsetispeed`: |  | cfsetispeed
| `cfsetospeed`: |  | cfsetospeed
| `cfsetspeed`: |  | cfsetspeed
| character classes: |  | Character Class Operators
| `chdir`: |  | chdir
| `chmod`: |  | chmod
| `chown`: |  | chown
| `chroot`: |  | chroot
| `cimag`: |  | cimag
| `cimagf`: |  | cimagf
| `cimagl`: |  | cimagl
| `clearenv`: |  | clearenv
| `clearerr`: |  | clearerr
| `clearerr_unlocked`: |  | clearerr_unlocked
| `clntraw_create`: |  | clntraw_create
| `clnttcp_create`: |  | clnttcp_create
| `clntudp_bufcreate`: |  | clntudp_bufcreate
| `clntudp_create`: |  | clntudp_create
| `clntunix_create`: |  | clntunix_create
| `clnt_broadcast`: |  | clnt_broadcast
| `clnt_create`: |  | clnt_create
| `clnt_pcreateerror`: |  | clnt_pcreateerror
| `clnt_perrno`: |  | clnt_perrno
| `clnt_perror`: |  | clnt_perror
| `clnt_spcreateerror`: |  | clnt_spcreateerror
| `clnt_sperrno`: |  | clnt_sperrno
| `clnt_sperror`: |  | clnt_sperror
| `clock`: |  | clock
| `clock_adjtime`: |  | clock_adjtime
| `clock_getcpuclockid`: |  | clock_getcpuclockid
| `clock_getres`: |  | clock_getres
| `clock_gettime`: |  | clock_gettime
| `clock_nanosleep`: |  | clock_nanosleep
| `clock_settime`: |  | clock_settime
| `clog`: |  | clog
| `clog10`: |  | clog10
| `clog10f`: |  | clog10f
| `clog10l`: |  | clog10l
| `clogf`: |  | clogf
| `clogl`: |  | clogl
| `clone`: |  | clone
| `close`: |  | close
| `closedir`: |  | closedir
| `closelog`: |  | closelog
| ‘`colon]`’ in regex: |  | Character Class Operators
| comments describing functions: |  | Specification
| conditional dependencies: |  | Conditional dependencies
| `configmake module`: |  | configmake
| `configmake.h`, module for updating: |  | configmake
| `confstr`: |  | confstr
| `conj`: |  | conj
| `conjf`: |  | conjf
| `conjl`: |  | conjl
| `connect`: |  | connect
| `copysign`: |  | copysign
| `copysignf`: |  | copysignf
| `copysignl`: |  | copysignl
| `cos`: |  | cos
| `cosf`: |  | cosf
| `cosh`: |  | cosh
| `coshf`: |  | coshf
| `coshl`: |  | coshl
| `cosl`: |  | cosl
| `cpow`: |  | cpow
| `cpowf`: |  | cpowf
| `cpowl`: |  | cpowl
| `cproj`: |  | cproj
| `cprojf`: |  | cprojf
| `cprojl`: |  | cprojl
| `creal`: |  | creal
| `crealf`: |  | crealf
| `creall`: |  | creall
| `creat`: |  | creat
| `crypt`: |  | crypt
| `crypt_r`: |  | crypt_r
| `csin`: |  | csin
| `csinf`: |  | csinf
| `csinh`: |  | csinh
| `csinhf`: |  | csinhf
| `csinhl`: |  | csinhl
| `csinl`: |  | csinl
| `csqrt`: |  | csqrt
| `csqrtf`: |  | csqrtf
| `csqrtl`: |  | csqrtl
| `ctan`: |  | ctan
| `ctanf`: |  | ctanf
| `ctanh`: |  | ctanh
| `ctanhf`: |  | ctanhf
| `ctanhl`: |  | ctanhl
| `ctanl`: |  | ctanl
| `ctermid`: |  | ctermid
| `ctime`: |  | ctime
| `ctime_r`: |  | ctime_r
| `cuserid`: |  | cuserid

D |  |
| `daemon`: |  | daemon
| `daylight`: |  | daylight
| `dbm_clearerr`: |  | dbm_clearerr
| `dbm_close`: |  | dbm_close
| `dbm_delete`: |  | dbm_delete
| `dbm_error`: |  | dbm_error
| `dbm_fetch`: |  | dbm_fetch
| `dbm_firstkey`: |  | dbm_firstkey
| `dbm_nextkey`: |  | dbm_nextkey
| `dbm_open`: |  | dbm_open
| `dbm_store`: |  | dbm_store
| `dcgettext`: |  | dcgettext
| `dcngettext`: |  | dcngettext
| DEF files: |  | Visual Studio Compatibility
| describing functions, locating: |  | Specification
| `des_setparity`: |  | des_setparity
| `dgettext`: |  | dgettext
| `difftime`: |  | difftime
| `dirfd`: |  | dirfd
| `dirname`: |  | dirname
| `div`: |  | div
| `dladdr`: |  | dladdr
| `dladdr1`: |  | dladdr1
| `dlclose`: |  | dlclose
| `dlerror`: |  | dlerror
| `dlinfo`: |  | dlinfo
| `dlmopen`: |  | dlmopen
| `dlopen`: |  | dlopen
| `dlsym`: |  | dlsym
| `dlvsym`: |  | dlvsym
| `dl_iterate_phdr`: |  | dl_iterate_phdr
| `dngettext`: |  | dngettext
| `dn_expand`: |  | dn_expand
| double inclusion of header files: |  | Header files
| `dprintf`: |  | dprintf
| `drand48`: |  | drand48
| `drand48_r`: |  | drand48_r
| `drem`: |  | drem
| `dremf`: |  | dremf
| `dreml`: |  | dreml
| `dup`: |  | dup
| `dup2`: |  | dup2
| `dup3`: |  | dup3
| `duplocale`: |  | duplocale
| `dysize`: |  | dysize

E |  |
| `ecb_crypt`: |  | ecb_crypt
| `ecvt`: |  | ecvt
| `ecvt_r`: |  | ecvt_r
| Egrep: |  | Predefined Syntaxes
| Emacs: |  | Predefined Syntaxes
| `encrypt`: |  | encrypt
| `encrypt_r`: |  | encrypt_r
| `end in `struct re_registers``: |  | Using Registers
| end-of-line operator: |  | Match-end-of-line Operator
| `endaliasent`: |  | endaliasent
| `endfsent`: |  | endfsent
| `endgrent`: |  | endgrent
| `endhostent`: |  | endhostent
| `endmntent`: |  | endmntent
| `endnetent`: |  | endnetent
| `endnetgrent`: |  | endnetgrent
| `endprotoent`: |  | endprotoent
| `endpwent`: |  | endpwent
| `endrpcent`: |  | endrpcent
| `endservent`: |  | endservent
| `endsgent`: |  | endsgent
| `endspent`: |  | endspent
| `endttyent`: |  | endttyent
| `endusershell`: |  | endusershell
| `endutent`: |  | endutent
| `endutxent`: |  | endutxent
| `environ`: |  | environ
| `envz_add`: |  | envz_add
| `envz_entry`: |  | envz_entry
| `envz_get`: |  | envz_get
| `envz_merge`: |  | envz_merge
| `envz_remove`: |  | envz_remove
| `envz_strip`: |  | envz_strip
| `epoll_create`: |  | epoll_create
| `epoll_ctl`: |  | epoll_ctl
| `epoll_wait`: |  | epoll_wait
| equivalence class expression in regex: |  | Equivalence Class Operators
| `erand48`: |  | erand48
| `erand48_r`: |  | erand48_r
| `erf`: |  | erf
| `erfc`: |  | erfc
| `erfcf`: |  | erfcf
| `erfcl`: |  | erfcl
| `erff`: |  | erff
| `erfl`: |  | erfl
| `err`: |  | err
| `errno`: |  | errno
| `error`: |  | error
| `error`: |  | error and progname
| `error_at_line`: |  | error_at_line
| `error_message_count`: |  | error_message_count
| `error_one_per_line`: |  | error_one_per_line
| `error_print_progname`: |  | error_print_progname
| `errx`: |  | errx
| `ether_aton`: |  | ether_aton
| `ether_aton_r`: |  | ether_aton_r
| `ether_hostton`: |  | ether_hostton
| `ether_line`: |  | ether_line
| `ether_ntoa`: |  | ether_ntoa
| `ether_ntoa_r`: |  | ether_ntoa_r
| `ether_ntohost`: |  | ether_ntohost
| `euidaccess`: |  | euidaccess
| `execl`: |  | execl
| `execle`: |  | execle
| `execlp`: |  | execlp
| `execv`: |  | execv
| `execve`: |  | execve
| `execvp`: |  | execvp
| `execvpe`: |  | execvpe
| `exit`: |  | exit
| `exp`: |  | exp
| `exp10`: |  | exp10
| `exp10f`: |  | exp10f
| `exp10l`: |  | exp10l
| `exp2`: |  | exp2
| `exp2f`: |  | exp2f
| `exp2l`: |  | exp2l
| `expf`: |  | expf
| `expl`: |  | expl
| `expm1`: |  | expm1
| `expm1f`: |  | expm1f
| `expm1l`: |  | expm1l
| Extra tests modules: |  | Extra tests modules

F |  |
| `fabs`: |  | fabs
| `fabsf`: |  | fabsf
| `fabsl`: |  | fabsl
| `faccessat`: |  | faccessat
| `fallocate`: |  | fallocate
| `fanotify_init`: |  | fanotify_init
| `fanotify_mark`: |  | fanotify_mark
| `fastmap initialization`: |  | GNU Regular Expression Compiling
| fastmaps: |  | Searching with Fastmaps
| `fattach`: |  | fattach
| `fchdir`: |  | fchdir
| `fchmod`: |  | fchmod
| `fchmodat`: |  | fchmodat
| `fchown`: |  | fchown
| `fchownat`: |  | fchownat
| `fclose`: |  | fclose
| `fcloseall`: |  | fcloseall
| `fcntl`: |  | fcntl
| `fcvt`: |  | fcvt
| `fcvt_r`: |  | fcvt_r
| `fdatasync`: |  | fdatasync
| `fdetach`: |  | fdetach
| `fdim`: |  | fdim
| `fdimf`: |  | fdimf
| `fdiml`: |  | fdiml
| `fdopen`: |  | fdopen
| `fdopendir`: |  | fdopendir
| `FD_CLR`: |  | FD_CLR
| `FD_ISSET`: |  | FD_ISSET
| `FD_SET`: |  | FD_SET
| `FD_ZERO`: |  | FD_ZERO
| `feclearexcept`: |  | feclearexcept
| `fedisableexcept`: |  | fedisableexcept
| `feenableexcept`: |  | feenableexcept
| `fegetenv`: |  | fegetenv
| `fegetexcept`: |  | fegetexcept
| `fegetexceptflag`: |  | fegetexceptflag
| `fegetround`: |  | fegetround
| `feholdexcept`: |  | feholdexcept
| `feof`: |  | feof
| `feof_unlocked`: |  | feof_unlocked
| `feraiseexcept`: |  | feraiseexcept
| `ferror`: |  | ferror
| `ferror_unlocked`: |  | ferror_unlocked
| `fesetenv`: |  | fesetenv
| `fesetexceptflag`: |  | fesetexceptflag
| `fesetround`: |  | fesetround
| `fetestexcept`: |  | fetestexcept
| `feupdateenv`: |  | feupdateenv
| `fexecve`: |  | fexecve
| `fflush`: |  | fflush
| `fflush_unlocked`: |  | fflush_unlocked
| `ffs`: |  | ffs
| `ffsl`: |  | ffsl
| `ffsll`: |  | ffsll
| `fgetc`: |  | fgetc
| `fgetc_unlocked`: |  | fgetc_unlocked
| `fgetfilecon`: |  | fgetfilecon
| `fgetgrent`: |  | fgetgrent
| `fgetgrent_r`: |  | fgetgrent_r
| `fgetpos`: |  | fgetpos
| `fgetpwent`: |  | fgetpwent
| `fgetpwent_r`: |  | fgetpwent_r
| `fgets`: |  | fgets
| `fgetsgent`: |  | fgetsgent
| `fgetsgent_r`: |  | fgetsgent_r
| `fgetspent`: |  | fgetspent
| `fgetspent_r`: |  | fgetspent_r
| `fgets_unlocked`: |  | fgets_unlocked
| `fgetwc`: |  | fgetwc
| `fgetwc_unlocked`: |  | fgetwc_unlocked
| `fgetws`: |  | fgetws
| `fgetws_unlocked`: |  | fgetws_unlocked
| `fgetxattr`: |  | fgetxattr
| `fileno`: |  | fileno
| `fileno_unlocked`: |  | fileno_unlocked
| Finding modules: |  | Which modules?
| `finite`: |  | finite
| `finitef`: |  | finitef
| `finitel`: |  | finitel
| `flistxattr`: |  | flistxattr
| `flock`: |  | flock
| `flockfile`: |  | flockfile
| `floor`: |  | floor
| `floorf`: |  | floorf
| `floorl`: |  | floorl
| `fma`: |  | fma
| `fmaf`: |  | fmaf
| `fmal`: |  | fmal
| `fmax`: |  | fmax
| `fmaxf`: |  | fmaxf
| `fmaxl`: |  | fmaxl
| `fmemopen`: |  | fmemopen
| `fmin`: |  | fmin
| `fminf`: |  | fminf
| `fminl`: |  | fminl
| `fmod`: |  | fmod
| `fmodf`: |  | fmodf
| `fmodl`: |  | fmodl
| `fmtmsg`: |  | fmtmsg
| `fnmatch`: |  | fnmatch
| `fopen`: |  | fopen
| `fopencookie`: |  | fopencookie
| `fork`: |  | fork
| `forkpty`: |  | forkpty
| `fpathconf`: |  | fpathconf
| `fpclassify`: |  | fpclassify
| `fprintf`: |  | fprintf
| `fputc`: |  | fputc
| `fputc_unlocked`: |  | fputc_unlocked
| `fputs`: |  | fputs
| `fputs_unlocked`: |  | fputs_unlocked
| `fputwc`: |  | fputwc
| `fputwc_unlocked`: |  | fputwc_unlocked
| `fputws`: |  | fputws
| `fputws_unlocked`: |  | fputws_unlocked
| `fread`: |  | fread
| `fread_unlocked`: |  | fread_unlocked
| `free`: |  | free
| `FREE`: |  | Safe Allocation Macros
| `freeaddrinfo`: |  | freeaddrinfo
| `freeifaddrs`: |  | freeifaddrs
| `freelocale`: |  | freelocale
| `fremovexattr`: |  | fremovexattr
| `freopen`: |  | freopen
| `frexp`: |  | frexp
| `frexpf`: |  | frexpf
| `frexpl`: |  | frexpl
| `fscanf`: |  | fscanf
| `fseek`: |  | fseek
| `fseeko`: |  | fseeko
| `fsetpos`: |  | fsetpos
| `fsetxattr`: |  | fsetxattr
| `fstat`: |  | fstat
| `fstatat`: |  | fstatat
| `fstatfs`: |  | fstatfs
| `fstatvfs`: |  | fstatvfs
| `fsync`: |  | fsync
| `ftell`: |  | ftell
| `ftello`: |  | ftello
| `ftime`: |  | ftime
| `ftok`: |  | ftok
| `ftruncate`: |  | ftruncate
| `ftrylockfile`: |  | ftrylockfile
| `fts_children`: |  | fts_children
| `fts_close`: |  | fts_close
| `fts_open`: |  | fts_open
| `fts_read`: |  | fts_read
| `fts_set`: |  | fts_set
| `ftw`: |  | ftw
| `funlockfile`: |  | funlockfile
| `futimens`: |  | futimens
| `futimes`: |  | futimes
| `futimesat`: |  | futimesat
| `fwide`: |  | fwide
| `fwprintf`: |  | fwprintf
| `fwrite`: |  | fwrite
| `fwrite_unlocked`: |  | fwrite_unlocked
| `fwscanf`: |  | fwscanf

G |  |
| `gai_strerror`: |  | gai_strerror
| `gamma`: |  | gamma
| `gammaf`: |  | gammaf
| `gammal`: |  | gammal
| `gcd`: |  | gcd
| `gcvt`: |  | gcvt
| `getaddrinfo`: |  | getaddrinfo
| `getaliasbyname`: |  | getaliasbyname
| `getaliasbyname_r`: |  | getaliasbyname_r
| `getaliasent`: |  | getaliasent
| `getaliasent_r`: |  | getaliasent_r
| `getc`: |  | getc
| `getchar`: |  | getchar
| `getchar_unlocked`: |  | getchar_unlocked
| `getcontext`: |  | getcontext
| `getcwd`: |  | getcwd
| `getc_unlocked`: |  | getc_unlocked
| `getdate`: |  | getdate
| `getdate_err`: |  | getdate_err
| `getdate_r`: |  | getdate_r
| `getdelim`: |  | getdelim
| `getdirentries`: |  | getdirentries
| `getdomainname`: |  | getdomainname
| `getdtablesize`: |  | getdtablesize
| `getegid`: |  | getegid
| `getenv`: |  | getenv
| `geteuid`: |  | geteuid
| `getfilecon`: |  | getfilecon
| `getfsent`: |  | getfsent
| `getfsfile`: |  | getfsfile
| `getfsspec`: |  | getfsspec
| `getgid`: |  | getgid
| `getgrent`: |  | getgrent
| `getgrent_r`: |  | getgrent_r
| `getgrgid`: |  | getgrgid
| `getgrgid_r`: |  | getgrgid_r
| `getgrnam`: |  | getgrnam
| `getgrnam_r`: |  | getgrnam_r
| `getgrouplist`: |  | getgrouplist
| `getgroups`: |  | getgroups
| `gethostbyaddr`: |  | gethostbyaddr
| `gethostbyaddr_r`: |  | gethostbyaddr_r
| `gethostbyname`: |  | gethostbyname
| `gethostbyname2`: |  | gethostbyname2
| `gethostbyname2_r`: |  | gethostbyname2_r
| `gethostbyname_r`: |  | gethostbyname_r
| `gethostent`: |  | gethostent
| `gethostent_r`: |  | gethostent_r
| `gethostid`: |  | gethostid
| `gethostname`: |  | gethostname
| `getifaddrs`: |  | getifaddrs
| `getipv4sourcefilter`: |  | getipv4sourcefilter
| `getitimer`: |  | getitimer
| `getline`: |  | getline
| `getloadavg`: |  | getloadavg
| `getlogin`: |  | getlogin
| `getlogin_r`: |  | getlogin_r
| `getmntent`: |  | getmntent
| `getmntent_r`: |  | getmntent_r
| `getmsg`: |  | getmsg
| `getnameinfo`: |  | getnameinfo
| `getnetbyaddr`: |  | getnetbyaddr
| `getnetbyaddr_r`: |  | getnetbyaddr_r
| `getnetbyname`: |  | getnetbyname
| `getnetbyname_r`: |  | getnetbyname_r
| `getnetent`: |  | getnetent
| `getnetent_r`: |  | getnetent_r
| `getnetgrent`: |  | getnetgrent
| `getnetgrent_r`: |  | getnetgrent_r
| `getnetname`: |  | getnetname
| `getopt`: |  | getopt
| `getopt_long`: |  | getopt_long
| `getopt_long_only`: |  | getopt_long_only
| `getpagesize`: |  | getpagesize
| `getpass`: |  | getpass
| `getpeername`: |  | getpeername
| `getpgid`: |  | getpgid
| `getpgrp`: |  | getpgrp
| `getpid`: |  | getpid
| `getpmsg`: |  | getpmsg
| `getppid`: |  | getppid
| `getpriority`: |  | getpriority
| `getprotobyname`: |  | getprotobyname
| `getprotobyname_r`: |  | getprotobyname_r
| `getprotobynumber`: |  | getprotobynumber
| `getprotobynumber_r`: |  | getprotobynumber_r
| `getprotoent`: |  | getprotoent
| `getprotoent_r`: |  | getprotoent_r
| `getpt`: |  | getpt
| `getpublickey`: |  | getpublickey
| `getpw`: |  | getpw
| `getpwent`: |  | getpwent
| `getpwent_r`: |  | getpwent_r
| `getpwnam`: |  | getpwnam
| `getpwnam_r`: |  | getpwnam_r
| `getpwuid`: |  | getpwuid
| `getpwuid_r`: |  | getpwuid_r
| `getresgid`: |  | getresgid
| `getresuid`: |  | getresuid
| `getrlimit`: |  | getrlimit
| `getrpcbyname`: |  | getrpcbyname
| `getrpcbyname_r`: |  | getrpcbyname_r
| `getrpcbynumber`: |  | getrpcbynumber
| `getrpcbynumber_r`: |  | getrpcbynumber_r
| `getrpcent`: |  | getrpcent
| `getrpcent_r`: |  | getrpcent_r
| `getrpcport`: |  | getrpcport
| `getrusage`: |  | getrusage
| `gets`: |  | gets
| `getsecretkey`: |  | getsecretkey
| `getservbyname`: |  | getservbyname
| `getservbyname_r`: |  | getservbyname_r
| `getservbyport`: |  | getservbyport
| `getservbyport_r`: |  | getservbyport_r
| `getservent`: |  | getservent
| `getservent_r`: |  | getservent_r
| `getsgent`: |  | getsgent
| `getsgent_r`: |  | getsgent_r
| `getsgnam`: |  | getsgnam
| `getsgnam_r`: |  | getsgnam_r
| `getsid`: |  | getsid
| `getsockname`: |  | getsockname
| `getsockopt`: |  | getsockopt
| `getsourcefilter`: |  | getsourcefilter
| `getspent`: |  | getspent
| `getspent_r`: |  | getspent_r
| `getspnam`: |  | getspnam
| `getspnam_r`: |  | getspnam_r
| `getsubopt`: |  | getsubopt
| `gettext`: |  | gettext
| gettextize, caveat: |  | gettextize and autopoint
| `gettimeofday`: |  | gettimeofday
| `getttyent`: |  | getttyent
| `getttynam`: |  | getttynam
| `getuid`: |  | getuid
| `getusershell`: |  | getusershell
| `getutent`: |  | getutent
| `getutent_r`: |  | getutent_r
| `getutid`: |  | getutid
| `getutid_r`: |  | getutid_r
| `getutline`: |  | getutline
| `getutline_r`: |  | getutline_r
| `getutmp`: |  | getutmp
| `getutmpx`: |  | getutmpx
| `getutxent`: |  | getutxent
| `getutxid`: |  | getutxid
| `getutxline`: |  | getutxline
| `getw`: |  | getw
| `getwc`: |  | getwc
| `getwchar`: |  | getwchar
| `getwchar_unlocked`: |  | getwchar_unlocked
| `getwc_unlocked`: |  | getwc_unlocked
| `getwd`: |  | getwd
| `getxattr`: |  | getxattr
| `get_avphys_pages`: |  | get_avphys_pages
| `get_current_dir_name`: |  | get_current_dir_name
| `get_myaddress`: |  | get_myaddress
| `get_nprocs`: |  | get_nprocs
| `get_nprocs_conf`: |  | get_nprocs_conf
| `get_phys_pages`: |  | get_phys_pages
| `glob`: |  | glob
| `globfree`: |  | globfree
| `glob_pattern_p`: |  | glob_pattern_p
| `gmtime`: |  | gmtime
| `gmtime_r`: |  | gmtime_r
| `gnulib-tool`: |  | Invoking gnulib-tool
| `gnu_dev_major`: |  | gnu_dev_major
| `gnu_dev_makedev`: |  | gnu_dev_makedev
| `gnu_dev_minor`: |  | gnu_dev_minor
| `gnu_get_libc_release`: |  | gnu_get_libc_release
| `gnu_get_libc_version`: |  | gnu_get_libc_version
| `grantpt`: |  | grantpt
| Grep: |  | Predefined Syntaxes
| grouping: |  | Grouping Operators
| `group_member`: |  | group_member
| `gsignal`: |  | gsignal

H |  |
| `hasmntopt`: |  | hasmntopt
| `hcreate`: |  | hcreate
| `hcreate_r`: |  | hcreate_r
| `hdestroy`: |  | hdestroy
| `hdestroy_r`: |  | hdestroy_r
| header file include protection: |  | Header files
| Header files and C++: |  | Header files
| `herror`: |  | herror
| `host2netname`: |  | host2netname
| `hsearch`: |  | hsearch
| `hsearch_r`: |  | hsearch_r
| `hstrerror`: |  | hstrerror
| `htonl`: |  | htonl
| `htons`: |  | htons
| `hypot`: |  | hypot
| `hypotf`: |  | hypotf
| `hypotl`: |  | hypotl
| `h_errno`: |  | h_errno

I |  |
| `iconv`: |  | iconv
| `iconv_close`: |  | iconv_close
| `iconv_open`: |  | iconv_open
| `if_freenameindex`: |  | if_freenameindex
| `if_indextoname`: |  | if_indextoname
| `if_nameindex`: |  | if_nameindex
| `if_nametoindex`: |  | if_nametoindex
| `ilogb`: |  | ilogb
| `ilogbf`: |  | ilogbf
| `ilogbl`: |  | ilogbl
| `imaxabs`: |  | imaxabs
| `imaxdiv`: |  | imaxdiv
| `in6addr_any`: |  | in6addr_any
| `in6addr_loopback`: |  | in6addr_loopback
| `index`: |  | index
| `inet6_option_alloc`: |  | inet6_option_alloc
| `inet6_option_append`: |  | inet6_option_append
| `inet6_option_find`: |  | inet6_option_find
| `inet6_option_init`: |  | inet6_option_init
| `inet6_option_next`: |  | inet6_option_next
| `inet6_option_space`: |  | inet6_option_space
| `inet6_opt_append`: |  | inet6_opt_append
| `inet6_opt_find`: |  | inet6_opt_find
| `inet6_opt_finish`: |  | inet6_opt_finish
| `inet6_opt_get_val`: |  | inet6_opt_get_val
| `inet6_opt_init`: |  | inet6_opt_init
| `inet6_opt_next`: |  | inet6_opt_next
| `inet6_opt_set_val`: |  | inet6_opt_set_val
| `inet6_rth_add`: |  | inet6_rth_add
| `inet6_rth_getaddr`: |  | inet6_rth_getaddr
| `inet6_rth_init`: |  | inet6_rth_init
| `inet6_rth_reverse`: |  | inet6_rth_reverse
| `inet6_rth_segments`: |  | inet6_rth_segments
| `inet6_rth_space`: |  | inet6_rth_space
| `inet_addr`: |  | inet_addr
| `inet_aton`: |  | inet_aton
| `inet_lnaof`: |  | inet_lnaof
| `inet_makeaddr`: |  | inet_makeaddr
| `inet_neta`: |  | inet_neta
| `inet_netof`: |  | inet_netof
| `inet_network`: |  | inet_network
| `inet_net_ntop`: |  | inet_net_ntop
| `inet_net_pton`: |  | inet_net_pton
| `inet_nsap_addr`: |  | inet_nsap_addr
| `inet_nsap_ntoa`: |  | inet_nsap_ntoa
| `inet_ntoa`: |  | inet_ntoa
| `inet_ntop`: |  | inet_ntop
| `inet_pton`: |  | inet_pton
| `initgroups`: |  | initgroups
| initial import: |  | Initial import
| `initstate`: |  | initstate
| `initstate_r`: |  | initstate_r
| `innetgr`: |  | innetgr
| `insque`: |  | insque
| `int`: |  | Safe Allocation Macros
| `int`: |  | Safe Allocation Macros
| `int`: |  | Safe Allocation Macros
| `int`: |  | Safe Allocation Macros
| integer bounds: |  | Integer Bounds
| integer overflow: |  | Integer Properties
| integer properties: |  | Integer Properties
| integer range overflow: |  | Integer Range Overflow
| integer type overflow: |  | Integer Type Overflow
| interval expression: |  | Interval Operators
| `INT_ADD_OVERFLOW`: |  | Integer Type Overflow
| `INT_ADD_RANGE_OVERFLOW`: |  | Integer Range Overflow
| `INT_BUFSIZE_BOUND`: |  | Integer Bounds
| `INT_DIVIDE_OVERFLOW`: |  | Integer Type Overflow
| `INT_DIVIDE_RANGE_OVERFLOW`: |  | Integer Range Overflow
| `INT_LEFT_SHIFT_OVERFLOW`: |  | Integer Type Overflow
| `INT_LEFT_SHIFT_RANGE_OVERFLOW`: |  | Integer Range Overflow
| `INT_MULTIPLY_OVERFLOW`: |  | Integer Type Overflow
| `INT_MULTIPLY_RANGE_OVERFLOW`: |  | Integer Range Overflow
| `INT_NEGATE_OVERFLOW`: |  | Integer Type Overflow
| `INT_NEGATE_RANGE_OVERFLOW`: |  | Integer Range Overflow
| `INT_REMAINDER_OVERFLOW`: |  | Integer Type Overflow
| `INT_REMAINDER_RANGE_OVERFLOW`: |  | Integer Range Overflow
| `INT_STRLEN_BOUND`: |  | Integer Bounds
| `INT_SUBTRACT_OVERFLOW`: |  | Integer Type Overflow
| `INT_SUBTRACT_RANGE_OVERFLOW`: |  | Integer Range Overflow
| invoking `gnulib-tool`: |  | Invoking gnulib-tool
| `ioctl`: |  | ioctl
| `ioperm`: |  | ioperm
| `iopl`: |  | iopl
| `isalnum`: |  | isalnum
| `isalnum_l`: |  | isalnum_l
| `isalpha`: |  | isalpha
| `isalpha_l`: |  | isalpha_l
| `isascii`: |  | isascii
| `isastream`: |  | isastream
| `isatty`: |  | isatty
| `isblank`: |  | isblank
| `isblank_l`: |  | isblank_l
| `iscntrl`: |  | iscntrl
| `iscntrl_l`: |  | iscntrl_l
| `isctype`: |  | isctype
| `isdigit`: |  | isdigit
| `isdigit_l`: |  | isdigit_l
| `isfdtype`: |  | isfdtype
| `isfinite`: |  | isfinite
| `isgraph`: |  | isgraph
| `isgraph_l`: |  | isgraph_l
| `isgreater`: |  | isgreater
| `isgreaterequal`: |  | isgreaterequal
| `isinf`: |  | isinf
| `isinff`: |  | isinff
| `isinfl`: |  | isinfl
| `isless`: |  | isless
| `islessequal`: |  | islessequal
| `islessgreater`: |  | islessgreater
| `islower`: |  | islower
| `islower_l`: |  | islower_l
| `isnan`: |  | isnan
| `isnanf`: |  | isnanf
| `isnanl`: |  | isnanl
| `isnormal`: |  | isnormal
| `isprint`: |  | isprint
| `isprint_l`: |  | isprint_l
| `ispunct`: |  | ispunct
| `ispunct_l`: |  | ispunct_l
| `isspace`: |  | isspace
| `isspace_l`: |  | isspace_l
| `isunordered`: |  | isunordered
| `isupper`: |  | isupper
| `isupper_l`: |  | isupper_l
| `iswalnum`: |  | iswalnum
| `iswalnum_l`: |  | iswalnum_l
| `iswalpha`: |  | iswalpha
| `iswalpha_l`: |  | iswalpha_l
| `iswblank`: |  | iswblank
| `iswblank_l`: |  | iswblank_l
| `iswcntrl`: |  | iswcntrl
| `iswcntrl_l`: |  | iswcntrl_l
| `iswctype`: |  | iswctype
| `iswctype_l`: |  | iswctype_l
| `iswdigit`: |  | iswdigit
| `iswdigit_l`: |  | iswdigit_l
| `iswgraph`: |  | iswgraph
| `iswgraph_l`: |  | iswgraph_l
| `iswlower`: |  | iswlower
| `iswlower_l`: |  | iswlower_l
| `iswprint`: |  | iswprint
| `iswprint_l`: |  | iswprint_l
| `iswpunct`: |  | iswpunct
| `iswpunct_l`: |  | iswpunct_l
| `iswspace`: |  | iswspace
| `iswspace_l`: |  | iswspace_l
| `iswupper`: |  | iswupper
| `iswupper_l`: |  | iswupper_l
| `iswxdigit`: |  | iswxdigit
| `iswxdigit_l`: |  | iswxdigit_l
| `isxdigit`: |  | isxdigit
| `isxdigit_l`: |  | isxdigit_l

J |  |
| `j0`: |  | j0
| `j0f`: |  | j0f
| `j0l`: |  | j0l
| `j1`: |  | j1
| `j1f`: |  | j1f
| `j1l`: |  | j1l
| `jn`: |  | jn
| `jnf`: |  | jnf
| `jnl`: |  | jnl
| `jrand48`: |  | jrand48
| `jrand48_r`: |  | jrand48_r

K |  |
| `key_decryptsession`: |  | key_decryptsession
| `key_decryptsession_pk`: |  | key_decryptsession_pk
| `key_encryptsession`: |  | key_encryptsession
| `key_encryptsession_pk`: |  | key_encryptsession_pk
| `key_gendes`: |  | key_gendes
| `key_get_conv`: |  | key_get_conv
| `key_secretkey_is_set`: |  | key_secretkey_is_set
| `key_setsecret`: |  | key_setsecret
| `kill`: |  | kill
| `killpg`: |  | killpg
| `klogctl`: |  | klogctl

L |  |
| `l64a`: |  | l64a
| `labs`: |  | labs
| `lchmod`: |  | lchmod
| `lchown`: |  | lchown
| `lckpwdf`: |  | lckpwdf
| `lcong48`: |  | lcong48
| `lcong48_r`: |  | lcong48_r
| LD DEF files: |  | Visual Studio Compatibility
| `ldexp`: |  | ldexp
| `ldexpf`: |  | ldexpf
| `ldexpl`: |  | ldexpl
| `ldiv`: |  | ldiv
| `lfind`: |  | lfind
| `lgamma`: |  | lgamma
| `lgammaf`: |  | lgammaf
| `lgammaf_r`: |  | lgammaf_r
| `lgammal`: |  | lgammal
| `lgammal_r`: |  | lgammal_r
| `lgamma_r`: |  | lgamma_r
| `lgetfilecon`: |  | lgetfilecon
| `lgetxattr`: |  | lgetxattr
| `link`: |  | link
| `linkat`: |  | linkat
| `lio_listio`: |  | lio_listio
| `listen`: |  | listen
| `listxattr`: |  | listxattr
| `llabs`: |  | llabs
| `lldiv`: |  | lldiv
| `llistxattr`: |  | llistxattr
| `llrint`: |  | llrint
| `llrintf`: |  | llrintf
| `llrintl`: |  | llrintl
| `llround`: |  | llround
| `llroundf`: |  | llroundf
| `llroundl`: |  | llroundl
| `loc1`: |  | loc1
| `loc2`: |  | loc2
| `localeconv`: |  | localeconv
| `localtime`: |  | localtime
| `localtime_r`: |  | localtime_r
| `lockf`: |  | lockf
| `locs`: |  | locs
| `log`: |  | log
| `log10`: |  | log10
| `log10f`: |  | log10f
| `log10l`: |  | log10l
| `log1p`: |  | log1p
| `log1pf`: |  | log1pf
| `log1pl`: |  | log1pl
| `log2`: |  | log2
| `log2f`: |  | log2f
| `log2l`: |  | log2l
| `logb`: |  | logb
| `logbf`: |  | logbf
| `logbl`: |  | logbl
| `logf`: |  | logf
| `login`: |  | login
| `login_tty`: |  | login_tty
| `logl`: |  | logl
| long-running tests modules: |  | Extra tests modules
| `longjmp`: |  | longjmp
| `lrand48`: |  | lrand48
| `lrand48_r`: |  | lrand48_r
| `lremovexattr`: |  | lremovexattr
| `lrint`: |  | lrint
| `lrintf`: |  | lrintf
| `lrintl`: |  | lrintl
| `lround`: |  | lround
| `lroundf`: |  | lroundf
| `lroundl`: |  | lroundl
| `lsearch`: |  | lsearch
| `lseek`: |  | lseek
| `lsetxattr`: |  | lsetxattr
| `lstat`: |  | lstat
| `lutimes`: |  | lutimes

M |  |
| `madvise`: |  | madvise
| `makecontext`: |  | makecontext
| `mallinfo`: |  | mallinfo
| `malloc`: |  | malloc
| `malloc`: |  | GNU Regular Expression Compiling
| `malloc_get_state`: |  | malloc_get_state
| `malloc_info`: |  | malloc_info
| `malloc_set_state`: |  | malloc_set_state
| `malloc_stats`: |  | malloc_stats
| `malloc_trim`: |  | malloc_trim
| `malloc_usable_size`: |  | malloc_usable_size
| `mallopt`: |  | mallopt
| matching list: |  | List Operators
| matching newline: |  | List Operators
| matching with GNU functions: |  | GNU Matching
| `matherr`: |  | matherr
| `mblen`: |  | mblen
| `mbrlen`: |  | mbrlen
| `mbrtoc16`: |  | mbrtoc16
| `mbrtoc32`: |  | mbrtoc32
| `mbrtowc`: |  | mbrtowc
| `mbsinit`: |  | mbsinit
| `mbsnrtowcs`: |  | mbsnrtowcs
| `mbsrtowcs`: |  | mbsrtowcs
| `mbstowcs`: |  | mbstowcs
| `mbtowc`: |  | mbtowc
| `mcheck`: |  | mcheck
| `mcheck_check_all`: |  | mcheck_check_all
| `mcheck_pedantic`: |  | mcheck_pedantic
| `memalign`: |  | memalign
| `memccpy`: |  | memccpy
| `memchr`: |  | memchr
| `memcmp`: |  | memcmp
| `memcpy`: |  | memcpy
| `memfrob`: |  | memfrob
| `memmem`: |  | memmem
| `memmove`: |  | memmove
| Memory allocation failure: |  | Out of memory handling
| `mempcpy`: |  | mempcpy
| `memrchr`: |  | memrchr
| `memset`: |  | memset
| `mincore`: |  | mincore
| `mkdir`: |  | mkdir
| `mkdirat`: |  | mkdirat
| `mkdtemp`: |  | mkdtemp
| `mkfifo`: |  | mkfifo
| `mkfifoat`: |  | mkfifoat
| `mknod`: |  | mknod
| `mknodat`: |  | mknodat
| `mkostemp`: |  | mkostemp
| `mkostemps`: |  | mkostemps
| `mkstemp`: |  | mkstemp
| `mkstemps`: |  | mkstemps
| `mktemp`: |  | mktemp
| `mktime`: |  | mktime
| `mlock`: |  | mlock
| `mlockall`: |  | mlockall
| `mmap`: |  | mmap
| `modf`: |  | modf
| `modff`: |  | modff
| `modfl`: |  | modfl
| `monstartup`: |  | monstartup
| `mount`: |  | mount
| `mprobe`: |  | mprobe
| `mprotect`: |  | mprotect
| `mq_close`: |  | mq_close
| `mq_getattr`: |  | mq_getattr
| `mq_notify`: |  | mq_notify
| `mq_open`: |  | mq_open
| `mq_receive`: |  | mq_receive
| `mq_send`: |  | mq_send
| `mq_setattr`: |  | mq_setattr
| `mq_timedreceive`: |  | mq_timedreceive
| `mq_timedsend`: |  | mq_timedsend
| `mq_unlink`: |  | mq_unlink
| `mrand48`: |  | mrand48
| `mrand48_r`: |  | mrand48_r
| `mremap`: |  | mremap
| `msgctl`: |  | msgctl
| `msgget`: |  | msgget
| `msgrcv`: |  | msgrcv
| `msgsnd`: |  | msgsnd
| `msync`: |  | msync
| `mtrace`: |  | mtrace
| `munlock`: |  | munlock
| `munlockall`: |  | munlockall
| `munmap`: |  | munmap
| `muntrace`: |  | muntrace

N |  |
| `name_to_handle_at`: |  | name_to_handle_at
| `nan`: |  | nan
| `nanf`: |  | nanf
| `nanl`: |  | nanl
| `nanosleep`: |  | nanosleep
| `nearbyint`: |  | nearbyint
| `nearbyintf`: |  | nearbyintf
| `nearbyintl`: |  | nearbyintl
| `netname2host`: |  | netname2host
| `netname2user`: |  | netname2user
| `newlocale`: |  | newlocale
| `nextafter`: |  | nextafter
| `nextafterf`: |  | nextafterf
| `nextafterl`: |  | nextafterl
| `nexttoward`: |  | nexttoward
| `nexttowardf`: |  | nexttowardf
| `nexttowardl`: |  | nexttowardl
| `nftw`: |  | nftw
| `ngettext`: |  | ngettext
| `nice`: |  | nice
| `nis_add`: |  | nis_add
| `nis_addmember`: |  | nis_addmember
| `nis_add_entry`: |  | nis_add_entry
| `nis_checkpoint`: |  | nis_checkpoint
| `nis_clone_object`: |  | nis_clone_object
| `nis_creategroup`: |  | nis_creategroup
| `nis_destroygroup`: |  | nis_destroygroup
| `nis_destroy_object`: |  | nis_destroy_object
| `nis_dir_cmp`: |  | nis_dir_cmp
| `nis_domain_of`: |  | nis_domain_of
| `nis_domain_of_r`: |  | nis_domain_of_r
| `nis_first_entry`: |  | nis_first_entry
| `nis_freenames`: |  | nis_freenames
| `nis_freeresult`: |  | nis_freeresult
| `nis_freeservlist`: |  | nis_freeservlist
| `nis_freetags`: |  | nis_freetags
| `nis_getnames`: |  | nis_getnames
| `nis_getservlist`: |  | nis_getservlist
| `nis_ismember`: |  | nis_ismember
| `nis_leaf_of`: |  | nis_leaf_of
| `nis_leaf_of_r`: |  | nis_leaf_of_r
| `nis_lerror`: |  | nis_lerror
| `nis_list`: |  | nis_list
| `nis_local_directory`: |  | nis_local_directory
| `nis_local_group`: |  | nis_local_group
| `nis_local_host`: |  | nis_local_host
| `nis_local_principal`: |  | nis_local_principal
| `nis_lookup`: |  | nis_lookup
| `nis_mkdir`: |  | nis_mkdir
| `nis_modify`: |  | nis_modify
| `nis_modify_entry`: |  | nis_modify_entry
| `nis_name_of`: |  | nis_name_of
| `nis_name_of_r`: |  | nis_name_of_r
| `nis_next_entry`: |  | nis_next_entry
| `nis_perror`: |  | nis_perror
| `nis_ping`: |  | nis_ping
| `nis_print_directory`: |  | nis_print_directory
| `nis_print_entry`: |  | nis_print_entry
| `nis_print_group`: |  | nis_print_group
| `nis_print_group_entry`: |  | nis_print_group_entry
| `nis_print_link`: |  | nis_print_link
| `nis_print_object`: |  | nis_print_object
| `nis_print_result`: |  | nis_print_result
| `nis_print_rights`: |  | nis_print_rights
| `nis_print_table`: |  | nis_print_table
| `nis_remove`: |  | nis_remove
| `nis_removemember`: |  | nis_removemember
| `nis_remove_entry`: |  | nis_remove_entry
| `nis_rmdir`: |  | nis_rmdir
| `nis_servstate`: |  | nis_servstate
| `nis_sperrno`: |  | nis_sperrno
| `nis_sperror`: |  | nis_sperror
| `nis_sperror_r`: |  | nis_sperror_r
| `nis_stats`: |  | nis_stats
| `nis_verifygroup`: |  | nis_verifygroup
| `nl_langinfo`: |  | nl_langinfo
| `nl_langinfo_l`: |  | nl_langinfo_l
| nonmatching list: |  | List Operators
| `not_bol field in pattern buffer`: |  | Match-beginning-of-line Operator
| `nrand48`: |  | nrand48
| `nrand48_r`: |  | nrand48_r
| `ntohl`: |  | ntohl
| `ntohs`: |  | ntohs
| `ntp_adjtime`: |  | ntp_adjtime
| `ntp_gettime`: |  | ntp_gettime
| `ntp_gettimex`: |  | ntp_gettimex
| `num_regs in `struct re_registers``: |  | Using Registers

O |  |
| Obsolete modules: |  | Obsolete modules
| `obstack_alloc_failed_handler`: |  | obstack_alloc_failed_handler
| `obstack_exit_failure`: |  | obstack_exit_failure
| `obstack_free`: |  | obstack_free
| `obstack_printf`: |  | obstack_printf
| `obstack_vprintf`: |  | obstack_vprintf
| `on_exit`: |  | on_exit
| `open`: |  | open
| open-group operator and ‘`^`’: |  | Match-beginning-of-line Operator
| `openat`: |  | openat
| `opendir`: |  | opendir
| `openlog`: |  | openlog
| `openpty`: |  | openpty
| `open_by_handle_at`: |  | open_by_handle_at
| `open_memstream`: |  | open_memstream
| `open_wmemstream`: |  | open_wmemstream
| `optarg`: |  | optarg
| `opterr`: |  | opterr
| `optind`: |  | optind
| `optopt`: |  | optopt
| or operator: |  | Alternation Operator
| Out of Memory handling: |  | Out of memory handling
| overflow, integer: |  | Integer Properties
| overflow, integer range: |  | Integer Range Overflow
| overflow, integer type: |  | Integer Type Overflow

P |  |
| parenthesizing: |  | Grouping Operators
| `parse_printf_format`: |  | parse_printf_format
| `pathconf`: |  | pathconf
| pattern buffer initialization: |  | GNU Regular Expression Compiling
| pattern buffer, definition of: |  | GNU Pattern Buffers
| `pause`: |  | pause
| `pclose`: |  | pclose
| `perror`: |  | perror
| `personality`: |  | personality
| `pipe`: |  | pipe
| `pipe2`: |  | pipe2
| `pmap_getmaps`: |  | pmap_getmaps
| `pmap_getport`: |  | pmap_getport
| `pmap_rmtcall`: |  | pmap_rmtcall
| `pmap_set`: |  | pmap_set
| `pmap_unset`: |  | pmap_unset
| `poll`: |  | poll
| `popen`: |  | popen
| POSIX Awk: |  | Predefined Syntaxes
| `posix_fadvise`: |  | posix_fadvise
| `posix_fallocate`: |  | posix_fallocate
| `posix_madvise`: |  | posix_madvise
| `posix_memalign`: |  | posix_memalign
| `posix_mem_offset`: |  | posix_mem_offset
| `posix_openpt`: |  | posix_openpt
| `posix_spawn`: |  | posix_spawn
| `posix_spawnattr_destroy`: |  | posix_spawnattr_destroy
| `posix_spawnattr_getflags`: |  | posix_spawnattr_getflags
| `posix_spawnattr_getpgroup`: |  | posix_spawnattr_getpgroup
| `posix_spawnattr_getschedparam`: |  | posix_spawnattr_getschedparam
| `posix_spawnattr_getschedpolicy`: |  | posix_spawnattr_getschedpolicy
| `posix_spawnattr_getsigdefault`: |  | posix_spawnattr_getsigdefault
| `posix_spawnattr_getsigmask`: |  | posix_spawnattr_getsigmask
| `posix_spawnattr_init`: |  | posix_spawnattr_init
| `posix_spawnattr_setflags`: |  | posix_spawnattr_setflags
| `posix_spawnattr_setpgroup`: |  | posix_spawnattr_setpgroup
| `posix_spawnattr_setschedparam`: |  | posix_spawnattr_setschedparam
| `posix_spawnattr_setschedpolicy`: |  | posix_spawnattr_setschedpolicy
| `posix_spawnattr_setsigdefault`: |  | posix_spawnattr_setsigdefault
| `posix_spawnattr_setsigmask`: |  | posix_spawnattr_setsigmask
| `posix_spawnp`: |  | posix_spawnp
| `posix_spawn_file_actions_addclose`: |  | posix_spawn_file_actions_addclose
| `posix_spawn_file_actions_adddup2`: |  | posix_spawn_file_actions_adddup2
| `posix_spawn_file_actions_addopen`: |  | posix_spawn_file_actions_addopen
| `posix_spawn_file_actions_destroy`: |  | posix_spawn_file_actions_destroy
| `posix_spawn_file_actions_init`: |  | posix_spawn_file_actions_init
| `posix_trace_attr_destroy`: |  | posix_trace_attr_destroy
| `posix_trace_attr_getclockres`: |  | posix_trace_attr_getclockres
| `posix_trace_attr_getcreatetime`: |  | posix_trace_attr_getcreatetime
| `posix_trace_attr_getgenversion`: |  | posix_trace_attr_getgenversion
| `posix_trace_attr_getinherited`: |  | posix_trace_attr_getinherited
| `posix_trace_attr_getlogfullpolicy`: |  | posix_trace_attr_getlogfullpolicy
| `posix_trace_attr_getlogsize`: |  | posix_trace_attr_getlogsize
| `posix_trace_attr_getmaxdatasize`: |  | posix_trace_attr_getmaxdatasize
| `posix_trace_attr_getmaxsystemeventsize`: |  | posix_trace_attr_getmaxsystemeventsize
| `posix_trace_attr_getmaxusereventsize`: |  | posix_trace_attr_getmaxusereventsize
| `posix_trace_attr_getname`: |  | posix_trace_attr_getname
| `posix_trace_attr_getstreamfullpolicy`: |  | posix_trace_attr_getstreamfullpolicy
| `posix_trace_attr_getstreamsize`: |  | posix_trace_attr_getstreamsize
| `posix_trace_attr_init`: |  | posix_trace_attr_init
| `posix_trace_attr_setinherited`: |  | posix_trace_attr_setinherited
| `posix_trace_attr_setlogfullpolicy`: |  | posix_trace_attr_setlogfullpolicy
| `posix_trace_attr_setlogsize`: |  | posix_trace_attr_setlogsize
| `posix_trace_attr_setmaxdatasize`: |  | posix_trace_attr_setmaxdatasize
| `posix_trace_attr_setname`: |  | posix_trace_attr_setname
| `posix_trace_attr_setstreamfullpolicy`: |  | posix_trace_attr_setstreamfullpolicy
| `posix_trace_attr_setstreamsize`: |  | posix_trace_attr_setstreamsize
| `posix_trace_clear`: |  | posix_trace_clear
| `posix_trace_close`: |  | posix_trace_close
| `posix_trace_create`: |  | posix_trace_create
| `posix_trace_create_withlog`: |  | posix_trace_create_withlog
| `posix_trace_event`: |  | posix_trace_event
| `posix_trace_eventid_equal`: |  | posix_trace_eventid_equal
| `posix_trace_eventid_get_name`: |  | posix_trace_eventid_get_name
| `posix_trace_eventid_open`: |  | posix_trace_eventid_open
| `posix_trace_eventset_add`: |  | posix_trace_eventset_add
| `posix_trace_eventset_del`: |  | posix_trace_eventset_del
| `posix_trace_eventset_empty`: |  | posix_trace_eventset_empty
| `posix_trace_eventset_fill`: |  | posix_trace_eventset_fill
| `posix_trace_eventset_ismember`: |  | posix_trace_eventset_ismember
| `posix_trace_eventtypelist_getnext_id`: |  | posix_trace_eventtypelist_getnext_id
| `posix_trace_eventtypelist_rewind`: |  | posix_trace_eventtypelist_rewind
| `posix_trace_flush`: |  | posix_trace_flush
| `posix_trace_getnext_event`: |  | posix_trace_getnext_event
| `posix_trace_get_attr`: |  | posix_trace_get_attr
| `posix_trace_get_filter`: |  | posix_trace_get_filter
| `posix_trace_get_status`: |  | posix_trace_get_status
| `posix_trace_open`: |  | posix_trace_open
| `posix_trace_rewind`: |  | posix_trace_rewind
| `posix_trace_set_filter`: |  | posix_trace_set_filter
| `posix_trace_shutdown`: |  | posix_trace_shutdown
| `posix_trace_start`: |  | posix_trace_start
| `posix_trace_stop`: |  | posix_trace_stop
| `posix_trace_timedgetnext_event`: |  | posix_trace_timedgetnext_event
| `posix_trace_trid_eventid_open`: |  | posix_trace_trid_eventid_open
| `posix_trace_trygetnext_event`: |  | posix_trace_trygetnext_event
| `posix_typed_mem_get_info`: |  | posix_typed_mem_get_info
| `posix_typed_mem_open`: |  | posix_typed_mem_open
| `pow`: |  | pow
| `pow10`: |  | pow10
| `pow10f`: |  | pow10f
| `pow10l`: |  | pow10l
| `powf`: |  | powf
| `powl`: |  | powl
| `prctl`: |  | prctl
| `pread`: |  | pread
| `preadv`: |  | preadv
| `printf`: |  | printf
| `printf_size`: |  | printf_size
| `printf_size_info`: |  | printf_size_info
| privileged tests modules: |  | Extra tests modules
| `prlimit`: |  | prlimit
| `process_vm_readv`: |  | process_vm_readv
| `process_vm_writev`: |  | process_vm_writev
| `profil`: |  | profil
| `progname`: |  | error and progname
| `program_invocation_name`: |  | program_invocation_name
| `program_invocation_short_name`: |  | program_invocation_short_name
| `program_name`: |  | error and progname
| `pselect`: |  | pselect
| `psiginfo`: |  | psiginfo
| `psignal`: |  | psignal
| `pthread_atfork`: |  | pthread_atfork
| `pthread_attr_destroy`: |  | pthread_attr_destroy
| `pthread_attr_getaffinity_np`: |  | pthread_attr_getaffinity_np
| `pthread_attr_getdetachstate`: |  | pthread_attr_getdetachstate
| `pthread_attr_getguardsize`: |  | pthread_attr_getguardsize
| `pthread_attr_getinheritsched`: |  | pthread_attr_getinheritsched
| `pthread_attr_getschedparam`: |  | pthread_attr_getschedparam
| `pthread_attr_getschedpolicy`: |  | pthread_attr_getschedpolicy
| `pthread_attr_getscope`: |  | pthread_attr_getscope
| `pthread_attr_getstack`: |  | pthread_attr_getstack
| `pthread_attr_getstackaddr`: |  | pthread_attr_getstackaddr
| `pthread_attr_getstacksize`: |  | pthread_attr_getstacksize
| `pthread_attr_init`: |  | pthread_attr_init
| `pthread_attr_setaffinity_np`: |  | pthread_attr_setaffinity_np
| `pthread_attr_setdetachstate`: |  | pthread_attr_setdetachstate
| `pthread_attr_setguardsize`: |  | pthread_attr_setguardsize
| `pthread_attr_setinheritsched`: |  | pthread_attr_setinheritsched
| `pthread_attr_setschedparam`: |  | pthread_attr_setschedparam
| `pthread_attr_setschedpolicy`: |  | pthread_attr_setschedpolicy
| `pthread_attr_setscope`: |  | pthread_attr_setscope
| `pthread_attr_setstack`: |  | pthread_attr_setstack
| `pthread_attr_setstackaddr`: |  | pthread_attr_setstackaddr
| `pthread_attr_setstacksize`: |  | pthread_attr_setstacksize
| `pthread_barrierattr_destroy`: |  | pthread_barrierattr_destroy
| `pthread_barrierattr_getpshared`: |  | pthread_barrierattr_getpshared
| `pthread_barrierattr_init`: |  | pthread_barrierattr_init
| `pthread_barrierattr_setpshared`: |  | pthread_barrierattr_setpshared
| `pthread_barrier_destroy`: |  | pthread_barrier_destroy
| `pthread_barrier_init`: |  | pthread_barrier_init
| `pthread_barrier_wait`: |  | pthread_barrier_wait
| `pthread_cancel`: |  | pthread_cancel
| `pthread_cleanup_pop`: |  | pthread_cleanup_pop
| `pthread_cleanup_push`: |  | pthread_cleanup_push
| `pthread_condattr_destroy`: |  | pthread_condattr_destroy
| `pthread_condattr_getclock`: |  | pthread_condattr_getclock
| `pthread_condattr_getpshared`: |  | pthread_condattr_getpshared
| `pthread_condattr_init`: |  | pthread_condattr_init
| `pthread_condattr_setclock`: |  | pthread_condattr_setclock
| `pthread_condattr_setpshared`: |  | pthread_condattr_setpshared
| `pthread_cond_broadcast`: |  | pthread_cond_broadcast
| `pthread_cond_destroy`: |  | pthread_cond_destroy
| `pthread_cond_init`: |  | pthread_cond_init
| `pthread_cond_signal`: |  | pthread_cond_signal
| `pthread_cond_timedwait`: |  | pthread_cond_timedwait
| `pthread_cond_wait`: |  | pthread_cond_wait
| `pthread_create`: |  | pthread_create
| `pthread_detach`: |  | pthread_detach
| `pthread_equal`: |  | pthread_equal
| `pthread_exit`: |  | pthread_exit
| `pthread_getaffinity_np`: |  | pthread_getaffinity_np
| `pthread_getattr_np`: |  | pthread_getattr_np
| `pthread_getconcurrency`: |  | pthread_getconcurrency
| `pthread_getcpuclockid`: |  | pthread_getcpuclockid
| `pthread_getname_np`: |  | pthread_getname_np
| `pthread_getschedparam`: |  | pthread_getschedparam
| `pthread_getspecific`: |  | pthread_getspecific
| `pthread_join`: |  | pthread_join
| `pthread_key_create`: |  | pthread_key_create
| `pthread_key_delete`: |  | pthread_key_delete
| `pthread_kill`: |  | pthread_kill
| `pthread_kill_other_threads_np`: |  | pthread_kill_other_threads_np
| `pthread_mutexattr_destroy`: |  | pthread_mutexattr_destroy
| `pthread_mutexattr_getprioceiling`: |  | pthread_mutexattr_getprioceiling
| `pthread_mutexattr_getprotocol`: |  | pthread_mutexattr_getprotocol
| `pthread_mutexattr_getpshared`: |  | pthread_mutexattr_getpshared
| `pthread_mutexattr_getrobust`: |  | pthread_mutexattr_getrobust
| `pthread_mutexattr_getrobust_np`: |  | pthread_mutexattr_getrobust_np
| `pthread_mutexattr_gettype`: |  | pthread_mutexattr_gettype
| `pthread_mutexattr_init`: |  | pthread_mutexattr_init
| `pthread_mutexattr_setprioceiling`: |  | pthread_mutexattr_setprioceiling
| `pthread_mutexattr_setprotocol`: |  | pthread_mutexattr_setprotocol
| `pthread_mutexattr_setpshared`: |  | pthread_mutexattr_setpshared
| `pthread_mutexattr_setrobust`: |  | pthread_mutexattr_setrobust
| `pthread_mutexattr_setrobust_np`: |  | pthread_mutexattr_setrobust_np
| `pthread_mutexattr_settype`: |  | pthread_mutexattr_settype
| `pthread_mutex_consistent`: |  | pthread_mutex_consistent
| `pthread_mutex_consistent_np`: |  | pthread_mutex_consistent_np
| `pthread_mutex_destroy`: |  | pthread_mutex_destroy
| `pthread_mutex_getprioceiling`: |  | pthread_mutex_getprioceiling
| `pthread_mutex_init`: |  | pthread_mutex_init
| `pthread_mutex_lock`: |  | pthread_mutex_lock
| `pthread_mutex_setprioceiling`: |  | pthread_mutex_setprioceiling
| `pthread_mutex_timedlock`: |  | pthread_mutex_timedlock
| `pthread_mutex_trylock`: |  | pthread_mutex_trylock
| `pthread_mutex_unlock`: |  | pthread_mutex_unlock
| `pthread_once`: |  | pthread_once
| `pthread_rwlockattr_destroy`: |  | pthread_rwlockattr_destroy
| `pthread_rwlockattr_getkind_np`: |  | pthread_rwlockattr_getkind_np
| `pthread_rwlockattr_getpshared`: |  | pthread_rwlockattr_getpshared
| `pthread_rwlockattr_init`: |  | pthread_rwlockattr_init
| `pthread_rwlockattr_setkind_np`: |  | pthread_rwlockattr_setkind_np
| `pthread_rwlockattr_setpshared`: |  | pthread_rwlockattr_setpshared
| `pthread_rwlock_destroy`: |  | pthread_rwlock_destroy
| `pthread_rwlock_init`: |  | pthread_rwlock_init
| `pthread_rwlock_rdlock`: |  | pthread_rwlock_rdlock
| `pthread_rwlock_timedrdlock`: |  | pthread_rwlock_timedrdlock
| `pthread_rwlock_timedwrlock`: |  | pthread_rwlock_timedwrlock
| `pthread_rwlock_tryrdlock`: |  | pthread_rwlock_tryrdlock
| `pthread_rwlock_trywrlock`: |  | pthread_rwlock_trywrlock
| `pthread_rwlock_unlock`: |  | pthread_rwlock_unlock
| `pthread_rwlock_wrlock`: |  | pthread_rwlock_wrlock
| `pthread_self`: |  | pthread_self
| `pthread_setaffinity_np`: |  | pthread_setaffinity_np
| `pthread_setcancelstate`: |  | pthread_setcancelstate
| `pthread_setcanceltype`: |  | pthread_setcanceltype
| `pthread_setconcurrency`: |  | pthread_setconcurrency
| `pthread_setname_np`: |  | pthread_setname_np
| `pthread_setschedparam`: |  | pthread_setschedparam
| `pthread_setschedprio`: |  | pthread_setschedprio
| `pthread_setspecific`: |  | pthread_setspecific
| `pthread_sigmask`: |  | pthread_sigmask
| `pthread_sigqueue`: |  | pthread_sigqueue
| `pthread_spin_destroy`: |  | pthread_spin_destroy
| `pthread_spin_init`: |  | pthread_spin_init
| `pthread_spin_lock`: |  | pthread_spin_lock
| `pthread_spin_trylock`: |  | pthread_spin_trylock
| `pthread_spin_unlock`: |  | pthread_spin_unlock
| `pthread_testcancel`: |  | pthread_testcancel
| `pthread_timedjoin_np`: |  | pthread_timedjoin_np
| `pthread_tryjoin_np`: |  | pthread_tryjoin_np
| `pthread_yield`: |  | pthread_yield
| `ptrace`: |  | ptrace
| `ptsname`: |  | ptsname
| `ptsname_r`: |  | ptsname_r
| `putc`: |  | putc
| `putchar`: |  | putchar
| `putchar_unlocked`: |  | putchar_unlocked
| `putc_unlocked`: |  | putc_unlocked
| `putenv`: |  | putenv
| `putgrent`: |  | putgrent
| `putmsg`: |  | putmsg
| `putpmsg`: |  | putpmsg
| `putpwent`: |  | putpwent
| `puts`: |  | puts
| `putsgent`: |  | putsgent
| `putspent`: |  | putspent
| `pututline`: |  | pututline
| `pututxline`: |  | pututxline
| `putw`: |  | putw
| `putwc`: |  | putwc
| `putwchar`: |  | putwchar
| `putwchar_unlocked`: |  | putwchar_unlocked
| `putwc_unlocked`: |  | putwc_unlocked
| `pvalloc`: |  | pvalloc
| `pwrite`: |  | pwrite
| `pwritev`: |  | pwritev

Q |  |
| `qecvt`: |  | qecvt
| `qecvt_r`: |  | qecvt_r
| `qfcvt`: |  | qfcvt
| `qfcvt_r`: |  | qfcvt_r
| `qgcvt`: |  | qgcvt
| `qsort`: |  | qsort
| `qsort_r`: |  | qsort_r
| `quick_exit`: |  | quick_exit
| `quotactl`: |  | quotactl
| `quote`: |  | Quoting
| `quotearg`: |  | Quoting
| `quotearg_alloc`: |  | Quoting
| `quote_n`: |  | Quoting
| Quoting: |  | Quoting

R |  |
| `raise`: |  | raise
| `rand`: |  | rand
| `random`: |  | random
| `random_r`: |  | random_r
| `rand_r`: |  | rand_r
| `range argument to `re_search``: |  | GNU Searching
| `rawmemchr`: |  | rawmemchr
| `rcmd`: |  | rcmd
| `rcmd_af`: |  | rcmd_af
| `read`: |  | read
| `readahead`: |  | readahead
| `readdir`: |  | readdir
| `readdir_r`: |  | readdir_r
| `readlink`: |  | readlink
| `readlinkat`: |  | readlinkat
| `readv`: |  | readv
| `realloc`: |  | realloc
| `REALLOC_N`: |  | Safe Allocation Macros
| `realpath`: |  | realpath
| `reboot`: |  | reboot
| `recv`: |  | recv
| `recvfrom`: |  | recvfrom
| `recvmmsg`: |  | recvmmsg
| `recvmsg`: |  | recvmsg
| `regcomp`: |  | regcomp
| `regerror`: |  | regerror
| `regex.h`: |  | Overview
| `regexec`: |  | regexec
| regexp anchoring: |  | Anchoring Operators
| `regfree`: |  | regfree
| `regfree`: |  | Freeing GNU Pattern Buffers
| `register_printf_function`: |  | register_printf_function
| `register_printf_modifier`: |  | register_printf_modifier
| `register_printf_specifier`: |  | register_printf_specifier
| `register_printf_type`: |  | register_printf_type
| regular expressions, syntax of: |  | Regular Expression Syntax
| `remainder`: |  | remainder
| `remainderf`: |  | remainderf
| `remainderl`: |  | remainderl
| `remap_file_pages`: |  | remap_file_pages
| `remove`: |  | remove
| `removexattr`: |  | removexattr
| `remque`: |  | remque
| `remquo`: |  | remquo
| `remquof`: |  | remquof
| `remquol`: |  | remquol
| `rename`: |  | rename
| `renameat`: |  | renameat
| `res_init`: |  | res_init
| `res_mkquery`: |  | res_mkquery
| `res_query`: |  | res_query
| `res_querydomain`: |  | res_querydomain
| `res_search`: |  | res_search
| `revoke`: |  | revoke
| `rewind`: |  | rewind
| `rewinddir`: |  | rewinddir
| `rexec`: |  | rexec
| `rexec_af`: |  | rexec_af
| `RE_BACKSLASH_ESCAPE_IN_LIST`: |  | Syntax Bits
| `RE_BK_PLUS_QM`: |  | Syntax Bits
| `RE_CHAR_CLASSES`: |  | Syntax Bits
| `re_comp`: |  | re_comp
| `re_comp`: |  | BSD Regular Expression Compiling
| `re_compile_fastmap`: |  | re_compile_fastmap
| `re_compile_fastmap`: |  | Searching with Fastmaps
| `re_compile_pattern`: |  | re_compile_pattern
| `re_compile_pattern`: |  | GNU Regular Expression Compiling
| `RE_CONTEXT_INDEP_ANCHORS`: |  | Syntax Bits
| `RE_CONTEXT_INDEP_ANCHORS (and ‘`^`’)`: |  | Match-beginning-of-line Operator
| `RE_CONTEXT_INDEP_OPS`: |  | Syntax Bits
| `RE_CONTEXT_INVALID_DUP`: |  | Syntax Bits
| `RE_CONTEXT_INVALID_OPS`: |  | Syntax Bits
| `RE_DEBUG`: |  | Syntax Bits
| `RE_DOT_NEWLINE`: |  | Syntax Bits
| `RE_DOT_NOT_NULL`: |  | Syntax Bits
| `re_exec`: |  | re_exec
| `re_exec`: |  | BSD Searching
| `RE_HAT_LISTS_NOT_NEWLINE`: |  | Syntax Bits
| `RE_ICASE`: |  | Syntax Bits
| `RE_INTERVALS`: |  | Syntax Bits
| `RE_INVALID_INTERVAL_ORD`: |  | Syntax Bits
| `RE_LIMITED_OPS`: |  | Syntax Bits
| `re_match`: |  | re_match
| `re_match`: |  | GNU Matching
| `re_match_2`: |  | re_match_2
| `re_match_2`: |  | Matching/Searching with Split Data
| `RE_NEWLINE_ALT`: |  | Syntax Bits
| `RE_NO_BK_BRACES`: |  | Syntax Bits
| `RE_NO_BK_PARENS`: |  | Syntax Bits
| `RE_NO_BK_REFS`: |  | Syntax Bits
| `RE_NO_BK_VBAR`: |  | Syntax Bits
| `RE_NO_EMPTY_RANGES`: |  | Syntax Bits
| `RE_NO_GNU_OPS`: |  | Syntax Bits
| `RE_NO_POSIX_BACKTRACKING`: |  | Syntax Bits
| `RE_NO_SUB`: |  | Syntax Bits
| `re_nsub field, set by `re_compile_pattern``: |  | GNU Regular Expression Compiling
| `re_pattern_buffer definition`: |  | GNU Pattern Buffers
| `re_registers`: |  | Using Registers
| `re_search`: |  | re_search
| `re_search`: |  | GNU Searching
| `re_search_2`: |  | re_search_2
| `re_search_2`: |  | Matching/Searching with Split Data
| `re_set_registers`: |  | re_set_registers
| `re_set_registers`: |  | Using Registers
| `re_set_syntax`: |  | re_set_syntax
| `re_syntax_options`: |  | re_syntax_options
| `re_syntax_options initialization`: |  | GNU Regular Expression Compiling
| `RE_UNMATCHED_RIGHT_PAREN_ORD`: |  | Syntax Bits
| `rindex`: |  | rindex
| `rint`: |  | rint
| `rintf`: |  | rintf
| `rintl`: |  | rintl
| `rmdir`: |  | rmdir
| `round`: |  | round
| `roundf`: |  | roundf
| `roundl`: |  | roundl
| `rpc_createerr`: |  | rpc_createerr
| `rpmatch`: |  | rpmatch
| `rresvport`: |  | rresvport
| `rresvport_af`: |  | rresvport_af
| `rtime`: |  | rtime
| `ruserok`: |  | ruserok
| `ruserok_af`: |  | ruserok_af

S |  |
| `sbrk`: |  | sbrk
| `scalb`: |  | scalb
| `scalbf`: |  | scalbf
| `scalbl`: |  | scalbl
| `scalbln`: |  | scalbln
| `scalblnf`: |  | scalblnf
| `scalblnl`: |  | scalblnl
| `scalbn`: |  | scalbn
| `scalbnf`: |  | scalbnf
| `scalbnl`: |  | scalbnl
| `scandir`: |  | scandir
| `scandirat`: |  | scandirat
| `scanf`: |  | scanf
| `sched_getaffinity`: |  | sched_getaffinity
| `sched_getparam`: |  | sched_getparam
| `sched_getscheduler`: |  | sched_getscheduler
| `sched_get_priority_max`: |  | sched_get_priority_max
| `sched_get_priority_min`: |  | sched_get_priority_min
| `sched_rr_get_interval`: |  | sched_rr_get_interval
| `sched_setaffinity`: |  | sched_setaffinity
| `sched_setparam`: |  | sched_setparam
| `sched_setscheduler`: |  | sched_setscheduler
| `sched_yield`: |  | sched_yield
| searching with GNU functions: |  | GNU Searching
| `seed48`: |  | seed48
| `seed48_r`: |  | seed48_r
| `seekdir`: |  | seekdir
| `select`: |  | select
| `semctl`: |  | semctl
| `semget`: |  | semget
| `semop`: |  | semop
| `semtimedop`: |  | semtimedop
| `sem_close`: |  | sem_close
| `sem_destroy`: |  | sem_destroy
| `sem_getvalue`: |  | sem_getvalue
| `sem_init`: |  | sem_init
| `sem_open`: |  | sem_open
| `sem_post`: |  | sem_post
| `sem_timedwait`: |  | sem_timedwait
| `sem_trywait`: |  | sem_trywait
| `sem_unlink`: |  | sem_unlink
| `sem_wait`: |  | sem_wait
| `send`: |  | send
| `sendfile`: |  | sendfile
| `sendmmsg`: |  | sendmmsg
| `sendmsg`: |  | sendmsg
| `sendto`: |  | sendto
| `setaliasent`: |  | setaliasent
| `setbuf`: |  | setbuf
| `setbuffer`: |  | setbuffer
| `setcontext`: |  | setcontext
| `setdomainname`: |  | setdomainname
| `setegid`: |  | setegid
| `setenv`: |  | setenv
| `seteuid`: |  | seteuid
| `setfsent`: |  | setfsent
| `setfsgid`: |  | setfsgid
| `setfsuid`: |  | setfsuid
| `setgid`: |  | setgid
| `setgrent`: |  | setgrent
| `setgroups`: |  | setgroups
| `sethostent`: |  | sethostent
| `sethostid`: |  | sethostid
| `sethostname`: |  | sethostname
| `setipv4sourcefilter`: |  | setipv4sourcefilter
| `setitimer`: |  | setitimer
| `setjmp`: |  | setjmp
| `setkey`: |  | setkey
| `setkey_r`: |  | setkey_r
| `setlinebuf`: |  | setlinebuf
| `setlocale`: |  | setlocale
| `setlogin`: |  | setlogin
| `setlogmask`: |  | setlogmask
| `setmntent`: |  | setmntent
| `setnetent`: |  | setnetent
| `setnetgrent`: |  | setnetgrent
| `setns`: |  | setns
| `setpgid`: |  | setpgid
| `setpgrp`: |  | setpgrp
| `setpriority`: |  | setpriority
| `setprotoent`: |  | setprotoent
| `setpwent`: |  | setpwent
| `setregid`: |  | setregid
| `setresgid`: |  | setresgid
| `setresuid`: |  | setresuid
| `setreuid`: |  | setreuid
| `setrlimit`: |  | setrlimit
| `setrpcent`: |  | setrpcent
| `setservent`: |  | setservent
| `setsgent`: |  | setsgent
| `setsid`: |  | setsid
| `setsockopt`: |  | setsockopt
| `setsourcefilter`: |  | setsourcefilter
| `setspent`: |  | setspent
| `setstate`: |  | setstate
| `setstate_r`: |  | setstate_r
| `settimeofday`: |  | settimeofday
| `setttyent`: |  | setttyent
| `setuid`: |  | setuid
| `setusershell`: |  | setusershell
| `setutent`: |  | setutent
| `setutxent`: |  | setutxent
| `setvbuf`: |  | setvbuf
| `setxattr`: |  | setxattr
| `sgetsgent`: |  | sgetsgent
| `sgetsgent_r`: |  | sgetsgent_r
| `sgetspent`: |  | sgetspent
| `sgetspent_r`: |  | sgetspent_r
| `shmat`: |  | shmat
| `shmctl`: |  | shmctl
| `shmdt`: |  | shmdt
| `shmget`: |  | shmget
| `shm_open`: |  | shm_open
| `shm_unlink`: |  | shm_unlink
| `shutdown`: |  | shutdown
| `sigaction`: |  | sigaction
| `sigaddset`: |  | sigaddset
| `sigaltstack`: |  | sigaltstack
| `sigandset`: |  | sigandset
| `sigblock`: |  | sigblock
| `sigdelset`: |  | sigdelset
| `sigemptyset`: |  | sigemptyset
| `sigfillset`: |  | sigfillset
| `siggetmask`: |  | siggetmask
| `sighold`: |  | sighold
| `sigignore`: |  | sigignore
| `siginterrupt`: |  | siginterrupt
| `sigisemptyset`: |  | sigisemptyset
| `sigismember`: |  | sigismember
| `siglongjmp`: |  | siglongjmp
| `signal`: |  | signal
| `signbit`: |  | signbit
| `signgam`: |  | signgam
| `significand`: |  | significand
| `significandf`: |  | significandf
| `significandl`: |  | significandl
| `sigorset`: |  | sigorset
| `sigpause`: |  | sigpause
| `sigpending`: |  | sigpending
| `sigprocmask`: |  | sigprocmask
| `sigqueue`: |  | sigqueue
| `sigrelse`: |  | sigrelse
| `sigreturn`: |  | sigreturn
| `sigset`: |  | sigset
| `sigsetjmp`: |  | sigsetjmp
| `sigsetmask`: |  | sigsetmask
| `sigstack`: |  | sigstack
| `sigsuspend`: |  | sigsuspend
| `sigtimedwait`: |  | sigtimedwait
| `sigvec`: |  | sigvec
| `sigwait`: |  | sigwait
| `sigwaitinfo`: |  | sigwaitinfo
| `sin`: |  | sin
| `sincos`: |  | sincos
| `sincosf`: |  | sincosf
| `sincosl`: |  | sincosl
| `sinf`: |  | sinf
| `sinh`: |  | sinh
| `sinhf`: |  | sinhf
| `sinhl`: |  | sinhl
| `sinl`: |  | sinl
| `sleep`: |  | sleep
| `snprintf`: |  | snprintf
| `sockatmark`: |  | sockatmark
| `socket`: |  | socket
| `socketpair`: |  | socketpair
| specification: |  | Specification
| `sprintf`: |  | sprintf
| `sprofil`: |  | sprofil
| `sqrt`: |  | sqrt
| `sqrtf`: |  | sqrtf
| `sqrtl`: |  | sqrtl
| `srand`: |  | srand
| `srand48`: |  | srand48
| `srand48_r`: |  | srand48_r
| `srandom`: |  | srandom
| `srandom_r`: |  | srandom_r
| `sscanf`: |  | sscanf
| `ssignal`: |  | ssignal
| `start argument to `re_search``: |  | GNU Searching
| `start in `struct re_registers``: |  | Using Registers
| `stat`: |  | stat
| `statfs`: |  | statfs
| `statvfs`: |  | statvfs
| `stderr`: |  | stderr
| `stdin`: |  | stdin
| `stdout`: |  | stdout
| `step`: |  | step
| `stime`: |  | stime
| `stpcpy`: |  | stpcpy
| `stpncpy`: |  | stpncpy
| `strcasecmp`: |  | strcasecmp
| `strcasecmp_l`: |  | strcasecmp_l
| `strcasestr`: |  | strcasestr
| `strcat`: |  | strcat
| `strchr`: |  | strchr
| `strchrnul`: |  | strchrnul
| `strcmp`: |  | strcmp
| `strcoll`: |  | strcoll
| `strcoll_l`: |  | strcoll_l
| `strcpy`: |  | strcpy
| `strcspn`: |  | strcspn
| `strdup`: |  | strdup
| `strerror`: |  | strerror
| `strerror_l`: |  | strerror_l
| `strerror_r`: |  | strerror_r
| `strfmon`: |  | strfmon
| `strfmon_l`: |  | strfmon_l
| `strfry`: |  | strfry
| `strftime`: |  | strftime
| `strftime_l`: |  | strftime_l
| `strlen`: |  | strlen
| `strncasecmp`: |  | strncasecmp
| `strncasecmp_l`: |  | strncasecmp_l
| `strncat`: |  | strncat
| `strncmp`: |  | strncmp
| `strncpy`: |  | strncpy
| `strndup`: |  | strndup
| `strnlen`: |  | strnlen
| `strpbrk`: |  | strpbrk
| `strptime`: |  | strptime
| `strptime_l`: |  | strptime_l
| `strrchr`: |  | strrchr
| `strsep`: |  | strsep
| `strsignal`: |  | strsignal
| `strspn`: |  | strspn
| `strstr`: |  | strstr
| `strtod`: |  | strtod
| `strtod_l`: |  | strtod_l
| `strtof`: |  | strtof
| `strtof_l`: |  | strtof_l
| `strtoimax`: |  | strtoimax
| `strtok`: |  | strtok
| `strtok_r`: |  | strtok_r
| `strtol`: |  | strtol
| `strtold`: |  | strtold
| `strtold_l`: |  | strtold_l
| `strtoll`: |  | strtoll
| `strtoll_l`: |  | strtoll_l
| `strtol_l`: |  | strtol_l
| `strtoq`: |  | strtoq
| `strtoul`: |  | strtoul
| `strtoull`: |  | strtoull
| `strtoull_l`: |  | strtoull_l
| `strtoul_l`: |  | strtoul_l
| `strtoumax`: |  | strtoumax
| `strtouq`: |  | strtouq
| `struct re_pattern_buffer definition`: |  | GNU Pattern Buffers
| `strverscmp`: |  | strverscmp
| `strxfrm`: |  | strxfrm
| `strxfrm_l`: |  | strxfrm_l
| `ST_BLKSIZE`: |  | stat-size
| `ST_NBLOCKS`: |  | stat-size
| `ST_NBLOCKSIZE`: |  | stat-size
| subexpressions: |  | Grouping Operators
| `svcerr_auth`: |  | svcerr_auth
| `svcerr_decode`: |  | svcerr_decode
| `svcerr_noproc`: |  | svcerr_noproc
| `svcerr_noprog`: |  | svcerr_noprog
| `svcerr_progvers`: |  | svcerr_progvers
| `svcerr_systemerr`: |  | svcerr_systemerr
| `svcerr_weakauth`: |  | svcerr_weakauth
| `svcraw_create`: |  | svcraw_create
| `svctcp_create`: |  | svctcp_create
| `svcudp_bufcreate`: |  | svcudp_bufcreate
| `svcudp_create`: |  | svcudp_create
| `svcunix_create`: |  | svcunix_create
| `svc_exit`: |  | svc_exit
| `svc_fdset`: |  | svc_fdset
| `svc_getreq`: |  | svc_getreq
| `svc_getreqset`: |  | svc_getreqset
| `svc_getreq_common`: |  | svc_getreq_common
| `svc_getreq_poll`: |  | svc_getreq_poll
| `svc_max_pollfd`: |  | svc_max_pollfd
| `svc_pollfd`: |  | svc_pollfd
| `svc_register`: |  | svc_register
| `svc_run`: |  | svc_run
| `svc_sendreply`: |  | svc_sendreply
| `svc_unregister`: |  | svc_unregister
| `swab`: |  | swab
| `swapcontext`: |  | swapcontext
| `swapoff`: |  | swapoff
| `swapon`: |  | swapon
| `swprintf`: |  | swprintf
| `swscanf`: |  | swscanf
| `symlink`: |  | symlink
| `symlinkat`: |  | symlinkat
| `sync`: |  | sync
| `syncfs`: |  | syncfs
| syntax bits: |  | Syntax Bits
| `syntax field, set by `re_compile_pattern``: |  | GNU Regular Expression Compiling
| syntax initialization: |  | GNU Regular Expression Compiling
| syntax of regular expressions: |  | Regular Expression Syntax
| `syscall`: |  | syscall
| `sysconf`: |  | sysconf
| `sysctl`: |  | sysctl
| `sysinfo`: |  | sysinfo
| `syslog`: |  | syslog
| `system`: |  | system
| `sysv_signal`: |  | sysv_signal
| `sys_errlist`: |  | sys_errlist
| `sys_nerr`: |  | sys_nerr
| `sys_siglist`: |  | sys_siglist

T |  |
| `tan`: |  | tan
| `tanf`: |  | tanf
| `tanh`: |  | tanh
| `tanhf`: |  | tanhf
| `tanhl`: |  | tanhl
| `tanl`: |  | tanl
| `tcdrain`: |  | tcdrain
| `tcflow`: |  | tcflow
| `tcflush`: |  | tcflush
| `tcgetattr`: |  | tcgetattr
| `tcgetpgrp`: |  | tcgetpgrp
| `tcgetsid`: |  | tcgetsid
| `tcsendbreak`: |  | tcsendbreak
| `tcsetattr`: |  | tcsetattr
| `tcsetpgrp`: |  | tcsetpgrp
| `tdelete`: |  | tdelete
| `tdestroy`: |  | tdestroy
| `telldir`: |  | telldir
| `tempnam`: |  | tempnam
| tests modules, C++: |  | Extra tests modules
| tests modules, long-running: |  | Extra tests modules
| tests modules, privileged: |  | Extra tests modules
| tests modules, unportable: |  | Extra tests modules
| `textdomain`: |  | textdomain
| `tfind`: |  | tfind
| `tgamma`: |  | tgamma
| `tgammaf`: |  | tgammaf
| `tgammal`: |  | tgammal
| `time`: |  | time
| `timegm`: |  | timegm
| `timelocal`: |  | timelocal
| `timer_create`: |  | timer_create
| `timer_delete`: |  | timer_delete
| `timer_getoverrun`: |  | timer_getoverrun
| `timer_gettime`: |  | timer_gettime
| `timer_settime`: |  | timer_settime
| `times`: |  | times
| `timespec_get`: |  | timespec_get
| `timezone`: |  | timezone
| `tmpfile`: |  | tmpfile
| `tmpnam`: |  | tmpnam
| `tmpnam_r`: |  | tmpnam_r
| `toascii`: |  | toascii
| `tolower`: |  | tolower
| `tolower_l`: |  | tolower_l
| `toupper`: |  | toupper
| `toupper_l`: |  | toupper_l
| `towctrans`: |  | towctrans
| `towctrans_l`: |  | towctrans_l
| `towlower`: |  | towlower
| `towlower_l`: |  | towlower_l
| `towupper`: |  | towupper
| `towupper_l`: |  | towupper_l
| `translate initialization`: |  | GNU Regular Expression Compiling
| `trunc`: |  | trunc
| `truncate`: |  | truncate
| `truncf`: |  | truncf
| `truncl`: |  | truncl
| `tsearch`: |  | tsearch
| `ttyname`: |  | ttyname
| `ttyname_r`: |  | ttyname_r
| `ttyslot`: |  | ttyslot
| `twalk`: |  | twalk
| `TYPE_IS_INTEGER`: |  | Integer Type Determination
| `TYPE_MAXIMUM`: |  | Integer Bounds
| `TYPE_MINIMUM`: |  | Integer Bounds
| `TYPE_SIGNED`: |  | Integer Type Determination
| `tzname`: |  | tzname
| `tzset`: |  | tzset

U |  |
| `ualarm`: |  | ualarm
| `ulckpwdf`: |  | ulckpwdf
| `ulimit`: |  | ulimit
| `umask`: |  | umask
| `umount`: |  | umount
| `umount2`: |  | umount2
| `uname`: |  | uname
| `ungetc`: |  | ungetc
| `ungetwc`: |  | ungetwc
| `unlink`: |  | unlink
| `unlinkat`: |  | unlinkat
| `unlockpt`: |  | unlockpt
| unportable tests modules: |  | Extra tests modules
| `unsetenv`: |  | unsetenv
| `updwtmp`: |  | updwtmp
| `updwtmpx`: |  | updwtmpx
| `uselocale`: |  | uselocale
| `user2netname`: |  | user2netname
| `usleep`: |  | usleep
| `ustat`: |  | ustat
| `utime`: |  | utime
| `utimensat`: |  | utimensat
| `utimes`: |  | utimes
| `utmpname`: |  | utmpname
| `utmpxname`: |  | utmpxname

V |  |
| `valloc`: |  | valloc
| `vasprintf`: |  | vasprintf
| `va_arg`: |  | va_arg
| `va_copy`: |  | va_copy
| `va_end`: |  | va_end
| `va_start`: |  | va_start
| `vdprintf`: |  | vdprintf
| `verify`: |  | Compile-time Assertions
| `verify_expr`: |  | Compile-time Assertions
| `verr`: |  | verr
| `verrx`: |  | verrx
| `versionsort`: |  | versionsort
| `vfork`: |  | vfork
| `vfprintf`: |  | vfprintf
| `vfscanf`: |  | vfscanf
| `vfwprintf`: |  | vfwprintf
| `vfwscanf`: |  | vfwscanf
| `vhangup`: |  | vhangup
| `vlimit`: |  | vlimit
| `vm86`: |  | vm86
| `void`: |  | Safe Allocation Macros
| `vprintf`: |  | vprintf
| `vscanf`: |  | vscanf
| `vsnprintf`: |  | vsnprintf
| `vsprintf`: |  | vsprintf
| `vsscanf`: |  | vsscanf
| `vswprintf`: |  | vswprintf
| `vswscanf`: |  | vswscanf
| `vsyslog`: |  | vsyslog
| `vtimes`: |  | vtimes
| `vwarn`: |  | vwarn
| `vwarnx`: |  | vwarnx
| `vwprintf`: |  | vwprintf
| `vwscanf`: |  | vwscanf

W |  |
| `wait`: |  | wait
| `wait3`: |  | wait3
| `wait4`: |  | wait4
| `waitid`: |  | waitid
| `waitpid`: |  | waitpid
| `warn`: |  | warn
| `warnx`: |  | warnx
| `wcpcpy`: |  | wcpcpy
| `wcpncpy`: |  | wcpncpy
| `wcrtomb`: |  | wcrtomb
| `wcscasecmp`: |  | wcscasecmp
| `wcscasecmp_l`: |  | wcscasecmp_l
| `wcscat`: |  | wcscat
| `wcschr`: |  | wcschr
| `wcschrnul`: |  | wcschrnul
| `wcscmp`: |  | wcscmp
| `wcscoll`: |  | wcscoll
| `wcscoll_l`: |  | wcscoll_l
| `wcscpy`: |  | wcscpy
| `wcscspn`: |  | wcscspn
| `wcsdup`: |  | wcsdup
| `wcsftime`: |  | wcsftime
| `wcsftime_l`: |  | wcsftime_l
| `wcslen`: |  | wcslen
| `wcsncasecmp`: |  | wcsncasecmp
| `wcsncasecmp_l`: |  | wcsncasecmp_l
| `wcsncat`: |  | wcsncat
| `wcsncmp`: |  | wcsncmp
| `wcsncpy`: |  | wcsncpy
| `wcsnlen`: |  | wcsnlen
| `wcsnrtombs`: |  | wcsnrtombs
| `wcspbrk`: |  | wcspbrk
| `wcsrchr`: |  | wcsrchr
| `wcsrtombs`: |  | wcsrtombs
| `wcsspn`: |  | wcsspn
| `wcsstr`: |  | wcsstr
| `wcstod`: |  | wcstod
| `wcstod_l`: |  | wcstod_l
| `wcstof`: |  | wcstof
| `wcstof_l`: |  | wcstof_l
| `wcstoimax`: |  | wcstoimax
| `wcstok`: |  | wcstok
| `wcstol`: |  | wcstol
| `wcstold`: |  | wcstold
| `wcstold_l`: |  | wcstold_l
| `wcstoll`: |  | wcstoll
| `wcstoll_l`: |  | wcstoll_l
| `wcstol_l`: |  | wcstol_l
| `wcstombs`: |  | wcstombs
| `wcstoq`: |  | wcstoq
| `wcstoul`: |  | wcstoul
| `wcstoull`: |  | wcstoull
| `wcstoull_l`: |  | wcstoull_l
| `wcstoul_l`: |  | wcstoul_l
| `wcstoumax`: |  | wcstoumax
| `wcstouq`: |  | wcstouq
| `wcswcs`: |  | wcswcs
| `wcswidth`: |  | wcswidth
| `wcsxfrm`: |  | wcsxfrm
| `wcsxfrm_l`: |  | wcsxfrm_l
| `wctob`: |  | wctob
| `wctomb`: |  | wctomb
| `wctrans`: |  | wctrans
| `wctrans_l`: |  | wctrans_l
| `wctype`: |  | wctype
| `wctype_l`: |  | wctype_l
| `wcwidth`: |  | wcwidth
| `wmemchr`: |  | wmemchr
| `wmemcmp`: |  | wmemcmp
| `wmemcpy`: |  | wmemcpy
| `wmemmove`: |  | wmemmove
| `wmempcpy`: |  | wmempcpy
| `wmemset`: |  | wmemset
| word boundaries, matching: |  | Match-word-boundary Operator
| `wordexp`: |  | wordexp
| `wordfree`: |  | wordfree
| `wprintf`: |  | wprintf
| `write`: |  | write
| `writev`: |  | writev
| `wscanf`: |  | wscanf

X |  |
| `xalloc_die`: |  | Out of memory handling
| `xdrmem_create`: |  | xdrmem_create
| `xdrrec_create`: |  | xdrrec_create
| `xdrrec_endofrecord`: |  | xdrrec_endofrecord
| `xdrrec_eof`: |  | xdrrec_eof
| `xdrrec_skiprecord`: |  | xdrrec_skiprecord
| `xdrstdio_create`: |  | xdrstdio_create
| `xdr_array`: |  | xdr_array
| `xdr_authunix_parms`: |  | xdr_authunix_parms
| `xdr_bool`: |  | xdr_bool
| `xdr_bytes`: |  | xdr_bytes
| `xdr_callhdr`: |  | xdr_callhdr
| `xdr_callmsg`: |  | xdr_callmsg
| `xdr_cback_data`: |  | xdr_cback_data
| `xdr_char`: |  | xdr_char
| `xdr_cryptkeyarg`: |  | xdr_cryptkeyarg
| `xdr_cryptkeyarg2`: |  | xdr_cryptkeyarg2
| `xdr_cryptkeyres`: |  | xdr_cryptkeyres
| `xdr_des_block`: |  | xdr_des_block
| `xdr_domainname`: |  | xdr_domainname
| `xdr_double`: |  | xdr_double
| `xdr_enum`: |  | xdr_enum
| `xdr_float`: |  | xdr_float
| `xdr_free`: |  | xdr_free
| `xdr_getcredres`: |  | xdr_getcredres
| `xdr_hyper`: |  | xdr_hyper
| `xdr_int`: |  | xdr_int
| `xdr_int16_t`: |  | xdr_int16_t
| `xdr_int32_t`: |  | xdr_int32_t
| `xdr_int64_t`: |  | xdr_int64_t
| `xdr_int8_t`: |  | xdr_int8_t
| `xdr_keybuf`: |  | xdr_keybuf
| `xdr_keydat`: |  | xdr_keydat
| `xdr_keystatus`: |  | xdr_keystatus
| `xdr_key_netstarg`: |  | xdr_key_netstarg
| `xdr_key_netstres`: |  | xdr_key_netstres
| `xdr_long`: |  | xdr_long
| `xdr_longlong_t`: |  | xdr_longlong_t
| `xdr_mapname`: |  | xdr_mapname
| `xdr_netnamestr`: |  | xdr_netnamestr
| `xdr_netobj`: |  | xdr_netobj
| `xdr_obj_p`: |  | xdr_obj_p
| `xdr_opaque`: |  | xdr_opaque
| `xdr_opaque_auth`: |  | xdr_opaque_auth
| `xdr_peername`: |  | xdr_peername
| `xdr_pmap`: |  | xdr_pmap
| `xdr_pmaplist`: |  | xdr_pmaplist
| `xdr_pointer`: |  | xdr_pointer
| `xdr_quad_t`: |  | xdr_quad_t
| `xdr_reference`: |  | xdr_reference
| `xdr_replymsg`: |  | xdr_replymsg
| `xdr_rmtcallres`: |  | xdr_rmtcallres
| `xdr_rmtcall_args`: |  | xdr_rmtcall_args
| `xdr_short`: |  | xdr_short
| `xdr_sizeof`: |  | xdr_sizeof
| `xdr_string`: |  | xdr_string
| `xdr_uint16_t`: |  | xdr_uint16_t
| `xdr_uint32_t`: |  | xdr_uint32_t
| `xdr_uint64_t`: |  | xdr_uint64_t
| `xdr_uint8_t`: |  | xdr_uint8_t
| `xdr_union`: |  | xdr_union
| `xdr_unixcred`: |  | xdr_unixcred
| `xdr_u_char`: |  | xdr_u_char
| `xdr_u_hyper`: |  | xdr_u_hyper
| `xdr_u_int`: |  | xdr_u_int
| `xdr_u_long`: |  | xdr_u_long
| `xdr_u_longlong_t`: |  | xdr_u_longlong_t
| `xdr_u_quad_t`: |  | xdr_u_quad_t
| `xdr_u_short`: |  | xdr_u_short
| `xdr_valdat`: |  | xdr_valdat
| `xdr_vector`: |  | xdr_vector
| `xdr_void`: |  | xdr_void
| `xdr_wrapstring`: |  | xdr_wrapstring
| `xdr_ypall`: |  | xdr_ypall
| `xdr_ypbind_binding`: |  | xdr_ypbind_binding
| `xdr_ypbind_resp`: |  | xdr_ypbind_resp
| `xdr_ypbind_resptype`: |  | xdr_ypbind_resptype
| `xdr_ypbind_setdom`: |  | xdr_ypbind_setdom
| `xdr_ypdelete_args`: |  | xdr_ypdelete_args
| `xdr_ypmaplist`: |  | xdr_ypmaplist
| `xdr_ypmap_parms`: |  | xdr_ypmap_parms
| `xdr_yppushresp_xfr`: |  | xdr_yppushresp_xfr
| `xdr_yppush_status`: |  | xdr_yppush_status
| `xdr_ypreq_key`: |  | xdr_ypreq_key
| `xdr_ypreq_nokey`: |  | xdr_ypreq_nokey
| `xdr_ypreq_xfr`: |  | xdr_ypreq_xfr
| `xdr_ypresp_all`: |  | xdr_ypresp_all
| `xdr_ypresp_key_val`: |  | xdr_ypresp_key_val
| `xdr_ypresp_maplist`: |  | xdr_ypresp_maplist
| `xdr_ypresp_master`: |  | xdr_ypresp_master
| `xdr_ypresp_order`: |  | xdr_ypresp_order
| `xdr_ypresp_val`: |  | xdr_ypresp_val
| `xdr_ypresp_xfr`: |  | xdr_ypresp_xfr
| `xdr_ypstat`: |  | xdr_ypstat
| `xdr_ypupdate_args`: |  | xdr_ypupdate_args
| `xdr_ypxfrstat`: |  | xdr_ypxfrstat
| `xdr_yp_buf`: |  | xdr_yp_buf
| `xprt_register`: |  | xprt_register
| `xprt_unregister`: |  | xprt_unregister

Y |  |
| `y0`: |  | y0
| `y0f`: |  | y0f
| `y0l`: |  | y0l
| `y1`: |  | y1
| `y1f`: |  | y1f
| `y1l`: |  | y1l
| `yn`: |  | yn
| `ynf`: |  | ynf
| `ynl`: |  | ynl
| `ypbinderr_string`: |  | ypbinderr_string
| `yperr_string`: |  | yperr_string
| `ypprot_err`: |  | ypprot_err
| `yp_all`: |  | yp_all
| `yp_bind`: |  | yp_bind
| `yp_first`: |  | yp_first
| `yp_get_default_domain`: |  | yp_get_default_domain
| `yp_master`: |  | yp_master
| `yp_match`: |  | yp_match
| `yp_next`: |  | yp_next
| `yp_order`: |  | yp_order
| `yp_unbind`: |  | yp_unbind
| `yp_update`: |  | yp_update

Jump to: | $ ( ) * + - . = ? [ \ ] ^ _ { | } A B C D E F G H I J K L M N O P Q R S T U V W X Y

#### Footnotes

### (1)

Sometimes you don’t have to explicitly quote special characters to make them ordinary. For instance, most characters lose any special meaning inside a list (see List Operators). In addition, if the syntax bits `RE_CONTEXT_INVALID_OPS` and `RE_CONTEXT_INDEP_OPS` aren’t set, then (for historical reasons) the matcher considers special characters ordinary if they are in contexts where the operations they represent make no sense; for example, then the match-zero-or-more operator (represented by ‘`*`’) matches itself in the regular expression ‘`*foo`’ because there is no preceding expression on which it can operate. It is poor practice, however, to depend on this behavior; if you want a special character to be ordinary outside a list, it’s better to always quote it, regardless.

### (2)

Regex therefore doesn’t consider the ‘`^`’ to be the first character in the list. If you put a ‘`^`’ character first in (what you think is) a matching list, you’ll turn it into a nonmatching list.

### (3)

You can’t use a character class for the starting or ending point of a range, since a character class is not a single character.

### (4)

Regular expressions are also referred to as “patterns,” hence the name “pattern buffer.”

### (5)

A table that maps all uppercase letters to the corresponding lowercase ones would work just as well for this purpose.