GNU Lib User Manual

GNU_GnuLib_UserManual

GNU_GnuLib_UserManual

GNU_GnuLib_UserManual

GNU_GnuLib_UserManual

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 742 [warning: Documents this large are best viewed by clicking the View PDF Link!]

GNU Gnulib
updated 2013-01-15 20:24:21
bug-gnulib@gnu.org
This manual is for GNU Gnulib (updated 2013-01-15 20:24:21), which is a library of common
routines intended to be shared at the source level.
Copyright c
2004–2013 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”.
i
Table of Contents
1 Brief Overview .................................. 1
1.1 Gnulib Basics .................................................. 1
1.2 git and CVS ................................................... 1
1.3 Keeping Up-to-date ............................................ 2
1.4 Contributing to Gnulib ......................................... 2
1.4.1 Gnulib licensing ........................................... 2
1.4.2 Indent with spaces not TABs .............................. 2
1.4.3 How to add a new module ................................. 3
1.4.4 Portability guidelines ...................................... 4
1.5 High Quality ................................................... 5
2 Philosophy ...................................... 6
2.1 Benefits of using Gnulib ........................................ 6
2.2 Library vs. Reusable Code ..................................... 6
2.3 Portability and Application Code............................... 6
2.4 Target Platforms ............................................... 7
2.5 Modules ....................................................... 8
2.6 Various Kinds of Modules ...................................... 9
2.6.1 Support for ISO C or POSIX functions..................... 9
2.6.2 Enhancements of ISO C or POSIX functions .............. 10
2.6.3 Portable general use facilities ............................. 10
2.6.4 Reusable application code ................................ 10
2.6.5 Object oriented classes ................................... 10
2.6.6 Interfaces to external libraries ............................ 10
2.6.7 Build / maintenance infrastructure ....................... 10
2.7 Collaborative Development .................................... 10
2.8 Copyright ..................................................... 11
2.9 Steady Development .......................................... 12
2.10 Openness .................................................... 12
3 Invoking gnulib-tool ........................... 13
3.1 Finding modules .............................................. 13
3.2 Initial import ................................................. 13
3.3 Modified imports.............................................. 17
3.4 Simple update ................................................ 18
3.5 Changing your sources for use with Gnulib .................... 18
3.6 Caveat: gettextize and autopoint users ..................... 19
3.7 Handling Gnulib’s own message translations ................... 20
3.8 Issues with Version Control Systems ........................... 20
3.9 Bundling the unit tests of the Gnulib modules ................. 22
3.10 Avoiding unnecessary checks and compilations................ 22
ii
4 Writing modules ............................... 24
4.1 Source code files .............................................. 24
4.2 Header files ................................................... 24
4.3 Implementation files........................................... 25
4.4 Specification .................................................. 25
4.5 Module description............................................ 26
4.6 Autoconf macros .............................................. 28
4.7 Unit test modules ............................................. 29
4.8 Incompatible changes ......................................... 30
5 Extending Gnulib ............................. 31
6 Miscellaneous Notes........................... 32
6.1 Out of memory handling ...................................... 32
6.2 Obsolete modules ............................................. 32
6.3 Extra tests modules ........................................... 32
6.4 A C++ namespace for gnulib ................................. 33
6.5 Library version handling ...................................... 34
6.6 Windows sockets .............................................. 35
6.6.1 Getaddrinfo and WINVER ............................... 35
6.7 Libtool and Windows ......................................... 35
6.8 License Texinfo sources........................................ 36
6.9 Build robot for gnulib ......................................... 36
7 Building the ISO C and POSIX Substitutes
................................................ 37
8 ISO C and POSIX Header File Substitutes
................................................ 38
8.1 ‘aio.h....................................................... 38
8.2 ‘arpa/inet.h................................................ 38
8.3 ‘assert.h.................................................... 38
8.4 ‘complex.h................................................... 39
8.5 ‘cpio.h...................................................... 39
8.6 ‘ctype.h..................................................... 39
8.7 ‘dirent.h.................................................... 39
8.8 ‘dlfcn.h..................................................... 40
8.9 ‘errno.h..................................................... 40
8.10 ‘fcntl.h.................................................... 40
8.11 ‘fenv.h..................................................... 41
8.12 ‘float.h.................................................... 42
8.13 ‘fmtmsg.h................................................... 42
8.14 ‘fnmatch.h.................................................. 42
8.15 ‘ftw.h...................................................... 43
8.16 ‘glob.h..................................................... 43
8.17 ‘grp.h...................................................... 43
iii
8.18 ‘iconv.h.................................................... 43
8.19 ‘inttypes.h................................................ 44
8.20 ‘iso646.h................................................... 44
8.21 ‘langinfo.h................................................ 44
8.22 ‘libgen.h................................................... 45
8.23 ‘limits.h................................................... 45
8.24 ‘locale.h................................................... 45
8.25 ‘math.h..................................................... 46
8.26 ‘monetary.h................................................ 46
8.27 ‘mqueue.h................................................... 46
8.28 ‘ndbm.h..................................................... 47
8.29 ‘net/if.h................................................... 47
8.30 ‘netdb.h.................................................... 47
8.31 ‘netinet/in.h.............................................. 47
8.32 ‘netinet/tcp.h............................................. 48
8.33 ‘nl_types.h................................................ 48
8.34 ‘poll.h..................................................... 48
8.35 ‘pthread.h.................................................. 48
8.36 ‘pwd.h...................................................... 49
8.37 ‘regex.h.................................................... 49
8.38 ‘sched.h.................................................... 49
8.39 ‘search.h................................................... 49
8.40 ‘semaphore.h............................................... 50
8.41 ‘setjmp.h................................................... 50
8.42 ‘signal.h................................................... 50
8.43 ‘spawn.h.................................................... 51
8.44 ‘stdalign.h................................................ 51
8.45 ‘stdarg.h................................................... 52
8.46 ‘stdbool.h.................................................. 52
8.47 ‘stddef.h................................................... 52
8.48 ‘stdint.h................................................... 53
8.49 ‘stdio.h.................................................... 54
8.50 ‘stdlib.h................................................... 54
8.51 ‘stdnoreturn.h............................................. 55
8.52 ‘string.h................................................... 55
8.53 ‘strings.h.................................................. 55
8.54 ‘stropts.h.................................................. 56
8.55 ‘sys/ipc.h.................................................. 56
8.56 ‘sys/mman.h................................................ 56
8.57 ‘sys/msg.h.................................................. 56
8.58 ‘sys/resource.h............................................ 57
8.59 ‘sys/select.h.............................................. 57
8.60 ‘sys/sem.h.................................................. 57
8.61 ‘sys/shm.h.................................................. 57
8.62 ‘sys/socket.h.............................................. 58
8.63 ‘sys/stat.h................................................ 58
8.64 ‘sys/statvfs.h............................................. 59
8.65 ‘sys/time.h................................................ 59
iv
8.66 ‘sys/timeb.h............................................... 60
8.67 ‘sys/times.h............................................... 60
8.68 ‘sys/types.h............................................... 60
8.69 ‘sys/uio.h.................................................. 60
8.70 ‘sys/un.h................................................... 61
8.71 ‘sys/utsname.h............................................. 61
8.72 ‘sys/wait.h................................................ 61
8.73 ‘syslog.h................................................... 61
8.74 ‘tar.h...................................................... 62
8.75 ‘termios.h.................................................. 62
8.76 ‘tgmath.h................................................... 62
8.77 ‘time.h..................................................... 62
8.78 ‘trace.h.................................................... 63
8.79 ‘uchar.h.................................................... 63
8.80 ‘ucontext.h................................................ 63
8.81 ‘ulimit.h................................................... 63
8.82 ‘unistd.h................................................... 64
8.83 ‘utime.h.................................................... 64
8.84 ‘utmpx.h.................................................... 64
8.85 ‘wchar.h.................................................... 64
8.86 ‘wctype.h................................................... 65
8.87 ‘wordexp.h.................................................. 65
9 ISO C and POSIX Function Substitutes..... 66
9.1 FD_CLR ....................................................... 66
9.2 FD_ISSET ..................................................... 66
9.3 FD_SET ....................................................... 66
9.4 FD_ZERO ...................................................... 66
9.5 _Exit......................................................... 67
9.6 _exit......................................................... 67
9.7 _longjmp ..................................................... 67
9.8 _setjmp ...................................................... 67
9.9 _tolower ..................................................... 68
9.10 _toupper .................................................... 68
9.11 a64l ......................................................... 68
9.12 abort........................................................ 68
9.13 abs .......................................................... 69
9.14 accept ...................................................... 69
9.15 access ...................................................... 69
9.16 acos ......................................................... 70
9.17 acosf........................................................ 70
9.18 acosh........................................................ 70
9.19 acoshf ...................................................... 70
9.20 acoshl ...................................................... 70
9.21 acosl........................................................ 71
9.22 aio_cancel.................................................. 71
9.23 aio_error ................................................... 71
9.24 aio_fsync ................................................... 72
v
9.25 aio_read .................................................... 72
9.26 aio_return.................................................. 72
9.27 aio_suspend ................................................ 72
9.28 aio_write ................................................... 73
9.29 alarm........................................................ 73
9.30 aligned_alloc .............................................. 73
9.31 alphasort ................................................... 73
9.32 asctime ..................................................... 74
9.33 asctime_r ................................................... 74
9.34 asin ......................................................... 74
9.35 asinf........................................................ 74
9.36 asinh........................................................ 75
9.37 asinhf ...................................................... 75
9.38 asinhl ...................................................... 75
9.39 asinl........................................................ 75
9.40 assert ...................................................... 76
9.41 atan ......................................................... 76
9.42 atan2........................................................ 76
9.43 atan2f ...................................................... 76
9.44 atan2l ...................................................... 76
9.45 atanf........................................................ 77
9.46 atanh........................................................ 77
9.47 atanhf ...................................................... 77
9.48 atanhl ...................................................... 77
9.49 atanl........................................................ 78
9.50 atexit ...................................................... 78
9.51 atof ......................................................... 78
9.52 atoi ......................................................... 79
9.53 atol ......................................................... 79
9.54 atoll........................................................ 79
9.55 basename .................................................... 79
9.56 bind ......................................................... 80
9.57 bsearch ..................................................... 80
9.58 btowc........................................................ 80
9.59 c16rtomb .................................................... 80
9.60 c32rtomb .................................................... 81
9.61 cabs ......................................................... 81
9.62 cabsf........................................................ 81
9.63 cabsl........................................................ 81
9.64 cacos........................................................ 82
9.65 cacosf ...................................................... 82
9.66 cacosh ...................................................... 82
9.67 cacoshf ..................................................... 82
9.68 cacoshl ..................................................... 83
9.69 cacosl ...................................................... 83
9.70 calloc ...................................................... 83
9.71 carg ......................................................... 83
9.72 cargf........................................................ 84
vi
9.73 cargl........................................................ 84
9.74 casin........................................................ 84
9.75 casinf ...................................................... 84
9.76 casinh ...................................................... 85
9.77 casinhf ..................................................... 85
9.78 casinhl ..................................................... 85
9.79 casinl ...................................................... 85
9.80 catan........................................................ 86
9.81 catanf ...................................................... 86
9.82 catanh ...................................................... 86
9.83 catanhf ..................................................... 86
9.84 catanhl ..................................................... 87
9.85 catanl ...................................................... 87
9.86 catclose .................................................... 87
9.87 catgets ..................................................... 87
9.88 catopen ..................................................... 88
9.89 cbrt ......................................................... 88
9.90 cbrtf........................................................ 88
9.91 cbrtl........................................................ 88
9.92 ccos ......................................................... 89
9.93 ccosf........................................................ 89
9.94 ccosh........................................................ 89
9.95 ccoshf ...................................................... 89
9.96 ccoshl ...................................................... 90
9.97 ccosl........................................................ 90
9.98 ceil ......................................................... 90
9.99 ceilf........................................................ 90
9.100 ceill ...................................................... 91
9.101 cexp........................................................ 91
9.102 cexpf ...................................................... 91
9.103 cexpl ...................................................... 92
9.104 cfgetispeed ............................................... 92
9.105 cfgetospeed ............................................... 92
9.106 cfsetispeed ............................................... 92
9.107 cfsetospeed ............................................... 93
9.108 chdir ...................................................... 93
9.109 chmod ...................................................... 93
9.110 chown ...................................................... 93
9.111 cimag ...................................................... 94
9.112 cimagf ..................................................... 94
9.113 cimagl ..................................................... 94
9.114 clearerr ................................................... 94
9.115 clock ...................................................... 95
9.116 clock_getcpuclockid ...................................... 95
9.117 clock_getres .............................................. 95
9.118 clock_gettime ............................................. 95
9.119 clock_nanosleep........................................... 96
9.120 clock_settime ............................................. 96
vii
9.121 clog........................................................ 96
9.122 clogf ...................................................... 96
9.123 clogl ...................................................... 97
9.124 close ...................................................... 97
9.125 closedir ................................................... 97
9.126 closelog ................................................... 97
9.127 confstr .................................................... 98
9.128 conj........................................................ 98
9.129 conjf ...................................................... 98
9.130 conjl ...................................................... 98
9.131 connect .................................................... 99
9.132 copysign ................................................... 99
9.133 copysignf .................................................. 99
9.134 copysignl .................................................. 99
9.135 cos........................................................ 100
9.136 cosf ...................................................... 100
9.137 cosh ...................................................... 100
9.138 coshf ..................................................... 100
9.139 coshl ..................................................... 100
9.140 cosl ...................................................... 101
9.141 cpow ...................................................... 101
9.142 cpowf ..................................................... 101
9.143 cpowl ..................................................... 101
9.144 cproj ..................................................... 102
9.145 cprojf .................................................... 102
9.146 cprojl .................................................... 102
9.147 creal ..................................................... 103
9.148 crealf .................................................... 103
9.149 creall .................................................... 103
9.150 creat ..................................................... 103
9.151 crypt ..................................................... 104
9.152 csin ...................................................... 104
9.153 csinf ..................................................... 104
9.154 csinh ..................................................... 104
9.155 csinhf .................................................... 105
9.156 csinhl .................................................... 105
9.157 csinl ..................................................... 105
9.158 csqrt ..................................................... 105
9.159 csqrtf .................................................... 106
9.160 csqrtl .................................................... 106
9.161 ctan ...................................................... 106
9.162 ctanf ..................................................... 106
9.163 ctanh ..................................................... 107
9.164 ctanhf .................................................... 107
9.165 ctanhl .................................................... 107
9.166 ctanl ..................................................... 107
9.167 ctermid ................................................... 108
9.168 ctime ..................................................... 108
viii
9.169 ctime_r ................................................... 108
9.170 daylight .................................................. 109
9.171 dbm_clearerr ............................................. 109
9.172 dbm_close................................................. 109
9.173 dbm_delete ............................................... 109
9.174 dbm_error................................................. 110
9.175 dbm_fetch................................................. 110
9.176 dbm_firstkey ............................................. 110
9.177 dbm_nextkey .............................................. 110
9.178 dbm_open .................................................. 111
9.179 dbm_store................................................. 111
9.180 difftime .................................................. 111
9.181 dirfd ..................................................... 111
9.182 dirname ................................................... 112
9.183 div........................................................ 112
9.184 dlclose ................................................... 112
9.185 dlerror ................................................... 112
9.186 dlopen .................................................... 113
9.187 dlsym ..................................................... 113
9.188 dprintf ................................................... 113
9.189 drand48 ................................................... 114
9.190 dup........................................................ 114
9.191 dup2 ...................................................... 114
9.192 duplocale................................................. 115
9.193 encrypt ................................................... 115
9.194 endgrent .................................................. 115
9.195 endhostent ............................................... 115
9.196 endnetent................................................. 116
9.197 endprotoent .............................................. 116
9.198 endpwent .................................................. 116
9.199 endservent ............................................... 116
9.200 endutxent................................................. 116
9.201 environ ................................................... 117
9.202 erand48 ................................................... 117
9.203 erf........................................................ 117
9.204 erfc ...................................................... 117
9.205 erfcf ..................................................... 118
9.206 erfcl ..................................................... 118
9.207 erff ...................................................... 118
9.208 erfl ...................................................... 118
9.209 errno ..................................................... 119
9.210 execl ..................................................... 119
9.211 execle .................................................... 119
9.212 execlp .................................................... 119
9.213 execv ..................................................... 119
9.214 execve .................................................... 120
9.215 execvp .................................................... 120
9.216 exit ...................................................... 120
ix
9.217 exp........................................................ 120
9.218 exp2 ...................................................... 120
9.219 exp2f ..................................................... 121
9.220 exp2l ..................................................... 121
9.221 expf ...................................................... 121
9.222 expl ...................................................... 122
9.223 expm1 ..................................................... 122
9.224 expm1f .................................................... 122
9.225 expm1l .................................................... 122
9.226 fabs ...................................................... 123
9.227 fabsf ..................................................... 123
9.228 fabsl ..................................................... 123
9.229 faccessat................................................. 123
9.230 fattach ................................................... 124
9.231 fchdir .................................................... 124
9.232 fchmod .................................................... 124
9.233 fchmodat .................................................. 125
9.234 fchown .................................................... 125
9.235 fchownat .................................................. 125
9.236 fclose .................................................... 126
9.237 fcntl ..................................................... 126
9.238 fdatasync................................................. 126
9.239 fdetach ................................................... 127
9.240 fdim ...................................................... 127
9.241 fdimf ..................................................... 127
9.242 fdiml ..................................................... 127
9.243 fdopen .................................................... 128
9.244 fdopendir................................................. 128
9.245 feclearexcept ............................................ 128
9.246 fegetenv .................................................. 129
9.247 fegetexceptflag ......................................... 129
9.248 fegetround ............................................... 129
9.249 feholdexcept ............................................. 129
9.250 feof ...................................................... 130
9.251 feraiseexcept ............................................ 130
9.252 ferror .................................................... 130
9.253 fesetenv .................................................. 130
9.254 fesetexceptflag ......................................... 130
9.255 fesetround ............................................... 131
9.256 fetestexcept ............................................. 131
9.257 feupdateenv .............................................. 131
9.258 fexecve ................................................... 131
9.259 fflush .................................................... 132
9.260 ffs........................................................ 132
9.261 fgetc ..................................................... 132
9.262 fgetpos ................................................... 133
9.263 fgets ..................................................... 133
9.264 fgetwc .................................................... 134
x
9.265 fgetws .................................................... 134
9.266 fileno .................................................... 134
9.267 flockfile................................................. 134
9.268 floor ..................................................... 135
9.269 floorf .................................................... 135
9.270 floorl .................................................... 135
9.271 fma........................................................ 135
9.272 fmaf ...................................................... 136
9.273 fmal ...................................................... 136
9.274 fmax ...................................................... 136
9.275 fmaxf ..................................................... 137
9.276 fmaxl ..................................................... 137
9.277 fmemopen .................................................. 137
9.278 fmin ...................................................... 137
9.279 fminf ..................................................... 138
9.280 fminl ..................................................... 138
9.281 fmod ...................................................... 138
9.282 fmodf ..................................................... 138
9.283 fmodl ..................................................... 139
9.284 fmtmsg .................................................... 139
9.285 fnmatch ................................................... 139
9.286 fopen ..................................................... 140
9.287 fork ...................................................... 140
9.288 fpathconf................................................. 140
9.289 fpclassify ............................................... 141
9.290 fprintf ................................................... 141
9.291 fputc ..................................................... 142
9.292 fputs ..................................................... 143
9.293 fputwc .................................................... 143
9.294 fputws .................................................... 143
9.295 fread ..................................................... 144
9.296 free ...................................................... 144
9.297 freeaddrinfo ............................................. 144
9.298 freelocale ............................................... 145
9.299 freopen ................................................... 145
9.300 frexp ..................................................... 145
9.301 frexpf .................................................... 146
9.302 frexpl .................................................... 146
9.303 fscanf .................................................... 146
9.304 fseek ..................................................... 147
9.305 fseeko .................................................... 147
9.306 fsetpos ................................................... 148
9.307 fstat ..................................................... 148
9.308 fstatat ................................................... 148
9.309 fstatvfs .................................................. 149
9.310 fsync ..................................................... 149
9.311 ftell ..................................................... 149
9.312 ftello .................................................... 150
xi
9.313 ftok ...................................................... 150
9.314 ftruncate................................................. 150
9.315 ftrylockfile ............................................. 151
9.316 ftw........................................................ 151
9.317 funlockfile .............................................. 151
9.318 futimens .................................................. 151
9.319 fwide ..................................................... 152
9.320 fwprintf .................................................. 152
9.321 fwrite .................................................... 153
9.322 fwscanf ................................................... 153
9.323 gai_strerror ............................................. 153
9.324 getaddrinfo .............................................. 154
9.325 getc ...................................................... 154
9.326 getc_unlocked ............................................ 154
9.327 getchar ................................................... 154
9.328 getchar_unlocked ........................................ 155
9.329 getcwd .................................................... 155
9.330 getdate ................................................... 156
9.331 getdate_err .............................................. 156
9.332 getdelim .................................................. 156
9.333 getegid ................................................... 157
9.334 getenv .................................................... 157
9.335 geteuid ................................................... 157
9.336 getgid .................................................... 157
9.337 getgrent .................................................. 157
9.338 getgrgid .................................................. 158
9.339 getgrgid_r ............................................... 158
9.340 getgrnam .................................................. 158
9.341 getgrnam_r ............................................... 158
9.342 getgroups................................................. 159
9.343 gethostent ............................................... 159
9.344 gethostid................................................. 159
9.345 gethostname .............................................. 159
9.346 getitimer................................................. 160
9.347 getline ................................................... 160
9.348 getlogin .................................................. 160
9.349 getlogin_r ............................................... 161
9.350 getmsg .................................................... 161
9.351 getnameinfo .............................................. 161
9.352 getnetbyaddr ............................................. 162
9.353 getnetbyname ............................................. 162
9.354 getnetent................................................. 162
9.355 getopt .................................................... 162
9.356 getpeername .............................................. 163
9.357 getpgid ................................................... 163
9.358 getpgrp ................................................... 164
9.359 getpid .................................................... 164
9.360 getpmsg ................................................... 164
xii
9.361 getppid ................................................... 164
9.362 getpriority .............................................. 165
9.363 getprotobyname........................................... 165
9.364 getprotobynumber ........................................ 165
9.365 getprotoent .............................................. 165
9.366 getpwent .................................................. 165
9.367 getpwnam .................................................. 166
9.368 getpwnam_r ............................................... 166
9.369 getpwuid .................................................. 166
9.370 getpwuid_r ............................................... 166
9.371 getrlimit................................................. 167
9.372 getrusage................................................. 167
9.373 gets ...................................................... 167
9.374 getservbyname ............................................ 167
9.375 getservbyport ............................................ 168
9.376 getservent ............................................... 168
9.377 getsid .................................................... 168
9.378 getsockname .............................................. 168
9.379 getsockopt ............................................... 169
9.380 getsubopt................................................. 169
9.381 gettimeofday ............................................. 169
9.382 getuid .................................................... 170
9.383 getutxent................................................. 170
9.384 getutxid .................................................. 170
9.385 getutxline ............................................... 170
9.386 getwc ..................................................... 171
9.387 getwchar .................................................. 171
9.388 glob ...................................................... 171
9.389 globfree .................................................. 171
9.390 gmtime .................................................... 172
9.391 gmtime_r .................................................. 172
9.392 grantpt ................................................... 172
9.393 hcreate ................................................... 172
9.394 hdestroy .................................................. 173
9.395 hsearch ................................................... 173
9.396 htonl ..................................................... 173
9.397 htons ..................................................... 173
9.398 hypot ..................................................... 173
9.399 hypotf .................................................... 174
9.400 hypotl .................................................... 174
9.401 iconv ..................................................... 174
9.402 iconv_close .............................................. 175
9.403 iconv_open ............................................... 175
9.404 if_freenameindex ........................................ 176
9.405 if_indextoname........................................... 176
9.406 if_nameindex ............................................. 176
9.407 if_nametoindex........................................... 177
9.408 ilogb ..................................................... 177
xiii
9.409 ilogbf .................................................... 177
9.410 ilogbl .................................................... 178
9.411 imaxabs ................................................... 178
9.412 imaxdiv ................................................... 178
9.413 inet_addr................................................. 178
9.414 inet_ntoa................................................. 179
9.415 inet_ntop................................................. 179
9.416 inet_pton................................................. 179
9.417 initstate................................................. 180
9.418 insque .................................................... 180
9.419 ioctl ..................................................... 180
9.420 isalnum ................................................... 180
9.421 isalnum_l................................................. 181
9.422 isalpha ................................................... 181
9.423 isalpha_l................................................. 182
9.424 isascii ................................................... 182
9.425 isastream................................................. 182
9.426 isatty .................................................... 183
9.427 isblank ................................................... 183
9.428 isblank_l................................................. 183
9.429 iscntrl ................................................... 184
9.430 iscntrl_l................................................. 184
9.431 isdigit ................................................... 184
9.432 isdigit_l................................................. 185
9.433 isfinite .................................................. 185
9.434 isgraph ................................................... 186
9.435 isgraph_l................................................. 186
9.436 isgreater................................................. 186
9.437 isgreaterequal........................................... 187
9.438 isinf ..................................................... 187
9.439 isless .................................................... 187
9.440 islessequal .............................................. 187
9.441 islessgreater ............................................ 188
9.442 islower ................................................... 188
9.443 islower_l................................................. 188
9.444 isnan ..................................................... 189
9.445 isnormal .................................................. 189
9.446 isprint ................................................... 189
9.447 isprint_l................................................. 190
9.448 ispunct ................................................... 190
9.449 ispunct_l................................................. 191
9.450 isspace ................................................... 191
9.451 isspace_l................................................. 191
9.452 isunordered .............................................. 192
9.453 isupper ................................................... 192
9.454 isupper_l................................................. 192
9.455 iswalnum .................................................. 193
9.456 iswalnum_l ............................................... 193
xiv
9.457 iswalpha .................................................. 193
9.458 iswalpha_l ............................................... 193
9.459 iswblank .................................................. 194
9.460 iswblank_l ............................................... 194
9.461 iswcntrl .................................................. 194
9.462 iswcntrl_l ............................................... 195
9.463 iswctype .................................................. 195
9.464 iswctype_l ............................................... 195
9.465 iswdigit .................................................. 196
9.466 iswdigit_l ............................................... 196
9.467 iswgraph .................................................. 196
9.468 iswgraph_l ............................................... 196
9.469 iswlower .................................................. 197
9.470 iswlower_l ............................................... 197
9.471 iswprint .................................................. 197
9.472 iswprint_l ............................................... 198
9.473 iswpunct .................................................. 198
9.474 iswpunct_l ............................................... 198
9.475 iswspace .................................................. 198
9.476 iswspace_l ............................................... 199
9.477 iswupper .................................................. 199
9.478 iswupper_l ............................................... 199
9.479 iswxdigit................................................. 200
9.480 iswxdigit_l .............................................. 200
9.481 isxdigit .................................................. 200
9.482 isxdigit_l ............................................... 201
9.483 j0 ......................................................... 201
9.484 j1 ......................................................... 201
9.485 jn ......................................................... 201
9.486 jrand48 ................................................... 202
9.487 kill ...................................................... 202
9.488 killpg .................................................... 202
9.489 l64a ...................................................... 202
9.490 labs ...................................................... 202
9.491 lchown .................................................... 203
9.492 lcong48 ................................................... 203
9.493 ldexp ..................................................... 203
9.494 ldexpf .................................................... 203
9.495 ldexpl .................................................... 204
9.496 ldiv ...................................................... 204
9.497 lfind ..................................................... 204
9.498 lgamma .................................................... 204
9.499 lgammaf ................................................... 205
9.500 lgammal ................................................... 205
9.501 link ...................................................... 205
9.502 linkat .................................................... 205
9.503 lio_listio ............................................... 206
9.504 listen .................................................... 206
xv
9.505 llabs ..................................................... 206
9.506 lldiv ..................................................... 207
9.507 llrint .................................................... 207
9.508 llrintf ................................................... 207
9.509 llrintl ................................................... 207
9.510 llround ................................................... 208
9.511 llroundf .................................................. 208
9.512 llroundl .................................................. 208
9.513 localeconv ............................................... 208
9.514 localtime................................................. 209
9.515 localtime_r .............................................. 209
9.516 lockf ..................................................... 209
9.517 log........................................................ 209
9.518 log10 ..................................................... 210
9.519 log10f .................................................... 210
9.520 log10l .................................................... 210
9.521 log1p ..................................................... 211
9.522 log1pf .................................................... 211
9.523 log1pl .................................................... 211
9.524 log2 ...................................................... 212
9.525 log2f ..................................................... 212
9.526 log2l ..................................................... 213
9.527 logb ...................................................... 213
9.528 logbf ..................................................... 213
9.529 logbl ..................................................... 213
9.530 logf ...................................................... 214
9.531 logl ...................................................... 214
9.532 longjmp ................................................... 214
9.533 lrand48 ................................................... 215
9.534 lrint ..................................................... 215
9.535 lrintf .................................................... 215
9.536 lrintl .................................................... 215
9.537 lround .................................................... 216
9.538 lroundf ................................................... 216
9.539 lroundl ................................................... 216
9.540 lsearch ................................................... 216
9.541 lseek ..................................................... 217
9.542 lstat ..................................................... 217
9.543 malloc .................................................... 217
9.544 mblen ..................................................... 218
9.545 mbrlen .................................................... 218
9.546 mbrtoc16 .................................................. 218
9.547 mbrtoc32 .................................................. 219
9.548 mbrtowc ................................................... 219
9.549 mbsinit ................................................... 219
9.550 mbsnrtowcs ............................................... 220
9.551 mbsrtowcs................................................. 220
9.552 mbstowcs .................................................. 220
xvi
9.553 mbtowc .................................................... 221
9.554 memccpy ................................................... 221
9.555 memchr .................................................... 221
9.556 memcmp .................................................... 221
9.557 memcpy .................................................... 222
9.558 memmove ................................................... 222
9.559 memset .................................................... 222
9.560 mkdir ..................................................... 222
9.561 mkdirat ................................................... 223
9.562 mkdtemp ................................................... 223
9.563 mkfifo .................................................... 223
9.564 mkfifoat .................................................. 224
9.565 mknod ..................................................... 224
9.566 mknodat ................................................... 224
9.567 mkstemp ................................................... 225
9.568 mktime .................................................... 225
9.569 mlock ..................................................... 225
9.570 mlockall .................................................. 226
9.571 mmap ...................................................... 226
9.572 modf ...................................................... 226
9.573 modff ..................................................... 227
9.574 modfl ..................................................... 227
9.575 mprotect .................................................. 227
9.576 mq_close .................................................. 228
9.577 mq_getattr ............................................... 228
9.578 mq_notify................................................. 228
9.579 mq_open ................................................... 228
9.580 mq_receive ............................................... 229
9.581 mq_send ................................................... 229
9.582 mq_setattr ............................................... 229
9.583 mq_timedreceive ......................................... 229
9.584 mq_timedsend ............................................. 230
9.585 mq_unlink................................................. 230
9.586 mrand48 ................................................... 230
9.587 msgctl .................................................... 230
9.588 msgget .................................................... 231
9.589 msgrcv .................................................... 231
9.590 msgsnd .................................................... 231
9.591 msync ..................................................... 231
9.592 munlock ................................................... 232
9.593 munlockall ............................................... 232
9.594 munmap .................................................... 232
9.595 nan........................................................ 232
9.596 nanf ...................................................... 233
9.597 nanl ...................................................... 233
9.598 nanosleep................................................. 233
9.599 nearbyint................................................. 233
9.600 nearbyintf ............................................... 234
xvii
9.601 nearbyintl ............................................... 234
9.602 newlocale................................................. 234
9.603 nextafter................................................. 234
9.604 nextafterf ............................................... 235
9.605 nextafterl ............................................... 235
9.606 nexttoward ............................................... 235
9.607 nexttowardf .............................................. 235
9.608 nexttowardl .............................................. 236
9.609 nftw ...................................................... 236
9.610 nice ...................................................... 236
9.611 nl_langinfo .............................................. 236
9.612 nl_langinfo_l ............................................ 237
9.613 nrand48 ................................................... 237
9.614 ntohl ..................................................... 237
9.615 ntohs ..................................................... 238
9.616 open ...................................................... 238
9.617 openat .................................................... 238
9.618 opendir ................................................... 239
9.619 openlog ................................................... 239
9.620 open_memstream........................................... 239
9.621 open_wmemstream ......................................... 239
9.622 optarg .................................................... 240
9.623 opterr .................................................... 240
9.624 optind .................................................... 240
9.625 optopt .................................................... 240
9.626 pathconf .................................................. 241
9.627 pause ..................................................... 241
9.628 pclose .................................................... 241
9.629 perror .................................................... 241
9.630 pipe ...................................................... 242
9.631 poll ...................................................... 242
9.632 popen ..................................................... 242
9.633 posix_fadvise ............................................ 243
9.634 posix_fallocate ......................................... 243
9.635 posix_madvise ............................................ 243
9.636 posix_mem_offset ........................................ 244
9.637 posix_memalign........................................... 244
9.638 posix_openpt ............................................. 244
9.639 posix_spawn .............................................. 245
9.640 posix_spawn_file_actions_addclose .................... 245
9.641 posix_spawn_file_actions_adddup2 ..................... 245
9.642 posix_spawn_file_actions_addopen ..................... 246
9.643 posix_spawn_file_actions_destroy ..................... 246
9.644 posix_spawn_file_actions_init ......................... 246
9.645 posix_spawnattr_destroy ................................ 246
9.646 posix_spawnattr_getflags ............................... 247
9.647 posix_spawnattr_getpgroup.............................. 247
9.648 posix_spawnattr_getschedparam ......................... 247
xviii
9.649 posix_spawnattr_getschedpolicy ........................ 248
9.650 posix_spawnattr_getsigdefault ......................... 248
9.651 posix_spawnattr_getsigmask ............................ 248
9.652 posix_spawnattr_init.................................... 248
9.653 posix_spawnattr_setflags ............................... 249
9.654 posix_spawnattr_setpgroup.............................. 249
9.655 posix_spawnattr_setschedparam ......................... 249
9.656 posix_spawnattr_setschedpolicy ........................ 250
9.657 posix_spawnattr_setsigdefault ......................... 250
9.658 posix_spawnattr_setsigmask ............................ 250
9.659 posix_spawnp ............................................. 250
9.660 posix_trace_attr_destroy ............................... 251
9.661 posix_trace_attr_getclockres .......................... 251
9.662 posix_trace_attr_getcreatetime ........................ 251
9.663 posix_trace_attr_getgenversion ........................ 252
9.664 posix_trace_attr_getinherited ......................... 252
9.665 posix_trace_attr_getlogfullpolicy .................... 252
9.666 posix_trace_attr_getlogsize ........................... 252
9.667 posix_trace_attr_getmaxdatasize....................... 253
9.668 posix_trace_attr_getmaxsystemeventsize .............. 253
9.669 posix_trace_attr_getmaxusereventsize................. 253
9.670 posix_trace_attr_getname ............................... 254
9.671 posix_trace_attr_getstreamfullpolicy................. 254
9.672 posix_trace_attr_getstreamsize ........................ 254
9.673 posix_trace_attr_init .................................. 254
9.674 posix_trace_attr_setinherited ......................... 255
9.675 posix_trace_attr_setlogfullpolicy .................... 255
9.676 posix_trace_attr_setlogsize ........................... 255
9.677 posix_trace_attr_setmaxdatasize....................... 256
9.678 posix_trace_attr_setname ............................... 256
9.679 posix_trace_attr_setstreamfullpolicy................. 256
9.680 posix_trace_attr_setstreamsize ........................ 256
9.681 posix_trace_clear ....................................... 257
9.682 posix_trace_close ....................................... 257
9.683 posix_trace_create ...................................... 257
9.684 posix_trace_create_withlog ............................ 258
9.685 posix_trace_event ....................................... 258
9.686 posix_trace_eventid_equal.............................. 258
9.687 posix_trace_eventid_get_name .......................... 258
9.688 posix_trace_eventid_open ............................... 259
9.689 posix_trace_eventset_add ............................... 259
9.690 posix_trace_eventset_del ............................... 259
9.691 posix_trace_eventset_empty ............................ 260
9.692 posix_trace_eventset_fill.............................. 260
9.693 posix_trace_eventset_ismember ......................... 260
9.694 posix_trace_eventtypelist_getnext_id................. 260
9.695 posix_trace_eventtypelist_rewind ..................... 261
9.696 posix_trace_flush ....................................... 261
xix
9.697 posix_trace_get_attr.................................... 261
9.698 posix_trace_get_filter ................................. 262
9.699 posix_trace_get_status ................................. 262
9.700 posix_trace_getnext_event.............................. 262
9.701 posix_trace_open ........................................ 262
9.702 posix_trace_rewind ...................................... 263
9.703 posix_trace_set_filter ................................. 263
9.704 posix_trace_shutdown.................................... 263
9.705 posix_trace_start ....................................... 264
9.706 posix_trace_stop ........................................ 264
9.707 posix_trace_timedgetnext_event ........................ 264
9.708 posix_trace_trid_eventid_open ......................... 264
9.709 posix_trace_trygetnext_event .......................... 265
9.710 posix_typed_mem_get_info ............................... 265
9.711 posix_typed_mem_open.................................... 265
9.712 pow........................................................ 266
9.713 powf ...................................................... 266
9.714 powl ...................................................... 266
9.715 pread ..................................................... 266
9.716 printf .................................................... 267
9.717 pselect ................................................... 268
9.718 psiginfo .................................................. 268
9.719 psignal ................................................... 268
9.720 pthread_atfork........................................... 269
9.721 pthread_attr_destroy.................................... 269
9.722 pthread_attr_getdetachstate ........................... 269
9.723 pthread_attr_getguardsize.............................. 269
9.724 pthread_attr_getinheritsched .......................... 270
9.725 pthread_attr_getschedparam ............................ 270
9.726 pthread_attr_getschedpolicy ........................... 270
9.727 pthread_attr_getscope .................................. 270
9.728 pthread_attr_getstack .................................. 271
9.729 pthread_attr_getstacksize.............................. 271
9.730 pthread_attr_init ....................................... 271
9.731 pthread_attr_setdetachstate ........................... 271
9.732 pthread_attr_setguardsize.............................. 272
9.733 pthread_attr_setinheritsched .......................... 272
9.734 pthread_attr_setschedparam ............................ 272
9.735 pthread_attr_setschedpolicy ........................... 272
9.736 pthread_attr_setscope .................................. 273
9.737 pthread_attr_setstack .................................. 273
9.738 pthread_attr_setstacksize.............................. 273
9.739 pthread_barrier_destroy ................................ 273
9.740 pthread_barrier_init.................................... 274
9.741 pthread_barrier_wait.................................... 274
9.742 pthread_barrierattr_destroy ........................... 274
9.743 pthread_barrierattr_getpshared ........................ 275
9.744 pthread_barrierattr_init ............................... 275
xx
9.745 pthread_barrierattr_setpshared ........................ 275
9.746 pthread_cancel........................................... 275
9.747 pthread_cleanup_pop ..................................... 276
9.748 pthread_cleanup_push.................................... 276
9.749 pthread_cond_broadcast ................................. 276
9.750 pthread_cond_destroy.................................... 276
9.751 pthread_cond_init ....................................... 277
9.752 pthread_cond_signal ..................................... 277
9.753 pthread_cond_timedwait ................................. 277
9.754 pthread_cond_wait ....................................... 277
9.755 pthread_condattr_destroy ............................... 278
9.756 pthread_condattr_getclock.............................. 278
9.757 pthread_condattr_getpshared ........................... 278
9.758 pthread_condattr_init .................................. 278
9.759 pthread_condattr_setclock.............................. 279
9.760 pthread_condattr_setpshared ........................... 279
9.761 pthread_create........................................... 279
9.762 pthread_detach........................................... 279
9.763 pthread_equal ............................................ 280
9.764 pthread_exit ............................................. 280
9.765 pthread_getconcurrency ................................. 280
9.766 pthread_getcpuclockid .................................. 280
9.767 pthread_getschedparam .................................. 281
9.768 pthread_getspecific ..................................... 281
9.769 pthread_join ............................................. 281
9.770 pthread_key_create ...................................... 281
9.771 pthread_key_delete ...................................... 282
9.772 pthread_kill ............................................. 282
9.773 pthread_mutex_consistent ............................... 282
9.774 pthread_mutex_destroy .................................. 282
9.775 pthread_mutex_getprioceiling .......................... 283
9.776 pthread_mutex_init ...................................... 283
9.777 pthread_mutex_lock ...................................... 283
9.778 pthread_mutex_setprioceiling .......................... 283
9.779 pthread_mutex_timedlock ................................ 284
9.780 pthread_mutex_trylock .................................. 284
9.781 pthread_mutex_unlock.................................... 284
9.782 pthread_mutexattr_destroy.............................. 284
9.783 pthread_mutexattr_getprioceiling ..................... 285
9.784 pthread_mutexattr_getprotocol ......................... 285
9.785 pthread_mutexattr_getpshared .......................... 285
9.786 pthread_mutexattr_getrobust ........................... 285
9.787 pthread_mutexattr_gettype.............................. 286
9.788 pthread_mutexattr_init ................................. 286
9.789 pthread_mutexattr_setprioceiling ..................... 286
9.790 pthread_mutexattr_setprotocol ......................... 286
9.791 pthread_mutexattr_setpshared .......................... 287
9.792 pthread_mutexattr_setrobust ........................... 287
xxi
9.793 pthread_mutexattr_settype.............................. 287
9.794 pthread_once ............................................. 287
9.795 pthread_rwlock_destroy ................................. 288
9.796 pthread_rwlock_init ..................................... 288
9.797 pthread_rwlock_rdlock .................................. 288
9.798 pthread_rwlock_timedrdlock ............................ 288
9.799 pthread_rwlock_timedwrlock ............................ 289
9.800 pthread_rwlock_tryrdlock ............................... 289
9.801 pthread_rwlock_trywrlock ............................... 289
9.802 pthread_rwlock_unlock .................................. 289
9.803 pthread_rwlock_wrlock .................................. 290
9.804 pthread_rwlockattr_destroy ............................ 290
9.805 pthread_rwlockattr_getpshared ......................... 290
9.806 pthread_rwlockattr_init ................................ 290
9.807 pthread_rwlockattr_setpshared ......................... 291
9.808 pthread_self ............................................. 291
9.809 pthread_setcancelstate ................................. 291
9.810 pthread_setcanceltype .................................. 291
9.811 pthread_setconcurrency ................................. 292
9.812 pthread_setschedparam .................................. 292
9.813 pthread_setschedprio.................................... 292
9.814 pthread_setspecific ..................................... 292
9.815 pthread_sigmask ......................................... 293
9.816 pthread_spin_destroy.................................... 293
9.817 pthread_spin_init ....................................... 293
9.818 pthread_spin_lock ....................................... 294
9.819 pthread_spin_trylock.................................... 294
9.820 pthread_spin_unlock ..................................... 294
9.821 pthread_testcancel ...................................... 294
9.822 ptsname ................................................... 295
9.823 putc ...................................................... 295
9.824 putc_unlocked ............................................ 295
9.825 putchar ................................................... 296
9.826 putchar_unlocked ........................................ 296
9.827 putenv .................................................... 296
9.828 putmsg .................................................... 297
9.829 putpmsg ................................................... 297
9.830 puts ...................................................... 297
9.831 pututxline ............................................... 297
9.832 putwc ..................................................... 298
9.833 putwchar .................................................. 298
9.834 pwrite .................................................... 298
9.835 qsort ..................................................... 299
9.836 quick_exit ............................................... 299
9.837 raise ..................................................... 299
9.838 rand ...................................................... 299
9.839 rand_r .................................................... 300
9.840 random .................................................... 300
xxii
9.841 read ...................................................... 300
9.842 readdir ................................................... 300
9.843 readdir_r................................................. 301
9.844 readlink .................................................. 301
9.845 readlinkat ............................................... 302
9.846 readv ..................................................... 302
9.847 realloc ................................................... 302
9.848 realpath .................................................. 303
9.849 recv ...................................................... 303
9.850 recvfrom .................................................. 304
9.851 recvmsg ................................................... 304
9.852 regcomp ................................................... 304
9.853 regerror .................................................. 304
9.854 regexec ................................................... 305
9.855 regfree ................................................... 305
9.856 remainder................................................. 305
9.857 remainderf ............................................... 305
9.858 remainderl ............................................... 306
9.859 remove .................................................... 306
9.860 remque .................................................... 306
9.861 remquo .................................................... 307
9.862 remquof ................................................... 307
9.863 remquol ................................................... 307
9.864 rename .................................................... 307
9.865 renameat .................................................. 308
9.866 rewind .................................................... 309
9.867 rewinddir................................................. 309
9.868 rint ...................................................... 309
9.869 rintf ..................................................... 310
9.870 rintl ..................................................... 310
9.871 rmdir ..................................................... 310
9.872 round ..................................................... 311
9.873 roundf .................................................... 311
9.874 roundl .................................................... 311
9.875 scalbln ................................................... 312
9.876 scalblnf .................................................. 312
9.877 scalblnl .................................................. 312
9.878 scalbn .................................................... 313
9.879 scalbnf ................................................... 313
9.880 scalbnl ................................................... 313
9.881 scandir ................................................... 313
9.882 scanf ..................................................... 314
9.883 sched_get_priority_max ................................. 314
9.884 sched_get_priority_min ................................. 314
9.885 sched_getparam........................................... 315
9.886 sched_getscheduler ...................................... 315
9.887 sched_rr_get_interval .................................. 315
9.888 sched_setparam........................................... 315
xxiii
9.889 sched_setscheduler ...................................... 316
9.890 sched_yield .............................................. 316
9.891 seed48 .................................................... 316
9.892 seekdir ................................................... 316
9.893 select .................................................... 317
9.894 sem_close................................................. 317
9.895 sem_destroy .............................................. 317
9.896 sem_getvalue ............................................. 318
9.897 sem_init .................................................. 318
9.898 sem_open .................................................. 318
9.899 sem_post .................................................. 318
9.900 sem_timedwait ............................................ 319
9.901 sem_trywait .............................................. 319
9.902 sem_unlink ............................................... 319
9.903 sem_wait .................................................. 319
9.904 semctl .................................................... 320
9.905 semget .................................................... 320
9.906 semop ..................................................... 320
9.907 send ...................................................... 320
9.908 sendmsg ................................................... 321
9.909 sendto .................................................... 321
9.910 setbuf .................................................... 321
9.911 setegid ................................................... 321
9.912 setenv .................................................... 322
9.913 seteuid ................................................... 322
9.914 setgid .................................................... 322
9.915 setgrent .................................................. 322
9.916 sethostent ............................................... 323
9.917 setitimer................................................. 323
9.918 setjmp .................................................... 323
9.919 setkey .................................................... 323
9.920 setlocale................................................. 324
9.921 setlogmask ............................................... 324
9.922 setnetent................................................. 324
9.923 setpgid ................................................... 324
9.924 setpgrp ................................................... 325
9.925 setpriority .............................................. 325
9.926 setprotoent .............................................. 325
9.927 setpwent .................................................. 325
9.928 setregid .................................................. 325
9.929 setreuid .................................................. 326
9.930 setrlimit................................................. 326
9.931 setservent ............................................... 326
9.932 setsid .................................................... 326
9.933 setsockopt ............................................... 327
9.934 setstate .................................................. 327
9.935 setuid .................................................... 327
9.936 setutxent................................................. 327
xxiv
9.937 setvbuf ................................................... 328
9.938 shm_open .................................................. 328
9.939 shm_unlink ............................................... 328
9.940 shmat ..................................................... 328
9.941 shmctl .................................................... 329
9.942 shmdt ..................................................... 329
9.943 shmget .................................................... 329
9.944 shutdown .................................................. 329
9.945 sigaction................................................. 330
9.946 sigaddset................................................. 330
9.947 sigaltstack .............................................. 330
9.948 sigdelset................................................. 331
9.949 sigemptyset .............................................. 331
9.950 sigfillset ............................................... 331
9.951 sighold ................................................... 331
9.952 sigignore................................................. 332
9.953 siginterrupt ............................................. 332
9.954 sigismember .............................................. 332
9.955 siglongjmp ............................................... 332
9.956 signal .................................................... 333
9.957 signbit ................................................... 333
9.958 signgam ................................................... 333
9.959 sigpause .................................................. 333
9.960 sigpending ............................................... 334
9.961 sigprocmask .............................................. 334
9.962 sigqueue .................................................. 334
9.963 sigrelse .................................................. 334
9.964 sigset .................................................... 335
9.965 sigsetjmp................................................. 335
9.966 sigsuspend ............................................... 335
9.967 sigtimedwait ............................................. 335
9.968 sigwait ................................................... 336
9.969 sigwaitinfo .............................................. 336
9.970 sin........................................................ 336
9.971 sinf ...................................................... 336
9.972 sinh ...................................................... 337
9.973 sinhf ..................................................... 337
9.974 sinhl ..................................................... 337
9.975 sinl ...................................................... 337
9.976 sleep ..................................................... 338
9.977 snprintf .................................................. 338
9.978 sockatmark ............................................... 339
9.979 socket .................................................... 340
9.980 socketpair ............................................... 340
9.981 sprintf ................................................... 340
9.982 sqrt ...................................................... 341
9.983 sqrtf ..................................................... 341
9.984 sqrtl ..................................................... 342
xxv
9.985 srand ..................................................... 342
9.986 srand48 ................................................... 342
9.987 srandom ................................................... 342
9.988 sscanf .................................................... 343
9.989 stat ...................................................... 343
9.990 statvfs ................................................... 343
9.991 stderr .................................................... 344
9.992 stdin ..................................................... 344
9.993 stdout .................................................... 344
9.994 stpcpy .................................................... 345
9.995 stpncpy ................................................... 345
9.996 strcasecmp ............................................... 345
9.997 strcasecmp_l ............................................. 346
9.998 strcat .................................................... 346
9.999 strchr .................................................... 346
9.1000 strcmp ................................................... 346
9.1001 strcoll .................................................. 346
9.1002 strcoll_l ............................................... 347
9.1003 strcpy ................................................... 347
9.1004 strcspn .................................................. 347
9.1005 strdup ................................................... 347
9.1006 strerror................................................. 348
9.1007 strerror_l .............................................. 348
9.1008 strerror_r .............................................. 348
9.1009 strfmon .................................................. 349
9.1010 strfmon_l ............................................... 350
9.1011 strftime................................................. 350
9.1012 strftime_l .............................................. 350
9.1013 strlen ................................................... 350
9.1014 strncasecmp ............................................. 351
9.1015 strncasecmp_l ........................................... 351
9.1016 strncat .................................................. 351
9.1017 strncmp .................................................. 351
9.1018 strncpy .................................................. 352
9.1019 strndup .................................................. 352
9.1020 strnlen .................................................. 352
9.1021 strpbrk .................................................. 352
9.1022 strptime................................................. 353
9.1023 strrchr .................................................. 353
9.1024 strsignal ............................................... 353
9.1025 strspn ................................................... 353
9.1026 strstr ................................................... 354
9.1027 strtod ................................................... 354
9.1028 strtof ................................................... 355
9.1029 strtoimax ............................................... 355
9.1030 strtok ................................................... 356
9.1031 strtok_r................................................. 356
9.1032 strtol ................................................... 356
xxvi
9.1033 strtold .................................................. 356
9.1034 strtoll .................................................. 357
9.1035 strtoul .................................................. 357
9.1036 strtoull................................................. 357
9.1037 strtoumax ............................................... 357
9.1038 strxfrm .................................................. 358
9.1039 strxfrm_l ............................................... 358
9.1040 swab ..................................................... 358
9.1041 swprintf................................................. 358
9.1042 swscanf .................................................. 359
9.1043 symlink .................................................. 359
9.1044 symlinkat ............................................... 359
9.1045 sync ..................................................... 360
9.1046 sysconf .................................................. 360
9.1047 syslog ................................................... 360
9.1048 system ................................................... 360
9.1049 tan ...................................................... 361
9.1050 tanf ..................................................... 361
9.1051 tanh ..................................................... 361
9.1052 tanhf .................................................... 361
9.1053 tanhl .................................................... 361
9.1054 tanl ..................................................... 362
9.1055 tcdrain .................................................. 362
9.1056 tcflow ................................................... 362
9.1057 tcflush .................................................. 362
9.1058 tcgetattr ............................................... 363
9.1059 tcgetpgrp ............................................... 363
9.1060 tcgetsid................................................. 363
9.1061 tcsendbreak ............................................. 364
9.1062 tcsetattr ............................................... 364
9.1063 tcsetpgrp ............................................... 364
9.1064 tdelete .................................................. 364
9.1065 telldir .................................................. 365
9.1066 tempnam .................................................. 365
9.1067 tfind .................................................... 365
9.1068 tgamma ................................................... 365
9.1069 tgammaf .................................................. 366
9.1070 tgammal .................................................. 366
9.1071 time ..................................................... 366
9.1072 timer_create ............................................ 366
9.1073 timer_delete ............................................ 367
9.1074 timer_getoverrun ....................................... 367
9.1075 timer_gettime ........................................... 367
9.1076 timer_settime ........................................... 367
9.1077 times .................................................... 368
9.1078 timezone................................................. 368
9.1079 tmpfile .................................................. 368
9.1080 tmpnam ................................................... 368
xxvii
9.1081 toascii .................................................. 369
9.1082 tolower .................................................. 369
9.1083 tolower_l ............................................... 369
9.1084 toupper .................................................. 369
9.1085 toupper_l ............................................... 370
9.1086 towctrans ............................................... 370
9.1087 towctrans_l ............................................. 370
9.1088 towlower................................................. 370
9.1089 towlower_l .............................................. 371
9.1090 towupper................................................. 371
9.1091 towupper_l .............................................. 371
9.1092 trunc .................................................... 372
9.1093 truncate................................................. 372
9.1094 truncf ................................................... 372
9.1095 truncl ................................................... 373
9.1096 tsearch .................................................. 373
9.1097 ttyname .................................................. 373
9.1098 ttyname_r ............................................... 373
9.1099 twalk .................................................... 374
9.1100 tzname ................................................... 374
9.1101 tzset .................................................... 374
9.1102 ulimit ................................................... 375
9.1103 umask .................................................... 375
9.1104 uname .................................................... 375
9.1105 ungetc ................................................... 375
9.1106 ungetwc .................................................. 375
9.1107 unlink ................................................... 376
9.1108 unlinkat................................................. 376
9.1109 unlockpt................................................. 377
9.1110 unsetenv................................................. 377
9.1111 uselocale ............................................... 378
9.1112 utime .................................................... 378
9.1113 utimensat ............................................... 378
9.1114 utimes ................................................... 379
9.1115 va_arg ................................................... 380
9.1116 va_copy .................................................. 380
9.1117 va_end ................................................... 380
9.1118 va_start................................................. 381
9.1119 vdprintf................................................. 381
9.1120 vfprintf................................................. 381
9.1121 vfscanf .................................................. 383
9.1122 vfwprintf ............................................... 383
9.1123 vfwscanf................................................. 384
9.1124 vprintf .................................................. 384
9.1125 vscanf ................................................... 385
9.1126 vsnprintf ............................................... 386
9.1127 vsprintf................................................. 387
9.1128 vsscanf .................................................. 388
xxviii
9.1129 vswprintf ............................................... 388
9.1130 vswscanf................................................. 389
9.1131 vwprintf................................................. 389
9.1132 vwscanf .................................................. 389
9.1133 wait ..................................................... 390
9.1134 waitid ................................................... 390
9.1135 waitpid .................................................. 390
9.1136 wcpcpy ................................................... 390
9.1137 wcpncpy .................................................. 391
9.1138 wcrtomb .................................................. 391
9.1139 wcscasecmp .............................................. 391
9.1140 wcscasecmp_l ............................................ 392
9.1141 wcscat ................................................... 392
9.1142 wcschr ................................................... 392
9.1143 wcscmp ................................................... 392
9.1144 wcscoll .................................................. 393
9.1145 wcscoll_l ............................................... 393
9.1146 wcscpy ................................................... 393
9.1147 wcscspn .................................................. 393
9.1148 wcsdup ................................................... 394
9.1149 wcsftime................................................. 394
9.1150 wcslen ................................................... 394
9.1151 wcsncasecmp ............................................. 394
9.1152 wcsncasecmp_l ........................................... 395
9.1153 wcsncat .................................................. 395
9.1154 wcsncmp .................................................. 395
9.1155 wcsncpy .................................................. 396
9.1156 wcsnlen .................................................. 396
9.1157 wcsnrtombs .............................................. 396
9.1158 wcspbrk .................................................. 396
9.1159 wcsrchr .................................................. 397
9.1160 wcsrtombs ............................................... 397
9.1161 wcsspn ................................................... 397
9.1162 wcsstr ................................................... 398
9.1163 wcstod ................................................... 398
9.1164 wcstof ................................................... 398
9.1165 wcstoimax ............................................... 398
9.1166 wcstok ................................................... 399
9.1167 wcstol ................................................... 399
9.1168 wcstold .................................................. 399
9.1169 wcstoll .................................................. 400
9.1170 wcstombs................................................. 400
9.1171 wcstoul .................................................. 400
9.1172 wcstoull................................................. 400
9.1173 wcstoumax ............................................... 401
9.1174 wcswidth................................................. 401
9.1175 wcsxfrm .................................................. 401
9.1176 wcsxfrm_l ............................................... 401
xxix
9.1177 wctob .................................................... 402
9.1178 wctomb ................................................... 402
9.1179 wctrans .................................................. 402
9.1180 wctrans_l ............................................... 403
9.1181 wctype ................................................... 403
9.1182 wctype_l................................................. 403
9.1183 wcwidth .................................................. 404
9.1184 wmemchr .................................................. 404
9.1185 wmemcmp .................................................. 404
9.1186 wmemcpy .................................................. 405
9.1187 wmemmove................................................. 405
9.1188 wmemset .................................................. 405
9.1189 wordexp .................................................. 405
9.1190 wordfree................................................. 406
9.1191 wprintf .................................................. 406
9.1192 write .................................................... 406
9.1193 writev ................................................... 407
9.1194 wscanf ................................................... 407
9.1195 y0 ........................................................ 407
9.1196 y1 ........................................................ 408
9.1197 yn ........................................................ 408
10 Past POSIX Function Substitutes ......... 409
10.1 bcmp........................................................ 409
10.2 bcopy ...................................................... 409
10.3 bsd_signal ................................................ 409
10.4 bzero ...................................................... 410
10.5 ecvt........................................................ 410
10.6 fcvt........................................................ 410
10.7 ftime ...................................................... 410
10.8 gcvt........................................................ 411
10.9 getcontext ................................................ 411
10.10 gethostbyaddr ............................................ 411
10.11 gethostbyname ............................................ 411
10.12 getwd ..................................................... 411
10.13 h_errno ................................................... 412
10.14 index ..................................................... 412
10.15 makecontext .............................................. 412
10.16 mktemp .................................................... 412
10.17 pthread_attr_getstackaddr.............................. 413
10.18 pthread_attr_setstackaddr.............................. 413
10.19 rindex .................................................... 413
10.20 scalb ..................................................... 413
10.21 setcontext ............................................... 413
10.22 swapcontext .............................................. 414
10.23 ualarm .................................................... 414
10.24 usleep .................................................... 414
10.25 vfork ..................................................... 414
xxx
10.26 wcswcs .................................................... 415
11 Glibc Header File Substitutes ............. 416
11.1 ‘a.out.h................................................... 416
11.2 ‘aliases.h................................................ 416
11.3 ‘alloca.h.................................................. 416
11.4 ‘ar.h...................................................... 417
11.5 ‘argp.h.................................................... 417
11.6 ‘argz.h.................................................... 417
11.7 ‘byteswap.h............................................... 418
11.8 ‘crypt.h................................................... 418
11.9 ‘endian.h.................................................. 418
11.10 ‘envz.h................................................... 419
11.11 ‘err.h.................................................... 419
11.12 ‘error.h.................................................. 419
11.13 ‘execinfo.h.............................................. 420
11.14 ‘fpu_control.h........................................... 420
11.15 ‘fstab.h.................................................. 420
11.16 ‘fts.h.................................................... 421
11.17 ‘getopt.h................................................ 421
11.18 ‘gshadow.h............................................... 421
11.19 ‘ieee754.h............................................... 422
11.20 ‘ifaddrs.h............................................... 422
11.21 ‘libintl.h............................................... 422
11.22 ‘mcheck.h................................................ 423
11.23 ‘mntent.h................................................ 423
11.24 ‘obstack.h............................................... 423
11.25 ‘paths.h.................................................. 424
11.26 ‘printf.h................................................ 424
11.27 ‘pty.h.................................................... 424
11.28 ‘resolv.h................................................ 425
11.29 ‘shadow.h................................................ 425
11.30 ‘sys/ioctl.h............................................. 425
11.31 ‘sysexits.h.............................................. 426
11.32 ‘ttyent.h................................................ 426
12 Glibc Function Substitutes ................. 427
12.1 Glibc Extensions to <aio.h> ................................ 427
12.1.1 aio_init .............................................. 427
12.2 Glibc <aliases.h> ......................................... 427
12.2.1 endaliasent .......................................... 427
12.2.2 getaliasbyname ....................................... 427
12.2.3 getaliasbyname_r..................................... 428
12.2.4 getaliasent .......................................... 428
12.2.5 getaliasent_r ........................................ 428
12.2.6 setaliasent .......................................... 428
12.3 Glibc <argp.h> ............................................. 428
12.3.1 argp_err_exit_status ................................ 428
xxxi
12.3.2 argp_error ............................................ 429
12.3.3 argp_failure ......................................... 429
12.3.4 argp_help ............................................. 429
12.3.5 argp_parse ............................................ 429
12.3.6 argp_program_bug_address ........................... 429
12.3.7 argp_program_version ................................ 430
12.3.8 argp_program_version_hook .......................... 430
12.3.9 argp_state_help ...................................... 430
12.3.10 argp_usage........................................... 430
12.4 Glibc <argz.h> ............................................. 430
12.4.1 argz_add .............................................. 430
12.4.2 argz_add_sep ......................................... 431
12.4.3 argz_append .......................................... 431
12.4.4 argz_count ............................................ 431
12.4.5 argz_create .......................................... 431
12.4.6 argz_create_sep ...................................... 431
12.4.7 argz_delete .......................................... 432
12.4.8 argz_extract ......................................... 432
12.4.9 argz_insert .......................................... 432
12.4.10 argz_next ............................................ 432
12.4.11 argz_replace ........................................ 433
12.4.12 argz_stringify ...................................... 433
12.5 Glibc Extensions to <arpa/inet.h> ......................... 433
12.5.1 inet_aton ............................................. 433
12.5.2 inet_lnaof ............................................ 433
12.5.3 inet_makeaddr ........................................ 433
12.5.4 inet_net_ntop ........................................ 434
12.5.5 inet_net_pton ........................................ 434
12.5.6 inet_neta ............................................. 434
12.5.7 inet_netof ............................................ 434
12.5.8 inet_network ......................................... 434
12.5.9 inet_nsap_addr ....................................... 434
12.5.10 inet_nsap_ntoa ...................................... 435
12.6 Glibc <byteswap.h> ........................................ 435
12.6.1 bswap_16 .............................................. 435
12.6.2 bswap_32 .............................................. 435
12.6.3 bswap_64 .............................................. 435
12.7 Glibc Extensions to <complex.h> ........................... 435
12.7.1 clog10 ................................................ 435
12.7.2 clog10f ............................................... 436
12.7.3 clog10l ............................................... 436
12.8 Glibc <crypt.h>............................................ 436
12.8.1 crypt_r ............................................... 436
12.8.2 encrypt_r ............................................. 436
12.8.3 setkey_r .............................................. 436
12.9 Glibc Extensions to <ctype.h> ............................. 437
12.9.1 isctype ............................................... 437
12.10 Glibc Extensions to <dirent.h> ........................... 437
xxxii
12.10.1 getdirentries ....................................... 437
12.10.2 scandirat ............................................ 437
12.10.3 versionsort ......................................... 437
12.11 Glibc Extensions to <dlfcn.h> ............................ 437
12.11.1 dladdr ............................................... 438
12.11.2 dladdr1 .............................................. 438
12.11.3 dlinfo ............................................... 438
12.11.4 dlmopen .............................................. 438
12.11.5 dlvsym ............................................... 438
12.12 Glibc <envz.h>............................................ 439
12.12.1 envz_add ............................................. 439
12.12.2 envz_entry........................................... 439
12.12.3 envz_get ............................................. 439
12.12.4 envz_merge........................................... 439
12.12.5 envz_remove ......................................... 439
12.12.6 envz_strip........................................... 440
12.13 Glibc <err.h> ............................................. 440
12.13.1 err ................................................... 440
12.13.2 errx.................................................. 440
12.13.3 verr.................................................. 440
12.13.4 verrx ................................................ 440
12.13.5 vwarn ................................................ 441
12.13.6 vwarnx ............................................... 441
12.13.7 warn.................................................. 441
12.13.8 warnx ................................................ 441
12.14 Glibc Extensions to <errno.h> ............................ 441
12.14.1 program_invocation_name ........................... 441
12.14.2 program_invocation_short_name .................... 442
12.15 Glibc <error.h> .......................................... 442
12.15.1 error ................................................ 442
12.15.2 error_at_line ....................................... 442
12.15.3 error_message_count ................................ 442
12.15.4 error_one_per_line ................................. 442
12.15.5 error_print_progname ............................... 443
12.16 Glibc <execinfo.h> ....................................... 443
12.16.1 backtrace ............................................ 443
12.16.2 backtrace_symbols .................................. 443
12.16.3 backtrace_symbols_fd ............................... 443
12.17 Glibc Extensions to <fcntl.h> ............................ 443
12.17.1 fallocate ............................................ 443
12.17.2 name_to_handle_at .................................. 444
12.17.3 readahead ............................................ 444
12.17.4 open_by_handle_at .................................. 444
12.18 Glibc Extensions to <fenv.h>.............................. 444
12.18.1 fedisableexcept..................................... 444
12.18.2 feenableexcept ...................................... 445
12.18.3 fegetexcept ......................................... 445
12.19 Glibc Extensions to <fmtmsg.h> ........................... 445
xxxiii
12.19.1 addseverity ......................................... 445
12.20 Glibc <fstab.h> .......................................... 445
12.20.1 endfsent ............................................. 445
12.20.2 getfsent ............................................. 445
12.20.3 getfsfile ............................................ 446
12.20.4 getfsspec ............................................ 446
12.20.5 setfsent ............................................. 446
12.21 Glibc <fts.h> ............................................. 446
12.21.1 fts_children ........................................ 446
12.21.2 fts_close ............................................ 446
12.21.3 fts_open ............................................. 447
12.21.4 fts_read ............................................. 447
12.21.5 fts_set .............................................. 447
12.22 Glibc <getopt.h> ......................................... 447
12.22.1 getopt_long ......................................... 447
12.22.2 getopt_long_only ................................... 448
12.23 Glibc Extensions to <glob.h>.............................. 448
12.23.1 glob_pattern_p ...................................... 449
12.24 Glibc Extensions to <gnu/libc-version.h> ............... 449
12.24.1 gnu_get_libc_release ............................... 449
12.24.2 gnu_get_libc_version ............................... 449
12.25 Glibc Extensions to <grp.h> ............................... 449
12.25.1 fgetgrent ............................................ 449
12.25.2 fgetgrent_r ......................................... 449
12.25.3 getgrent_r........................................... 450
12.25.4 getgrouplist ........................................ 450
12.25.5 initgroups........................................... 450
12.25.6 putgrent ............................................. 450
12.25.7 setgroups ............................................ 450
12.26 Glibc <gshadow.h> ........................................ 451
12.26.1 endsgent ............................................. 451
12.26.2 fgetsgent ............................................ 451
12.26.3 fgetsgent_r ......................................... 451
12.26.4 getsgent ............................................. 451
12.26.5 getsgent_r........................................... 451
12.26.6 getsgnam ............................................. 452
12.26.7 getsgnam_r........................................... 452
12.26.8 putsgent ............................................. 452
12.26.9 setsgent ............................................. 452
12.26.10 sgetsgent........................................... 452
12.26.11 sgetsgent_r ........................................ 453
12.27 Glibc <ifaddrs.h> ........................................ 453
12.27.1 getifaddrs........................................... 453
12.27.2 freeifaddrs ......................................... 453
12.28 Glibc <libintl.h> ........................................ 453
12.28.1 bind_textdomain_codeset ........................... 453
12.28.2 bindtextdomain ...................................... 453
12.28.3 dcgettext ............................................ 454
xxxiv
12.28.4 dcngettext........................................... 454
12.28.5 dgettext ............................................. 454
12.28.6 dngettext ............................................ 454
12.28.7 gettext .............................................. 454
12.28.8 ngettext ............................................. 455
12.28.9 textdomain........................................... 455
12.29 Glibc <link.h>............................................ 455
12.29.1 dl_iterate_phdr..................................... 455
12.30 Glibc <malloc.h> ......................................... 455
12.30.1 mallinfo ............................................. 455
12.30.2 malloc_get_state ................................... 455
12.30.3 malloc_set_state ................................... 456
12.30.4 malloc_info ......................................... 456
12.30.5 malloc_stats ........................................ 456
12.30.6 malloc_trim ......................................... 456
12.30.7 malloc_usable_size ................................. 456
12.30.8 mallopt .............................................. 457
12.30.9 memalign ............................................. 457
12.30.10 pvalloc ............................................. 457
12.31 Glibc Extensions to <math.h>.............................. 457
12.31.1 drem.................................................. 457
12.31.2 dremf ................................................ 457
12.31.3 dreml ................................................ 458
12.31.4 exp10 ................................................ 458
12.31.5 exp10f ............................................... 458
12.31.6 exp10l ............................................... 458
12.31.7 finite ............................................... 458
12.31.8 finitef .............................................. 459
12.31.9 finitel .............................................. 459
12.31.10 gamma ............................................... 459
12.31.11 gammaf .............................................. 459
12.31.12 gammal .............................................. 459
12.31.13 isinff .............................................. 459
12.31.14 isinfl .............................................. 460
12.31.15 isnanf .............................................. 460
12.31.16 isnanl .............................................. 460
12.31.17 j0f .................................................. 460
12.31.18 j0l .................................................. 460
12.31.19 j1f .................................................. 461
12.31.20 j1l .................................................. 461
12.31.21 jnf .................................................. 461
12.31.22 jnl .................................................. 461
12.31.23 lgamma_r ............................................ 461
12.31.24 lgammaf_r........................................... 462
12.31.25 lgammal_r........................................... 462
12.31.26 matherr ............................................. 462
12.31.27 pow10 ............................................... 462
12.31.28 pow10f .............................................. 462
xxxv
12.31.29 pow10l .............................................. 463
12.31.30 scalbf .............................................. 463
12.31.31 scalbl .............................................. 463
12.31.32 significand ........................................ 463
12.31.33 significandf ....................................... 463
12.31.34 significandl ....................................... 464
12.31.35 sincos .............................................. 464
12.31.36 sincosf ............................................. 464
12.31.37 sincosl ............................................. 464
12.31.38 y0f .................................................. 464
12.31.39 y0l .................................................. 465
12.31.40 y1f .................................................. 465
12.31.41 y1l .................................................. 465
12.31.42 ynf .................................................. 465
12.31.43 ynl .................................................. 465
12.32 Glibc <mcheck.h> ......................................... 466
12.32.1 mcheck ............................................... 466
12.32.2 mcheck_check_all ................................... 466
12.32.3 mcheck_pedantic..................................... 466
12.32.4 mprobe ............................................... 466
12.32.5 mtrace ............................................... 466
12.32.6 muntrace ............................................. 467
12.33 Glibc <mntent.h> ......................................... 467
12.33.1 addmntent ............................................ 467
12.33.2 endmntent ............................................ 467
12.33.3 getmntent ............................................ 467
12.33.4 getmntent_r ......................................... 467
12.33.5 hasmntopt ............................................ 468
12.33.6 setmntent ............................................ 468
12.34 Glibc Extensions to <netdb.h> ............................ 468
12.34.1 endnetgrent ......................................... 468
12.34.2 gethostbyaddr_r..................................... 468
12.34.3 gethostbyname2 ...................................... 468
12.34.4 gethostbyname2_r ................................... 469
12.34.5 gethostbyname_r..................................... 469
12.34.6 gethostent_r ........................................ 469
12.34.7 getnetbyaddr_r ...................................... 469
12.34.8 getnetbyname_r ...................................... 469
12.34.9 getnetent_r ......................................... 470
12.34.10 getnetgrent ........................................ 470
12.34.11 getnetgrent_r ...................................... 470
12.34.12 getprotobyname_r .................................. 470
12.34.13 getprotobynumber_r ................................ 470
12.34.14 getprotoent_r ...................................... 471
12.34.15 getservbyname_r ................................... 471
12.34.16 getservbyport_r ................................... 471
12.34.17 getservent_r ....................................... 471
12.34.18 herror .............................................. 471
xxxvi
12.34.19 hstrerror........................................... 471
12.34.20 innetgr ............................................. 472
12.34.21 rcmd ................................................ 472
12.34.22 rcmd_af ............................................. 472
12.34.23 rexec ............................................... 472
12.34.24 rexec_af ............................................ 472
12.34.25 rresvport........................................... 472
12.34.26 rresvport_af ....................................... 473
12.34.27 ruserok ............................................. 473
12.34.28 ruserok_af ......................................... 473
12.34.29 setnetgrent ........................................ 473
12.35 Glibc <netinet/ether.h> ................................. 473
12.35.1 ether_aton........................................... 473
12.35.2 ether_aton_r ........................................ 474
12.35.3 ether_hostton ....................................... 474
12.35.4 ether_line........................................... 474
12.35.5 ether_ntoa........................................... 474
12.35.6 ether_ntoa_r ........................................ 474
12.35.7 ether_ntohost ....................................... 475
12.36 Glibc Extensions to <netinet/in.h> ...................... 475
12.36.1 bindresvport ........................................ 475
12.36.2 getipv4sourcefilter ................................ 475
12.36.3 getsourcefilter..................................... 475
12.36.4 in6addr_any ......................................... 475
12.36.5 in6addr_loopback ................................... 476
12.36.6 inet6_option_alloc ................................. 476
12.36.7 inet6_option_append ................................ 476
12.36.8 inet6_option_find .................................. 476
12.36.9 inet6_option_init .................................. 476
12.36.10 inet6_option_next ................................. 476
12.36.11 inet6_option_space ................................ 477
12.36.12 inet6_opt_append .................................. 477
12.36.13 inet6_opt_find ..................................... 477
12.36.14 inet6_opt_finish .................................. 477
12.36.15 inet6_opt_get_val ................................. 477
12.36.16 inet6_opt_init ..................................... 478
12.36.17 inet6_opt_next ..................................... 478
12.36.18 inet6_opt_set_val ................................. 478
12.36.19 inet6_rth_add ...................................... 478
12.36.20 inet6_rth_getaddr ................................. 478
12.36.21 inet6_rth_init ..................................... 479
12.36.22 inet6_rth_reverse ................................. 479
12.36.23 inet6_rth_segments ................................ 479
12.36.24 inet6_rth_space ................................... 479
12.36.25 setipv4sourcefilter ............................... 479
12.36.26 setsourcefilter ................................... 480
12.37 Glibc <obstack.h> ........................................ 480
12.37.1 obstack_alloc_failed_handler ..................... 480
xxxvii
12.37.2 obstack_exit_failure ............................... 480
12.37.3 obstack_free ........................................ 480
12.37.4 obstack_printf ...................................... 480
12.37.5 obstack_vprintf..................................... 481
12.38 Glibc <printf.h> ......................................... 482
12.38.1 parse_printf_format ................................ 482
12.38.2 printf_size ......................................... 483
12.38.3 printf_size_info ................................... 483
12.38.4 register_printf_function .......................... 483
12.38.5 register_printf_modifier .......................... 483
12.38.6 register_printf_specifier ......................... 483
12.38.7 register_printf_type ............................... 484
12.39 Glibc Extensions to <pthread.h> .......................... 484
12.39.1 pthread_attr_getaffinity_np ...................... 484
12.39.2 pthread_attr_setaffinity_np ...................... 484
12.39.3 pthread_getaffinity_np ............................ 484
12.39.4 pthread_getattr_np ................................. 485
12.39.5 pthread_getname_np ................................. 485
12.39.6 pthread_kill_other_threads_np .................... 485
12.39.7 pthread_mutex_consistent_np ...................... 485
12.39.8 pthread_mutexattr_getrobust_np ................... 485
12.39.9 pthread_mutexattr_setrobust_np ................... 486
12.39.10 pthread_rwlockattr_getkind_np ................... 486
12.39.11 pthread_rwlockattr_setkind_np ................... 486
12.39.12 pthread_setaffinity_np ........................... 486
12.39.13 pthread_setname_np ................................ 487
12.39.14 pthread_sigqueue .................................. 487
12.39.15 pthread_timedjoin_np.............................. 487
12.39.16 pthread_tryjoin_np ................................ 487
12.39.17 pthread_yield ...................................... 487
12.40 Glibc <pty.h> ............................................. 488
12.40.1 forkpty .............................................. 488
12.40.2 openpty .............................................. 488
12.41 Glibc Extensions to <pwd.h> ............................... 489
12.41.1 fgetpwent ............................................ 489
12.41.2 fgetpwent_r ......................................... 489
12.41.3 getpw ................................................ 489
12.41.4 getpwent_r........................................... 489
12.41.5 putpwent ............................................. 489
12.42 Glibc Extensions to <regex.h> ............................ 490
12.42.1 re_comp .............................................. 490
12.42.2 re_compile_fastmap ................................. 490
12.42.3 re_compile_pattern ................................. 490
12.42.4 re_exec .............................................. 490
12.42.5 re_match ............................................. 490
12.42.6 re_match_2........................................... 491
12.42.7 re_search ............................................ 491
12.42.8 re_search_2 ......................................... 491
xxxviii
12.42.9 re_set_registers ................................... 491
12.42.10 re_set_syntax ...................................... 491
12.42.11 re_syntax_options ................................. 492
12.43 Glibc <regexp.h> ......................................... 492
12.43.1 advance .............................................. 492
12.43.2 loc1.................................................. 492
12.43.3 loc2.................................................. 492
12.43.4 locs.................................................. 492
12.43.5 step.................................................. 493
12.44 Glibc <resolv.h> ......................................... 493
12.44.1 dn_expand ............................................ 493
12.44.2 res_init ............................................. 493
12.44.3 res_mkquery ......................................... 493
12.44.4 res_query ............................................ 493
12.44.5 res_querydomain..................................... 494
12.44.6 res_search........................................... 494
12.45 Glibc <rpc/auth.h> ....................................... 494
12.45.1 authdes_create ...................................... 494
12.45.2 authdes_pk_create .................................. 494
12.45.3 authnone_create..................................... 494
12.45.4 authunix_create..................................... 495
12.45.5 authunix_create_default ........................... 495
12.45.6 getnetname........................................... 495
12.45.7 host2netname ........................................ 495
12.45.8 key_decryptsession ................................. 495
12.45.9 key_decryptsession_pk.............................. 495
12.45.10 key_encryptsession ................................ 496
12.45.11 key_encryptsession_pk ............................ 496
12.45.12 key_gendes ......................................... 496
12.45.13 key_get_conv ....................................... 496
12.45.14 key_secretkey_is_set.............................. 496
12.45.15 key_setsecret ...................................... 497
12.45.16 netname2host ....................................... 497
12.45.17 netname2user ....................................... 497
12.45.18 user2netname ....................................... 497
12.45.19 xdr_des_block ...................................... 497
12.45.20 xdr_opaque_auth ................................... 497
12.46 Glibc <rpc/auth_des.h> .................................. 498
12.46.1 authdes_getucred ................................... 498
12.46.2 getpublickey ........................................ 498
12.46.3 getsecretkey ........................................ 498
12.46.4 rtime ................................................ 498
12.47 Glibc <rpc/auth_unix.h> ................................. 498
12.47.1 xdr_authunix_parms ................................. 498
12.48 Glibc <rpc/clnt.h> ....................................... 499
12.48.1 callrpc .............................................. 499
12.48.2 clnt_create ......................................... 499
12.48.3 clnt_pcreateerror .................................. 499
xxxix
12.48.4 clnt_perrno ......................................... 499
12.48.5 clnt_perror ......................................... 499
12.48.6 clnt_spcreateerror ................................. 499
12.48.7 clnt_sperrno ........................................ 500
12.48.8 clnt_sperror ........................................ 500
12.48.9 clntraw_create ...................................... 500
12.48.10 clnttcp_create ..................................... 500
12.48.11 clntudp_bufcreate ................................. 500
12.48.12 clntudp_create ..................................... 500
12.48.13 clntunix_create ................................... 501
12.48.14 get_myaddress ...................................... 501
12.48.15 getrpcport ......................................... 501
12.48.16 rpc_createerr ...................................... 501
12.49 Glibc <rpc/des_crypt.h> ................................. 501
12.49.1 cbc_crypt ............................................ 501
12.49.2 des_setparity ....................................... 502
12.49.3 ecb_crypt ............................................ 502
12.50 Glibc <rpc/key_prot.h> .................................. 502
12.50.1 xdr_cryptkeyarg..................................... 502
12.50.2 xdr_cryptkeyarg2 ................................... 502
12.50.3 xdr_cryptkeyres..................................... 502
12.50.4 xdr_getcredres ...................................... 503
12.50.5 xdr_key_netstarg ................................... 503
12.50.6 xdr_key_netstres ................................... 503
12.50.7 xdr_keybuf........................................... 503
12.50.8 xdr_keystatus ....................................... 503
12.50.9 xdr_netnamestr ...................................... 503
12.50.10 xdr_unixcred ....................................... 504
12.51 Glibc <rpc/netdb.h> ...................................... 504
12.51.1 endrpcent ............................................ 504
12.51.2 getrpcbyname ........................................ 504
12.51.3 getrpcbyname_r ...................................... 504
12.51.4 getrpcbynumber ...................................... 504
12.51.5 getrpcbynumber_r ................................... 505
12.51.6 getrpcent ............................................ 505
12.51.7 getrpcent_r ......................................... 505
12.51.8 setrpcent ............................................ 505
12.52 Glibc <rpc/pmap_clnt.h> ................................. 505
12.52.1 clnt_broadcast ...................................... 505
12.52.2 pmap_getmaps ........................................ 506
12.52.3 pmap_getport ........................................ 506
12.52.4 pmap_rmtcall ........................................ 506
12.52.5 pmap_set ............................................. 506
12.52.6 pmap_unset........................................... 506
12.53 Glibc <rpc/pmap_prot.h> ................................. 506
12.53.1 xdr_pmap ............................................. 507
12.53.2 xdr_pmaplist ........................................ 507
12.54 Glibc <rpc/pmap_rmt.h> .................................. 507
xl
12.54.1 xdr_rmtcall_args ................................... 507
12.54.2 xdr_rmtcallres ...................................... 507
12.55 Glibc <rpc/rpc_msg.h> ................................... 507
12.55.1 xdr_callhdr ......................................... 507
12.55.2 xdr_callmsg ......................................... 508
12.55.3 xdr_replymsg ........................................ 508
12.56 Glibc <rpc/svc.h> ........................................ 508
12.56.1 svc_exit ............................................. 508
12.56.2 svc_fdset ............................................ 508
12.56.3 svc_getreq........................................... 508
12.56.4 svc_getreq_common .................................. 509
12.56.5 svc_getreq_poll..................................... 509
12.56.6 svc_getreqset ....................................... 509
12.56.7 svc_max_pollfd ...................................... 509
12.56.8 svc_pollfd........................................... 509
12.56.9 svc_register ........................................ 510
12.56.10 svc_run ............................................. 510
12.56.11 svc_sendreply ...................................... 510
12.56.12 svc_unregister ..................................... 510
12.56.13 svcerr_auth ........................................ 510
12.56.14 svcerr_decode ...................................... 510
12.56.15 svcerr_noproc ...................................... 511
12.56.16 svcerr_noprog ...................................... 511
12.56.17 svcerr_progvers ................................... 511
12.56.18 svcerr_systemerr .................................. 511
12.56.19 svcerr_weakauth ................................... 511
12.56.20 svcraw_create ...................................... 511
12.56.21 svctcp_create ...................................... 512
12.56.22 svcudp_bufcreate .................................. 512
12.56.23 svcudp_create ...................................... 512
12.56.24 svcunix_create ..................................... 512
12.56.25 xprt_register ...................................... 512
12.56.26 xprt_unregister ................................... 512
12.57 Glibc <rpc/xdr.h> ........................................ 513
12.57.1 xdr_array ............................................ 513
12.57.2 xdr_bool ............................................. 513
12.57.3 xdr_bytes ............................................ 513
12.57.4 xdr_char ............................................. 513
12.57.5 xdr_double........................................... 513
12.57.6 xdr_enum ............................................. 514
12.57.7 xdr_float ............................................ 514
12.57.8 xdr_free ............................................. 514
12.57.9 xdr_hyper ............................................ 514
12.57.10 xdr_int ............................................. 514
12.57.11 xdr_int16_t ........................................ 514
12.57.12 xdr_int32_t ........................................ 515
12.57.13 xdr_int64_t ........................................ 515
12.57.14 xdr_int8_t ......................................... 515
xli
12.57.15 xdr_long ............................................ 515
12.57.16 xdr_longlong_t ..................................... 515
12.57.17 xdr_netobj ......................................... 516
12.57.18 xdr_opaque ......................................... 516
12.57.19 xdr_pointer ........................................ 516
12.57.20 xdr_quad_t ......................................... 516
12.57.21 xdr_reference ...................................... 516
12.57.22 xdr_short........................................... 516
12.57.23 xdr_sizeof ......................................... 517
12.57.24 xdr_string ......................................... 517
12.57.25 xdr_u_char ......................................... 517
12.57.26 xdr_u_hyper ........................................ 517
12.57.27 xdr_u_int........................................... 517
12.57.28 xdr_u_long ......................................... 517
12.57.29 xdr_u_longlong_t .................................. 518
12.57.30 xdr_u_quad_t ....................................... 518
12.57.31 xdr_u_short ........................................ 518
12.57.32 xdr_uint16_t ....................................... 518
12.57.33 xdr_uint32_t ....................................... 518
12.57.34 xdr_uint64_t ....................................... 519
12.57.35 xdr_uint8_t ........................................ 519
12.57.36 xdr_union........................................... 519
12.57.37 xdr_vector ......................................... 519
12.57.38 xdr_void ............................................ 519
12.57.39 xdr_wrapstring ..................................... 520
12.57.40 xdrmem_create ...................................... 520
12.57.41 xdrrec_create ...................................... 520
12.57.42 xdrrec_endofrecord ................................ 520
12.57.43 xdrrec_eof ......................................... 520
12.57.44 xdrrec_skiprecord ................................. 520
12.57.45 xdrstdio_create ................................... 521
12.58 Glibc <rpcsvc/nislib.h> ................................. 521
12.58.1 nis_add .............................................. 521
12.58.2 nis_add_entry ....................................... 521
12.58.3 nis_addmember ....................................... 521
12.58.4 nis_checkpoint ...................................... 521
12.58.5 nis_clone_object ................................... 522
12.58.6 nis_creategroup..................................... 522
12.58.7 nis_destroy_object ................................. 522
12.58.8 nis_destroygroup ................................... 522
12.58.9 nis_dir_cmp ......................................... 522
12.58.10 nis_domain_of ...................................... 523
12.58.11 nis_domain_of_r ................................... 523
12.58.12 nis_first_entry ................................... 523
12.58.13 nis_freenames ...................................... 523
12.58.14 nis_freeresult ..................................... 523
12.58.15 nis_freeservlist .................................. 524
12.58.16 nis_freetags ....................................... 524
xlii
12.58.17 nis_getnames ....................................... 524
12.58.18 nis_getservlist ................................... 524
12.58.19 nis_ismember ....................................... 524
12.58.20 nis_leaf_of ........................................ 525
12.58.21 nis_leaf_of_r ...................................... 525
12.58.22 nis_lerror ......................................... 525
12.58.23 nis_list ............................................ 525
12.58.24 nis_local_directory ............................... 525
12.58.25 nis_local_group ................................... 526
12.58.26 nis_local_host ..................................... 526
12.58.27 nis_local_principal ............................... 526
12.58.28 nis_lookup ......................................... 526
12.58.29 nis_mkdir........................................... 526
12.58.30 nis_modify ......................................... 527
12.58.31 nis_modify_entry .................................. 527
12.58.32 nis_name_of ........................................ 527
12.58.33 nis_name_of_r ...................................... 527
12.58.34 nis_next_entry ..................................... 527
12.58.35 nis_perror ......................................... 528
12.58.36 nis_ping ............................................ 528
12.58.37 nis_print_directory ............................... 528
12.58.38 nis_print_entry ................................... 528
12.58.39 nis_print_group ................................... 528
12.58.40 nis_print_group_entry ............................ 529
12.58.41 nis_print_link ..................................... 529
12.58.42 nis_print_object .................................. 529
12.58.43 nis_print_result .................................. 529
12.58.44 nis_print_rights .................................. 529
12.58.45 nis_print_table ................................... 530
12.58.46 nis_remove ......................................... 530
12.58.47 nis_remove_entry .................................. 530
12.58.48 nis_removemember .................................. 530
12.58.49 nis_rmdir........................................... 530
12.58.50 nis_servstate ...................................... 531
12.58.51 nis_sperrno ........................................ 531
12.58.52 nis_sperror ........................................ 531
12.58.53 nis_sperror_r ...................................... 531
12.58.54 nis_stats........................................... 531
12.58.55 nis_verifygroup ................................... 532
12.59 Glibc <rpcsvc/nis_callback.h> .......................... 532
12.59.1 xdr_cback_data ...................................... 532
12.59.2 xdr_obj_p ............................................ 532
12.60 Glibc <rpcsvc/yp.h> ...................................... 532
12.60.1 xdr_domainname ...................................... 532
12.60.2 xdr_keydat........................................... 532
12.60.3 xdr_mapname ......................................... 533
12.60.4 xdr_peername ........................................ 533
12.60.5 xdr_valdat........................................... 533
xliii
12.60.6 xdr_ypbind_binding ................................. 533
12.60.7 xdr_ypbind_resp..................................... 533
12.60.8 xdr_ypbind_resptype ................................ 534
12.60.9 xdr_ypbind_setdom .................................. 534
12.60.10 xdr_ypmap_parms ................................... 534
12.60.11 xdr_ypmaplist ...................................... 534
12.60.12 xdr_yppush_status ................................. 534
12.60.13 xdr_yppushresp_xfr ................................ 534
12.60.14 xdr_ypreq_key ...................................... 535
12.60.15 xdr_ypreq_nokey ................................... 535
12.60.16 xdr_ypreq_xfr ...................................... 535
12.60.17 xdr_ypresp_all ..................................... 535
12.60.18 xdr_ypresp_key_val ................................ 535
12.60.19 xdr_ypresp_maplist ................................ 535
12.60.20 xdr_ypresp_master ................................. 536
12.60.21 xdr_ypresp_order .................................. 536
12.60.22 xdr_ypresp_val ..................................... 536
12.60.23 xdr_ypresp_xfr ..................................... 536
12.60.24 xdr_ypstat ......................................... 536
12.60.25 xdr_ypxfrstat ...................................... 537
12.61 Glibc <rpcsvc/yp_prot.h> ................................ 537
12.61.1 xdr_ypall ............................................ 537
12.62 Glibc <rpcsvc/ypclnt.h> ................................. 537
12.62.1 yp_all ............................................... 537
12.62.2 yp_bind .............................................. 537
12.62.3 yp_first ............................................. 537
12.62.4 yp_get_default_domain.............................. 538
12.62.5 yp_master ............................................ 538
12.62.6 yp_match ............................................. 538
12.62.7 yp_next .............................................. 538
12.62.8 yp_order ............................................. 538
12.62.9 yp_unbind ............................................ 538
12.62.10 yp_update........................................... 539
12.62.11 ypbinderr_string .................................. 539
12.62.12 yperr_string ....................................... 539
12.62.13 ypprot_err ......................................... 539
12.63 Glibc <rpcsvc/ypupd.h> .................................. 539
12.63.1 xdr_yp_buf........................................... 539
12.63.2 xdr_ypdelete_args .................................. 540
12.63.3 xdr_ypupdate_args .................................. 540
12.64 Glibc Extensions to <sched.h> ............................ 540
12.64.1 clone ................................................ 540
12.64.2 sched_getaffinity .................................. 540
12.64.3 sched_setaffinity .................................. 540
12.64.4 setns ................................................ 541
12.65 Glibc Extensions to <search.h> ........................... 541
12.65.1 hcreate_r ............................................ 541
12.65.2 hdestroy_r........................................... 541
xliv
12.65.3 hsearch_r ............................................ 541
12.65.4 tdestroy ............................................. 541
12.66 Glibc Extensions to <selinux/selinux.h>................. 542
12.66.1 fgetfilecon ......................................... 542
12.66.2 getfilecon........................................... 542
12.66.3 lgetfilecon ......................................... 542
12.67 Glibc <shadow.h> ......................................... 543
12.67.1 endspent ............................................. 543
12.67.2 fgetspent ............................................ 543
12.67.3 fgetspent_r ......................................... 543
12.67.4 getspent ............................................. 543
12.67.5 getspent_r........................................... 544
12.67.6 getspnam ............................................. 544
12.67.7 getspnam_r........................................... 544
12.67.8 lckpwdf .............................................. 544
12.67.9 putspent ............................................. 544
12.67.10 setspent ............................................ 545
12.67.11 sgetspent........................................... 545
12.67.12 sgetspent_r ........................................ 545
12.67.13 ulckpwdf ............................................ 545
12.68 Glibc Extensions to <signal.h> ........................... 545
12.68.1 gsignal .............................................. 545
12.68.2 sigandset ............................................ 546
12.68.3 sigblock ............................................. 546
12.68.4 siggetmask........................................... 546
12.68.5 sigisemptyset ....................................... 546
12.68.6 sigorset ............................................. 546
12.68.7 sigreturn ............................................ 547
12.68.8 sigsetmask........................................... 547
12.68.9 sigstack ............................................. 547
12.68.10 sigvec .............................................. 547
12.68.11 ssignal ............................................. 547
12.68.12 sys_siglist ........................................ 547
12.68.13 sysv_signal ........................................ 548
12.69 Glibc Extensions to <stdio.h> ............................ 548
12.69.1 asprintf ............................................. 548
12.69.2 cuserid .............................................. 549
12.69.3 clearerr_unlocked .................................. 549
12.69.4 fcloseall ............................................ 549
12.69.5 feof_unlocked ....................................... 549
12.69.6 ferror_unlocked..................................... 549
12.69.7 fflush_unlocked..................................... 550
12.69.8 fgetc_unlocked ...................................... 550
12.69.9 fgets_unlocked ...................................... 550
12.69.10 fileno_unlocked ................................... 550
12.69.11 fopencookie ........................................ 550
12.69.12 fputc_unlocked ..................................... 551
12.69.13 fputs_unlocked ..................................... 551
xlv
12.69.14 fread_unlocked ..................................... 551
12.69.15 fwrite_unlocked ................................... 551
12.69.16 getw ................................................ 551
12.69.17 putw ................................................ 552
12.69.18 setbuffer........................................... 552
12.69.19 setlinebuf ......................................... 552
12.69.20 sys_errlist ........................................ 552
12.69.21 sys_nerr ............................................ 552
12.69.22 tmpnam_r ............................................ 552
12.69.23 vasprintf........................................... 553
12.70 Glibc Extensions to <stdlib.h> ........................... 553
12.70.1 canonicalize_file_name ............................ 553
12.70.2 cfree ................................................ 554
12.70.3 clearenv ............................................. 554
12.70.4 drand48_r ............................................ 554
12.70.5 ecvt_r ............................................... 554
12.70.6 erand48_r ............................................ 554
12.70.7 fcvt_r ............................................... 555
12.70.8 getloadavg........................................... 555
12.70.9 getpt ................................................ 555
12.70.10 initstate_r ........................................ 555
12.70.11 jrand48_r........................................... 555
12.70.12 lcong48_r........................................... 556
12.70.13 lrand48_r........................................... 556
12.70.14 mkostemp ............................................ 556
12.70.15 mkostemps........................................... 556
12.70.16 mrand48_r........................................... 557
12.70.17 mkstemps ............................................ 557
12.70.18 nrand48_r........................................... 557
12.70.19 on_exit ............................................. 557
12.70.20 ptsname_r........................................... 558
12.70.21 qecvt ............................................... 558
12.70.22 qecvt_r ............................................. 558
12.70.23 qfcvt ............................................... 558
12.70.24 qfcvt_r ............................................. 558
12.70.25 qgcvt ............................................... 559
12.70.26 qsort_r ............................................. 559
12.70.27 random_r ............................................ 559
12.70.28 rpmatch ............................................. 559
12.70.29 seed48_r ............................................ 559
12.70.30 setstate_r ......................................... 560
12.70.31 srand48_r........................................... 560
12.70.32 srandom_r........................................... 560
12.70.33 strtod_l ............................................ 560
12.70.34 strtof_l ............................................ 560
12.70.35 strtol_l ............................................ 561
12.70.36 strtold_l........................................... 561
12.70.37 strtoll_l........................................... 561
xlvi
12.70.38 strtoq .............................................. 561
12.70.39 strtoul_l........................................... 561
12.70.40 strtoull_l ......................................... 562
12.70.41 strtouq ............................................. 562
12.70.42 valloc .............................................. 562
12.71 Glibc Extensions to <string.h> ........................... 562
12.71.1 ffsl.................................................. 562
12.71.2 ffsll ................................................ 562
12.71.3 memfrob .............................................. 563
12.71.4 memmem ............................................... 563
12.71.5 mempcpy .............................................. 563
12.71.6 memrchr .............................................. 563
12.71.7 rawmemchr ............................................ 564
12.71.8 strcasestr........................................... 564
12.71.9 strchrnul ............................................ 564
12.71.10 strfry .............................................. 564
12.71.11 strsep .............................................. 565
12.71.12 strverscmp ......................................... 565
12.72 Glibc <sys/capability.h> ................................ 565
12.72.1 capget ............................................... 565
12.72.2 capset ............................................... 565
12.73 Glibc <sys/epoll.h> ...................................... 565
12.73.1 epoll_create ........................................ 565
12.73.2 epoll_ctl ............................................ 566
12.73.3 epoll_wait........................................... 566
12.74 Glibc <sys/fanotify.h> .................................. 566
12.74.1 fanotify_init ....................................... 566
12.74.2 fanotify_mark ....................................... 566
12.75 Glibc <sys/file.h> ....................................... 566
12.75.1 flock ................................................ 566
12.76 Glibc <sys/fsuid.h> ...................................... 567
12.76.1 setfsgid ............................................. 567
12.76.2 setfsuid ............................................. 567
12.77 Glibc <sys/gmon.h> ....................................... 567
12.77.1 monstartup........................................... 567
12.78 Glibc <sys/io.h>,<sys/perm.h> .......................... 567
12.78.1 ioperm ............................................... 567
12.78.2 iopl.................................................. 568
12.79 Glibc <sys/kdaemon.h> ................................... 568
12.79.1 bdflush .............................................. 568
12.80 Glibc <sys/klog.h> ....................................... 568
12.80.1 klogctl .............................................. 568
12.81 Glibc Extensions to <sys/mman.h> ......................... 568
12.81.1 madvise .............................................. 568
12.81.2 mincore .............................................. 568
12.81.3 mremap ............................................... 569
12.81.4 remap_file_pages ................................... 569
12.82 Glibc <sys/mount.h> ...................................... 569
xlvii
12.82.1 mount ................................................ 569
12.82.2 umount ............................................... 569
12.82.3 umount2 .............................................. 569
12.83 Glibc <sys/personality.h> ............................... 570
12.83.1 personality ......................................... 570
12.84 Glibc <sys/prctl.h> ...................................... 570
12.84.1 prctl ................................................ 570
12.85 Glibc <sys/profil.h>..................................... 570
12.85.1 sprofil .............................................. 570
12.86 Glibc <sys/ptrace.h>..................................... 570
12.86.1 ptrace ............................................... 570
12.87 Glibc <sys/quota.h> ...................................... 571
12.87.1 quotactl ............................................. 571
12.88 Glibc <sys/reboot.h>..................................... 571
12.88.1 reboot ............................................... 571
12.89 Glibc Extensions to <sys/resource.h> .................... 571
12.89.1 prlimit .............................................. 571
12.90 Glibc Extensions to <sys/sem.h> .......................... 571
12.90.1 semtimedop........................................... 571
12.91 Glibc <sys/sendfile.h> .................................. 572
12.91.1 sendfile ............................................. 572
12.92 Glibc Extensions to <sys/socket.h> ...................... 572
12.92.1 accept4 .............................................. 572
12.92.2 isfdtype ............................................. 572
12.92.3 recvmmsg ............................................. 572
12.92.4 sendmmsg ............................................. 573
12.93 Glibc Extensions to <sys/stat.h> ......................... 573
12.93.1 lchmod ............................................... 573
12.94 Glibc <sys/statfs.h>..................................... 573
12.94.1 fstatfs .............................................. 573
12.94.2 statfs ............................................... 573
12.95 Glibc <sys/swap.h> ....................................... 574
12.95.1 swapoff .............................................. 574
12.95.2 swapon ............................................... 574
12.96 Glibc <sys/sysctl.h>..................................... 574
12.96.1 sysctl ............................................... 574
12.97 Glibc <sys/sysinfo.h> ................................... 574
12.97.1 get_avphys_pages ................................... 574
12.97.2 get_nprocs........................................... 574
12.97.3 get_nprocs_conf..................................... 575
12.97.4 get_phys_pages ...................................... 575
12.97.5 sysinfo .............................................. 575
12.98 Glibc <sys/syslog.h>..................................... 575
12.98.1 vsyslog .............................................. 575
12.99 Glibc <sys/sysmacros.h> ................................. 576
12.99.1 gnu_dev_major ....................................... 576
12.99.2 gnu_dev_makedev..................................... 576
12.99.3 gnu_dev_minor ....................................... 576
xlviii
12.100 Glibc Extensions to <sys/time.h> ........................ 576
12.100.1 adjtime ............................................. 576
12.100.2 futimes ............................................. 576
12.100.3 futimesat........................................... 577
12.100.4 lutimes ............................................. 577
12.100.5 settimeofday ....................................... 577
12.101 Glibc <sys/timex.h>..................................... 577
12.101.1 adjtimex ............................................ 577
12.101.2 ntp_adjtime ........................................ 578
12.101.3 ntp_gettime ........................................ 578
12.101.4 ntp_gettimex ....................................... 578
12.102 Glibc Extensions to <sys/uio.h> ......................... 578
12.102.1 preadv .............................................. 578
12.102.2 process_vm_readv .................................. 578
12.102.3 process_vm_writev ................................. 579
12.102.4 pwritev ............................................. 579
12.103 Glibc <sys/ustat.h>..................................... 579
12.103.1 ustat ............................................... 579
12.104 Glibc <sys/vlimit.h> ................................... 579
12.104.1 vlimit .............................................. 579
12.105 Glibc <sys/vm86.h> ...................................... 580
12.105.1 vm86 ................................................ 580
12.106 Glibc <sys/vtimes.h> ................................... 580
12.106.1 vtimes .............................................. 580
12.107 Glibc Extensions to <sys/wait.h> ........................ 580
12.107.1 wait3 ............................................... 580
12.107.2 wait4 ............................................... 580
12.108 Glibc <sys/xattr.h>..................................... 580
12.108.1 fgetxattr........................................... 581
12.108.2 flistxattr ......................................... 581
12.108.3 fremovexattr ....................................... 581
12.108.4 fsetxattr........................................... 581
12.108.5 getxattr ............................................ 581
12.108.6 lgetxattr........................................... 582
12.108.7 listxattr........................................... 582
12.108.8 llistxattr ......................................... 582
12.108.9 lremovexattr ....................................... 582
12.108.10 lsetxattr ......................................... 582
12.108.11 removexattr ....................................... 583
12.108.12 setxattr........................................... 583
12.109 Glibc Extensions to <termios.h> ......................... 583
12.109.1 cfmakeraw........................................... 583
12.109.2 cfsetspeed ......................................... 583
12.110 Glibc Extensions to <time.h> ............................ 583
12.110.1 clock_adjtime ...................................... 583
12.110.2 dysize .............................................. 584
12.110.3 getdate_r........................................... 584
12.110.4 stime ............................................... 584
xlix
12.110.5 strptime_l ......................................... 584
12.110.6 timegm .............................................. 584
12.110.7 timelocal........................................... 585
12.110.8 timespec_get ....................................... 585
12.111 Glibc <ttyent.h> ........................................ 585
12.111.1 endttyent........................................... 585
12.111.2 getttyent........................................... 585
12.111.3 getttynam........................................... 585
12.111.4 setttyent........................................... 586
12.112 Glibc Extensions to <unistd.h> .......................... 586
12.112.1 acct ................................................ 586
12.112.2 brk .................................................. 586
12.112.3 chroot .............................................. 586
12.112.4 daemon .............................................. 586
12.112.5 dup3 ................................................ 586
12.112.6 endusershell ....................................... 587
12.112.7 euidaccess ......................................... 587
12.112.8 execvpe ............................................. 587
12.112.9 get_current_dir_name.............................. 587
12.112.10 getdomainname ..................................... 588
12.112.11 getdtablesize ..................................... 588
12.112.12 getpagesize ....................................... 588
12.112.13 getpass ............................................ 588
12.112.14 getresgid ......................................... 589
12.112.15 getresuid ......................................... 589
12.112.16 getusershell ...................................... 589
12.112.17 group_member ...................................... 589
12.112.18 pipe2 .............................................. 589
12.112.19 profil ............................................. 590
12.112.20 revoke ............................................. 590
12.112.21 sbrk ............................................... 590
12.112.22 setlogin........................................... 590
12.112.23 setdomainname ..................................... 590
12.112.24 sethostid ......................................... 591
12.112.25 sethostname ....................................... 591
12.112.26 setresgid ......................................... 591
12.112.27 setresuid ......................................... 591
12.112.28 setusershell ...................................... 591
12.112.29 syncfs ............................................. 592
12.112.30 syscall ............................................ 592
12.112.31 ttyslot ............................................ 592
12.112.32 vhangup ............................................ 592
12.113 Glibc <utmp.h>........................................... 592
12.113.1 endutent ............................................ 592
12.113.2 getutent ............................................ 593
12.113.3 getutent_r ......................................... 593
12.113.4 getutid ............................................. 593
12.113.5 getutid_r........................................... 593
l
12.113.6 getutline........................................... 593
12.113.7 getutline_r ........................................ 594
12.113.8 pututline........................................... 594
12.113.9 setutent ............................................ 594
12.113.10 updwtmp ............................................ 594
12.113.11 utmpname........................................... 594
12.113.12 login .............................................. 595
12.113.13 login_tty ......................................... 595
12.114 Glibc Extensions to <utmpx.h> ........................... 595
12.114.1 getutmp ............................................. 595
12.114.2 getutmpx ............................................ 595
12.114.3 updwtmpx ............................................ 596
12.114.4 utmpxname........................................... 596
12.115 Glibc Extensions to <wchar.h> ........................... 596
12.115.1 fgetwc_unlocked ................................... 596
12.115.2 fgetws_unlocked ................................... 596
12.115.3 fputwc_unlocked ................................... 596
12.115.4 fputws_unlocked ................................... 597
12.115.5 getwc_unlocked ..................................... 597
12.115.6 getwchar_unlocked ................................. 597
12.115.7 putwc_unlocked ..................................... 597
12.115.8 putwchar_unlocked ................................. 598
12.115.9 wcschrnul........................................... 598
12.115.10 wcsftime_l ........................................ 598
12.115.11 wcstod_l........................................... 598
12.115.12 wcstof_l........................................... 599
12.115.13 wcstol_l........................................... 599
12.115.14 wcstold_l ......................................... 599
12.115.15 wcstoll_l ......................................... 599
12.115.16 wcstoq ............................................. 600
12.115.17 wcstoul_l ......................................... 600
12.115.18 wcstoull_l ........................................ 600
12.115.19 wcstouq ............................................ 600
12.115.20 wmempcpy........................................... 601
13 Particular Modules ......................... 602
13.1 alloca....................................................... 602
13.2 alloca-opt................................................... 602
13.3 Safe Allocation Macros...................................... 603
13.4 Compile-time Assertions .................................... 604
13.5 Integer Properties........................................... 605
13.5.1 Integer Type Determination ............................ 605
13.5.2 Integer Bounds ........................................ 605
13.5.3 Integer Range Overflow ................................ 606
13.5.4 Integer Type Overflow ................................. 608
13.6 Character and String Functions in C Locale ................. 609
13.6.1 c-ctype ................................................ 609
13.6.2 c-strcase ............................................... 609
li
13.6.3 c-strcaseeq ............................................. 610
13.6.4 c-strcasestr ............................................ 610
13.6.5 c-strstr ................................................ 610
13.6.6 c-strtod ................................................ 611
13.6.7 c-strtold ............................................... 611
13.7 Quoting .................................................... 611
13.8 error and progname ......................................... 611
13.9 gcd: greatest common divisor ............................... 612
13.10 Searching for Libraries ..................................... 612
Simple Library Tests ........................................... 612
Locating Libraries ............................................. 612
Example of using AC_LIB_LINKFLAGS ........................ 613
Dependencies ............................................... 614
Static vs. shared ............................................ 614
CPPFLAGS vs. LDFLAGS ...................................... 614
Bi-arch systems ............................................. 614
13.11 Controlling the Exported Symbols of Shared Libraries . . . . . . 615
13.12 LD Version Scripts......................................... 617
13.13 Visual Studio Compatibility ............................... 618
13.14 Supporting Relocation ..................................... 619
13.15 func ....................................................... 621
13.16 configmake ................................................ 621
13.17 warnings .................................................. 622
13.18 manywarnings ............................................. 622
13.19 Running self-tests under valgrind .......................... 623
13.20 stat-size ................................................... 624
14 Regular expressions......................... 625
14.1 Overview ................................................... 625
14.2 Regular Expression Syntax .................................. 625
14.2.1 Syntax Bits ............................................ 626
14.2.2 Predefined Syntaxes.................................... 628
14.2.3 Collating Elements vs. Characters ...................... 630
14.2.4 The Backslash Character ............................... 630
14.3 Common Operators ......................................... 631
14.3.1 The Match-self Operator (ordinary character).......... 631
14.3.2 The Match-any-character Operator (.)................. 631
14.3.3 The Concatenation Operator ........................... 631
14.3.4 Repetition Operators................................... 632
14.3.4.1 The Match-zero-or-more Operator (*)............. 632
14.3.4.2 The Match-one-or-more Operator (+or \+)........ 632
14.3.4.3 The Match-zero-or-one Operator (?or \?)......... 632
14.3.4.4 Interval Operators ({. . . }or \{ . . . \}).......... 633
14.3.5 The Alternation Operator (|or \|).................... 633
14.3.6 List Operators ([. . . ]and [^ . . . ]).................. 634
14.3.6.1 Collating Symbol Operators ([. . . . .])........... 635
14.3.6.2 Equivalence Class Operators ([= . . . =]).......... 635
14.3.6.3 Character Class Operators ([: . . . :])............ 635
lii
14.3.6.4 The Range Operator (-).......................... 636
14.3.7 Grouping Operators ((. . . )or \( . . . \))............. 636
14.3.8 The Back-reference Operator (\digit)................... 637
14.3.9 Anchoring Operators ................................... 638
14.3.9.1 The Match-beginning-of-line Operator (^)......... 638
14.3.9.2 The Match-end-of-line Operator ($)............... 638
14.4 GNU Operators............................................. 638
14.4.1 Word Operators ....................................... 638
14.4.1.1 Non-Emacs Syntax Tables ......................... 638
14.4.1.2 The Match-word-boundary Operator (\b)......... 639
14.4.1.3 The Match-within-word Operator (\B)............. 639
14.4.1.4 The Match-beginning-of-word Operator (\<)....... 639
14.4.1.5 The Match-end-of-word Operator (\>)............. 639
14.4.1.6 The Match-word-constituent Operator (\w). . . . . . . . 639
14.4.1.7 The Match-non-word-constituent Operator (\W). . . . 639
14.4.2 Buffer Operators ....................................... 639
14.4.2.1 The Match-beginning-of-buffer Operator (\‘). . . . . . 639
14.4.2.2 The Match-end-of-buffer Operator (\’)............ 639
14.5 GNU Emacs Operators ..................................... 639
14.5.1 Syntactic Class Operators .............................. 640
14.5.1.1 Emacs Syntax Tables.............................. 640
14.5.1.2 The Match-syntactic-class Operator (\sclass). . . . . . 640
14.5.1.3 The Match-not-syntactic-class Operator (\Sclass). . 640
14.6 What Gets Matched? ....................................... 640
14.7 Programming with Regex ................................... 640
14.7.1 GNU Regex Functions ................................. 640
14.7.1.1 GNU Pattern Buffers.............................. 641
14.7.1.2 GNU Regular Expression Compiling ............... 641
14.7.1.3 GNU Matching ................................... 642
14.7.1.4 GNU Searching ................................... 642
14.7.1.5 Matching and Searching with Split Data ........... 643
14.7.1.6 Searching with Fastmaps .......................... 644
14.7.1.7 GNU Translate Tables ............................ 645
14.7.1.8 Using Registers ................................... 645
14.7.1.9 Freeing GNU Pattern Buffers...................... 647
14.7.2 BSD Regex Functions .................................. 647
14.7.2.1 BSD Regular Expression Compiling ............... 648
14.7.2.2 BSD Searching .................................... 648
14.8 Regular expression syntaxes ................................. 648
14.8.1 ‘awk’ regular expression syntax ......................... 648
14.8.2 ‘egrep’ regular expression syntax....................... 649
14.8.3 ‘ed’ regular expression syntax .......................... 650
14.8.4 ‘emacs’ regular expression syntax....................... 651
14.8.5 ‘gnu-awk’ regular expression syntax .................... 652
14.8.6 ‘grep’ regular expression syntax ........................ 653
14.8.7 ‘posix-awk’ regular expression syntax .................. 654
14.8.8 ‘posix-basic’ regular expression syntax................ 655
14.8.9 ‘posix-egrep’ regular expression syntax................ 655
liii
14.8.10 ‘posix-extended’ regular expression syntax ........... 656
14.8.11 ‘posix-minimal-basic’ regular expression syntax ..... 657
14.8.12 ‘sed’ regular expression syntax ........................ 658
Appendix A GNU Free Documentation License
............................................... 659
Index.............................................. 667
Chapter 1: Brief Overview 1
1 Brief Overview
Gnulib is a source code library that provides basic functionality to programs and libraries.
Many software packages make use of Gnulib to avoid reinventing the portability wheel.
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 Gnulib Basics
While portability across operating systems is not one of GNU’s primary goals, it has
helped introduce many people to the GNU system, and is worthwhile when it can be achieved
at a low cost. This collection helps lower that cost.
Gnulib is intended to be the canonical source for most of the important “portability”
and/or common files for GNU projects. These are files intended to be shared at the source
level; Gnulib is not a typical library meant to be installed and linked against. Thus, unlike
most projects, Gnulib does not normally generate a source tarball distribution; instead,
developers grab modules directly from the source repository.
The easiest, and recommended, way to do this is to use the gnulib-tool script. Since
there is no installation procedure for Gnulib, gnulib-tool 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 by using a symbolic link from a place inside your PATH
to the gnulib-tool file of your preferred Gnulib checkout. For example:
$ ln -s $HOME/gnu/src/gnulib.git/gnulib-tool $HOME/bin/gnulib-tool
1.2 git and CVS
Gnulib is available for anonymous checkout. In any Bourne-shell the following should
work:
$ git clone git://git.sv.gnu.org/gnulib.git
For a read-write checkout you need to have a login on ‘savannah.gnu.org’ and be a
member of the Gnulib project at http://savannah.gnu.org/projects/gnulib.
Then, instead of the URL git://git.sv.gnu.org/gnulib, use the URL
ssh://user @git.sv.gnu.org/srv/git/gnulib’ where user is your login name
on savannah.gnu.org.
git resources:
Overview: http://en.wikipedia.org/wiki/Git_(software)
Homepage:
http://git-scm.com/
When you use git annotate or git blame with Gnulib, it’s recommended that you use
the ‘-w’ option, in order to ignore massive whitespace changes that happened in 2009.
CVS checkouts are also supported:
$ cvs -d :pserver:anonymous@pserver.git.sv.gnu.org:/gnulib.git co -d gnulib HEAD
Chapter 1: Brief Overview 2
1.3 Keeping Up-to-date
The best way to work with Gnulib is to check it out of git. To synchronize, you can use
git pull, or cvs update -dP if you are still using CVS.
Subscribing to the bug-gnulib@gnu.org mailing list will help you to plan
when to update your local copy of Gnulib (which you use to maintain
your software) from git. You can review the archives, subscribe, etc., via
https://lists.gnu.org/mailman/listinfo/bug-gnulib.
Sometimes, using an updated version of Gnulib will require you to use newer versions
of GNU Automake or Autoconf. You may find it helpful to join the autotools-announce
mailing list to be advised of such changes.
1.4 Contributing to Gnulib
All software here is copyrighted by the Free Software Foundation—you need to have
filled out an assignment form for a project that uses the module for that contribution to be
accepted here.
If you have a piece of code that you would like to contribute, please email
bug-gnulib@gnu.org.
Generally we are looking for files that fulfill at least one of the following requirements:
If your ‘.c’ and ‘.h’ files define functions that are broken or missing on some other
system, we should be able to include it.
If your functions remove arbitrary limits from existing functions (either under the same
name, or as a slightly different name), we should be able to include it.
If your functions define completely new but rarely used functionality, you should probably
consider packaging it as a separate library.
1.4.1 Gnulib licensing
Gnulib contains code both under GPL and LGPL. Because several packages that use
Gnulib are GPL, the files state they are licensed under GPL. However, to support LGPL
projects as well, you may use some of the files under LGPL. The “License:” information in
the files under modules/ clarifies the real license that applies to the module source.
Keep in mind that if you submit patches to files in Gnulib, you should license them
under a compatible license, which means that sometimes the contribution will have to be
LGPL, if the original file is available under LGPL via a “License: LGPL” information in
the projects’ modules/ file.
1.4.2 Indent with spaces not TABs
We use space-only indentation in nearly all files. This includes all ‘*.h’, ‘*.c’, ‘*.y
files, except for the regex module. Makefile and ChangeLog files are excluded, since TAB
characters are part of their format.
In order to tell your editor to produce space-only indentation, you can use these instruc-
tions.
For Emacs: Add these lines to your Emacs initialization file (‘$HOME/.emacs’ or simi-
lar):
Chapter 1: Brief Overview 3
;; In Gnulib, indent with spaces everywhere (not TABs).
;; Exceptions: Makefile and ChangeLog modes.
(add-hook ’find-file-hook ’(lambda ()
(if (and buffer-file-name
(string-match "/gnulib\\>" (buffer-file-name))
(not (string-equal mode-name "Change Log"))
(not (string-equal mode-name "Makefile")))
(setq indent-tabs-mode nil))))
For vi (vim): Add these lines to your ‘$HOME/.vimrc’ file:
" Don’t use tabs for indentation. Spaces are nicer to work with.
set expandtab
For Makefile and ChangeLog files, compensate for this by adding this to
your ‘$HOME/.vim/after/indent/make.vim’ file, and similarly for your
$HOME/.vim/after/indent/changelog.vim’ file:
" Use tabs for indentation, regardless of the global setting.
set noexpandtab
For Eclipse: In the “Window|Preferences” dialog (or “Eclipse|Preferences” dialog on
Mac OS),
1. Under “General|Editors|Text Editors”, select the “Insert spaces for tabs” check-
box.
2. Under “C/C++|Code Style”, select a code style profile that has the “Indenta-
tion|Tab policy” combobox set to “Spaces only”, such as the “GNU [built-in]”
policy.
If you use the GNU indent program, pass it the option ‘--no-tabs’.
1.4.3 How to add a new module
Add the header files and source files to ‘lib/’.
If the module needs configure-time checks, write an Autoconf macro for it in
m4/module.m4’. See ‘m4/README’ for details.
Write a module description ‘modules/module ’, based on ‘modules/TEMPLATE’.
If the module contributes a section to the end-user documentation, put this documen-
tation in ‘doc/module.texi’ and add it to the “Files” section of ‘modules/module ’.
Most modules don’t do this; they have only documentation for the programmer (=
Gnulib user). Such documentation usually goes into the ‘lib/’ source files. It may also
go into ‘doc/’; but don’t add it to the module description in this case.
Add the module to the list in ‘MODULES.html.sh’.
You can test that a module builds correctly with:
$ ./gnulib-tool --create-testdir --dir=/tmp/testdir module1 ... moduleN
$ cd /tmp/testdir
$ ./configure && make
Other things:
Check the license and copyright year of headers.
Chapter 1: Brief Overview 4
Check that the source code follows the GNU coding standards; see
http://www.gnu.org/prep/standards.
Add source files to ‘config/srclist*’ if they are identical to upstream and should be
upgraded in Gnulib whenever the upstream source changes.
Include header files in source files to verify the function prototypes.
Make sure a replacement function doesn’t cause warnings or clashes on systems that
have the function.
Autoconf functions can use ‘gl_*’ prefix. The ‘AC_*’ prefix is for autoconf internal
functions.
Build files only if they are needed on a platform. Look at the alloca and fnmatch
modules for how to achieve this. If for some reason you cannot do this, and you have a
.c’ file that leads to an empty ‘.o’ file on some platforms (through some big #if around
all the code), then ensure that the compilation unit is not empty after preprocessing.
One way to do this is to #include <stddef.h> or <stdio.h> before the big #if.
1.4.4 Portability guidelines
Gnulib code is intended to be portable to a wide variety of platforms, not just GNU
platforms. See the documentation section “Target Platforms” for details.
Many Gnulib modules exist so that applications need not worry about undesirable vari-
ability in implementations. For example, an application that uses the malloc module need
not worry about malloc (0) returning NULL on some Standard C platforms; and time_r
users need not worry about localtime_r returning int (not char *) on some platforms
that predate POSIX 1003.1-2001.
Currently we assume at least a freestanding C89 compiler, possibly operating with a
C library that predates C89. The oldest environments currently ported to are probably
HP-UX 10.20 and IRIX 5.3, though we are not testing these platforms very often.
Because we assume a freestanding C89 compiler, Gnulib code can include <float.h>,
<limits.h>,<stdarg.h>, and <stddef.h> unconditionally. It can also assume the
existence of <ctype.h>,<errno.h>,<fcntl.h>,<locale.h>,<signal.h>,<stdio.h>,
<stdlib.h>,<string.h>, and <time.h>. Similarly, many modules include <sys/types.h>
even though it’s not even in C99; that’s OK since <sys/types.h> has been around nearly
forever.
Even if the include files exist, they may not conform to C89. However, GCC has a
fixincludes script that attempts to fix most C89-conformance problems. So Gnulib cur-
rently assumes include files largely conform to C89 or better. People still using ancient
hosts should use fixincludes or fix their include files manually.
Even if the include files conform to C89, the library itself may not. For example, strtod
and mktime have some bugs on some platforms. You can work around some of these
problems by requiring the relevant modules, e.g., the Gnulib mktime module supplies a
working and conforming mktime.
The GNU coding standards allow one departure from strict C99: Gnulib code can assume
that standard internal types like size_t are no wider than long. POSIX 1003.1-2001 and
the GNU coding standards both require int to be at least 32 bits wide, so Gnulib code
assumes this as well. Gnulib code makes the following additional assumptions:
Chapter 1: Brief Overview 5
Signed integer arithmetic is two’s complement.
Previously, Gnulib code sometimes assumed that signed integer arithmetic wraps
around, but modern compiler optimizations sometimes do not guarantee this,
and Gnulib code with this assumption is now considered to be questionable. See
Section 13.5 [Integer Properties], page 605.
Some Gnulib modules contain explicit support for the other signed integer representa-
tions allowed by C99 (ones’ complement and signed magnitude), but these modules are
the exception rather than the rule. All practical Gnulib targets use two’s complement.
There are no “holes” in integer values: all the bits of an integer contribute to its value
in the usual way.
Addresses and sizes behave as if objects reside in a flat address space. In particular:
If two nonoverlapping objects have sizes Sand Trepresented as size_t values,
then S+Tcannot overflow.
A pointer Ppoints within an object Oif and only if (char *) &O<= (char *) P
&& (char *) P< (char *) (&O+ 1).
If an existing object has size S, and if Tis sufficiently small (e.g., 8 KiB), then
S+Tcannot overflow. Overflow in this case would mean that the rest of your
program fits into Tbytes, which can’t happen in realistic flat-address-space hosts.
Objects with all bits zero are treated as 0 or NULL. For example, memset (A, 0,
sizeof A) initializes an array Aof pointers to NULL.
Adding zero to a null pointer does not change the pointer. For example, 0 + (char
*) NULL == (char *) NULL.
The above assumptions are not required by the C or POSIX standards but hold on all
practical porting targets that we’re familiar with. If you have a porting target where these
assumptions are not true, we’d appreciate hearing of any fixes. We need fixes that do not
increase runtime overhead on standard hosts and that are relatively easy to maintain.
With the above caveats, Gnulib code should port without problem to new hosts, e.g.,
hosts conforming to C99 or to recent POSIX standards. Hence Gnulib code should avoid
using constructs (e.g., undeclared functions return int) that do not conform to C99.
1.5 High Quality
We develop and maintain a testsuite for Gnulib. The goal is to have a 100% firm interface
so that maintainers can feel free to update to the code in git at any time and know that
their application will not break. This means that before any change can be committed to
the repository, a test suite program must be produced that exposes the bug for regression
testing. All experimental work should be done on branches to help promote this.
Chapter 2: Philosophy 6
2 Philosophy
Gnulib’s design and development philosophy is organized around steady, collaborative,
and open development of reusable modules that are suitable for a reasonably wide variety
of platforms.
2.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 im-
plement 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.
2.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.
2.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 fragmen-
tation 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 C, POSIX)
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.
Chapter 2: Philosophy 7
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.
2.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 avail-
ability, 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 de-
velopers 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.
Mac OS 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.
Chapter 2: Philosophy 8
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.
2.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:
Chapter 2: Philosophy 9
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.
2.6 Various Kinds of Modules
There are modules of various kinds in Gnulib. For a complete list of the modules, see in
MODULES.html’.
2.6.1 Support for ISO C or POSIX functions.
When a function is not implemented by a system, the Gnulib module provides an imple-
mentation 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.
Chapter 2: Philosophy 10
2.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.
2.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 ex-
tracting the tail component of a file name—here the portability to native Windows requires
a different API than the classical POSIX basename function.
2.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.
2.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.
2.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.
2.6.7 Build / maintenance infrastructure
An example is the ‘maintainer-makefile’ module, which provides extra Makefile tags
for maintaining a package.
2.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.
Chapter 2: Philosophy 11
2.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 c
20XX–20YY Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
in any medium, are permitted without royalty provided the copy-
right notice and this notice are preserved.
m4/ Autoconf macro files are under this copyright:
Copyright c
20XX–20YY Free Software Foundation, Inc.
This file is free software; the Free Software Foundation gives un-
limited 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 c
2004–20YY Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this doc-
ument 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 sec-
tion 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.
Chapter 2: Philosophy 12
2.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.
2.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 Chapter 5 [Extending
Gnulib], page 31).
Chapter 3: Invoking gnulib-tool 13
3 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.
3.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 Chapter 8 [Header File Substitutes], page 38 and Chapter 9 [Function
Substitutes], page 66. For headers and functions that are provided by Glibc but not
standardized by POSIX, look in the chapters Chapter 11 [Glibc Header File Substi-
tutes], page 416 and Chapter 12 [Glibc Function Substitutes], page 427.
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 ’.
3.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).
Chapter 3: Invoking gnulib-tool 14
~/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.
Chapter 3: Invoking gnulib-tool 15
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 li-
brary) 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
Chapter 3: Invoking gnulib-tool 16
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 directo-
ries, 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 in-
effective, 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
Chapter 3: Invoking gnulib-tool 17
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).
3.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 in-
cluding 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.
Chapter 3: Invoking gnulib-tool 18
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 argu-
ment. 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.
3.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.
3.5 Changing your sources for use with Gnulib
Gnulib contains some header file overrides. This means that when building on sys-
tems 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. Fur-
thermore ‘<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.
Chapter 3: Invoking gnulib-tool 19
3.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 choice of which version of gettext to require depends on the needs of your package.
For a package that wants to comply to GNU Coding Standards, the steps are:
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.
2. After running gettextize, invoke gnulib-tool and import the gettext module. Also,
copy the latest version of gnulib’s ‘build-aux/po/Makefile.in.in’ to your ‘po/’ di-
rectory (this is done for you if you use gnulib’s ‘bootstrap’ script).
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.
On the other hand, if your package is not as concerned with compliance to the latest
standards, but instead favors development on stable environments, the steps are:
1. Determine the oldest version of gettext that you intend to support during development
(at this time, gnulib recommends going no older than version 0.17). Run autopoint
(not gettextize) to copy infrastructure into place (newer versions of gettext will install
the older infrastructure that you requested).
2. Invoke gnulib-tool, and import the gettext-h module.
Regardless of which approach you used to get the infrastructure in place, the following
steps must then be used to preserve that infrastructure (gnulib’s ‘bootstrap’ script follows
these rules):
1. When a script of yours run autopoint, invoke gnulib-tool afterwards.
2. 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
Chapter 3: Invoking gnulib-tool 20
3.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 trans-
lations 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.
3.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.
Chapter 3: Invoking gnulib-tool 21
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 infor-
mation 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 de-
scribed in Section 3.3 [Modified imports], page 17, 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 sub-
module 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
Chapter 3: Invoking gnulib-tool 22
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.
3.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.
3.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.
Chapter 3: Invoking gnulib-tool 23
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 condi-
tion 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.
Chapter 4: Writing modules 24
4 Writing modules
This chapter explains how to write modules of your own, either to extend Gnulib for
your own package (see Chapter 5 [Extending Gnulib], page 31), 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.
4.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).
4.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"
Chapter 4: Writing modules 25
{
# 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.
4.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.
4.4 Specification
The specification of a function should answer at least the following questions:
What is the purpose of the function?
Chapter 4: Writing modules 26
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 decla-
ration.
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.
4.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 documen-
tation 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.
Chapter 4: Writing modules 27
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.ams.
This is useful for modules which provide Makefile.am macros rather than com-
piled 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).
Chapter 4: Writing modules 28
It is forbidden to add items to the CPPFLAGS variable here, other than tem-
porarily, 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 op-
tions. 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 inappro-
priate.
If the statements in this section grow larger than a couple of lines, we recom-
mend 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 Section 2.8 [Copyright], page 11 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.
4.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.
Chapter 4: Writing modules 29
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.
4.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. Includ-
ing 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:
Chapter 4: Writing modules 30
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 re-
spected:
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.
4.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.
Chapter 5: Extending Gnulib 31
5 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 ‘direc-
tory ’ 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.
Chapter 6: Miscellaneous Notes 32
6 Miscellaneous Notes
6.1 Out of memory handling
The gnulib API does not have a standard error code for the out of memory error con-
dition. 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.
6.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.
6.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.
Chapter 6: Miscellaneous Notes 33
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.
6.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
Chapter 6: Miscellaneous Notes 34
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 pack-
age 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.
6.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’ mod-
ule, 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.
Chapter 6: Miscellaneous Notes 35
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");
6.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.
6.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.
6.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’:
Chapter 6: Miscellaneous Notes 36
libgsasl_la_LDFLAGS += -no-undefined
6.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.
6.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 plat-
form, 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/*
Chapter 7: Building the ISO C and POSIX Substitutes 37
7 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).
Chapter 8: ISO C and POSIX Header File Substitutes 38
8 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 pro-
viding 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. Oth-
erwise, 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>.
8.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: Mac OS X 10.3, NetBSD 3.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
8.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:
8.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 with-
out including <assert.h>. The Gnulib substitutes are macros that require including
<assert.h>.
Chapter 8: ISO C and POSIX Header File Substitutes 39
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.
8.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.
8.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: Mac OS X 10.3, Minix 3.1.8, Cygwin,
mingw, MSVC 9, BeOS.
8.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:
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 40
8.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.
8.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 plat-
forms: 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.
The macros EOWNERDEAD,ENOTRECOVERABLE are not defined on some platforms:
glibc/Linux 2.3.6, glibc/Hurd 2.15, glibc/kFreeBSD 2.15, Mac OS X 10.5, FreeBSD
6.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 without pthreads-win32, MSVC 9, Interix 3.5, BeOS.
The macro EILSEQ is not defined on some platforms: LynxOS 178 2.2.2.
Portability problems not fixed by Gnulib:
8.10 ‘fcntl.h
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html
Gnulib module: fcntl-h
Portability problems fixed by Gnulib:
Chapter 8: ISO C and POSIX Header File Substitutes 41
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. The ‘O_PATH’ macro of GNU/Linux is
not a suitable substitute, as fchmod fails with ‘errno==EBADF’ when invoked on a file
descriptor that was opened with ‘O_PATH’.
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_IGNORE_CTTY’, ‘O_NDELAY’, ‘O_NOATIME’, ‘O_NOLINK’, ‘O_NOLINKS’, and
O_NOTRANS’ (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: Mac OS 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, Mac OS 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_SETLKW’, ‘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.
8.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:
Chapter 8: ISO C and POSIX Header File Substitutes 42
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.
8.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.
8.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
8.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:
Chapter 8: ISO C and POSIX Header File Substitutes 43
8.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: Mac OS X 10.3, FreeBSD 5.2.1, NetBSD
3.0, Minix 3.1.8, mingw, MSVC 9, BeOS.
8.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:
8.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.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 44
8.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:
8.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.
8.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:
Chapter 8: ISO C and POSIX Header File Substitutes 45
8.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.
8.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: Mac OS 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.
8.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, Mac OS X 10.5.
The struct lconv type does not contain any members on some platforms: Android.
The struct lconv type does not contain the members int_p_cs_precedes,int_
p_sign_posn,int_p_sep_by_space,int_n_cs_precedes,int_n_sign_posn,int_n_
sep_by_space on some platforms: glibc, OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1
5.1, Solaris 11 2011-11, Cygwin 1.5.x, mingw, MSVC 9.
Some platforms provide a NULL macro that cannot be used in arbitrary expressions:
NetBSD 5.0
Portability problems not fixed by Gnulib:
Chapter 8: ISO C and POSIX Header File Substitutes 46
8.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.
The macros FP_ILOGB0 and FP_ILOGBNAN are not defined on some platforms: NetBSD
5.1, 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.
8.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.
8.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
3.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 8: ISO C and POSIX Header File Substitutes 47
8.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.
8.29 ‘net/if.h
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/net_if.h.html
Gnulib module: net if
Portability problems fixed by Gnulib:
This header file is not self-contained on some platforms (needing <sys/socket.h>to be
included first): FreeBSD 8.2, OpenBSD 5.2.
Portability problems not fixed by Gnulib:
This header file is missing on some platforms: mingw, MSVC 9, Interix 3.5, BeOS.
8.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 plat-
forms: NetBSD 5.0.
Portability problems not fixed by Gnulib:
8.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:
Chapter 8: ISO C and POSIX Header File Substitutes 48
8.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.
8.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.
8.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.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 49
8.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.
8.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.
8.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, Mac OS
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:
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 50
8.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.
8.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:
8.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: Non-
Stop.
The type sighandler_t (a GNU extension) is not defined on most non-glibc platforms:
Mac OS 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.
Chapter 8: ISO C and POSIX Header File Substitutes 51
8.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: Mac OS 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:
8.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 con-
stant, 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.
Chapter 8: ISO C and POSIX Header File Substitutes 52
8.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:
8.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.
8.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:
Chapter 8: ISO C and POSIX Header File Substitutes 53
Some platforms provide an offsetof macro that cannot be used in arbitrary expres-
sions: 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 ‘[]’.
8.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. Other <stdint.h> substitutes may define these types differently, so
public header files should avoid these types.
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:
Chapter 8: ISO C and POSIX Header File Substitutes 54
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
8.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, Mac OS 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:
8.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 plat-
forms. Mac OS X 10.5.
Chapter 8: ISO C and POSIX Header File Substitutes 55
8.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
Circa 2012 bleeding-edge GCC with -Werror=old-style-declaration requires
_Noreturn or noreturn before the returned type in a declaration, and therefore
rejects valid but unusually-worded declarations such as void _Noreturn foo (void);.
8.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:
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 56
8.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, BeOS.
8.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.
8.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.
8.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: Mac OS X 10.3, Minix 3.1.8, mingw,
MSVC 9, BeOS.
Chapter 8: ISO C and POSIX Header File Substitutes 57
8.58 ‘sys/resource.h
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/basedefs/sys_resource.h.html
Gnulib module: sys resource
Portability problems 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>al-
ready be included: FreeBSD 5.0.
Portability problems not fixed by Gnulib:
8.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:
8.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.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 58
8.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
8.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 plat-
forms.
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 mem-
bers. 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.
Chapter 8: ISO C and POSIX Header File Substitutes 59
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 aand bare 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.
8.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: Mac OS X 10.3, OpenBSD 3.8, mingw,
MSVC 9.
8.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 a tv_sec type that is narrower than time_t 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:
Chapter 8: ISO C and POSIX Header File Substitutes 60
struct timeval’ is defined with a tv_sec type that is wider than time_t: OpenBSD
5.1 in 64-bit mode.
8.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:
8.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:
8.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
This module, together with the module largefile, also defines the type off_t to a
64-bit integer type on some platforms: mingw (except mingw64), MSVC 9.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 61
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:
8.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.
8.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:
8.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 plat-
forms. Mac OS X 10.5.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 62
8.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.
8.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 plat-
forms: mingw, MSVC 9.
8.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: Mac OS 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.
8.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
Chapter 8: ISO C and POSIX Header File Substitutes 63
8.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.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, Mac OS 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.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.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 64
8.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:
8.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.
8.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
8.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.
Chapter 8: ISO C and POSIX Header File Substitutes 65
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’.
8.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 Desk-
top 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 plat-
forms: Solaris 2.6.
Portability problems not fixed by Gnulib:
8.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 66
9 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 provid-
ing 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 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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 67
9.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:
9.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:
9.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).
9.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).
Chapter 9: ISO C and POSIX Function Substitutes 68
9.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: Mac OS X 10.5, Minix 3.1.8.
9.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: Mac OS X 10.5, Minix 3.1.8.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 69
9.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:
9.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 *’.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 70
9.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:
9.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:
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 71
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.
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 72
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 73
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.
9.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.
9.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.
9.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, Mac OS 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 74
The parameters of this function are declared as const void * on some platforms: glibc
2.3.6, Mac OS 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.
9.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.
9.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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 75
9.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.
9.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.
9.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.
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 76
9.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’.
9.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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 77
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.
9.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:
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 78
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 79
9.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:
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 80
9.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:
9.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:
9.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 ac-
commodate all Unicode characters.
9.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, Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 81
9.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, Mac OS 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 82
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 83
9.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.
9.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.
9.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 imple-
mentation that behaves more like the glibc implementation.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 84
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 85
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 86
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 87
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 88
9.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.
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 89
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 90
9.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.
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 91
Portability problems fixed by Gnulib module ceilf-ieee:
This function returns a positive zero for an argument between 1 and 0 on some
platforms: Mac OS 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:
9.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:
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 92
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 93
9.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.
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 94
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 95
9.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:
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
9.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: Mac OS X 10.5, Minix 3.1.8, IRIX 5.3,
Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
9.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: Mac OS X 10.5, Minix 3.1.8, IRIX 5.3,
Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 96
9.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: Mac OS X 10.5, FreeBSD 6.0, 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.
9.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: Mac OS X 10.5, Minix 3.1.8, IRIX 5.3,
Solaris 2.4, Cygwin 1.7.9, mingw, MSVC 9, Interix 3.5, BeOS.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 97
9.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.
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 98
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 99
9.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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 100
9.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:
9.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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 101
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.
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
9.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.
9.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.
9.143 cpowl
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/cpowl.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 102
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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 103
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 104
9.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 plat-
forms: glibc (at least 2.112.13).
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 105
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 106
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 107
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 108
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 109
9.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: Mac OS 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 110
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 111
9.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.
9.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.
9.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:
9.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.)
Chapter 9: ISO C and POSIX Function Substitutes 112
9.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.
9.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:
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 113
9.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.
9.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.
9.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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:
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
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 sepa-
rators 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.
Chapter 9: ISO C and POSIX Function Substitutes 114
9.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.
9.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:
9.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: Cygwin
1.7.17, 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 inter-
feres 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:
Chapter 9: ISO C and POSIX Function Substitutes 115
9.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: Mac OS 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.
9.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 plat-
forms: glibc (at least 2.112.13).
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 116
9.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.
9.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.
9.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.
9.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.
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 117
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 3.8, IRIX 6.5,
Solaris 11 2011-11.
On Mac OS X 10, this variable is not declared. Up to Mac OS 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 Mac OS X 10.5. Here is a workaround: Instead, one can use
#include <crt_externs.h>
#define environ (*_NSGetEnviron())
This works at all versions of Mac OS X.
Portability problems not fixed by Gnulib:
The address of this variable is not a compile-time constant on some platforms: mingw.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 118
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 119
9.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.
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 120
9.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.
9.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.
9.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 Section 8.50
[stdlib.h], page 54.
Portability problems not fixed by Gnulib:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 121
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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 122
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
9.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:
9.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:
9.225 expm1l
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/expm1l.html
Gnulib module: expm1l
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 123
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:
9.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:
9.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:
9.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:
9.229 faccessat
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/faccessat.html
Gnulib module: faccessat
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 124
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
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.
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 125
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.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:
Chapter 9: ISO C and POSIX Function Substitutes 126
9.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.
9.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: glibc with Linux
kernels before 2.6.24, Mac OS 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.
9.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: Mac OS X 10.7.
This function is missing on some platforms: Mac OS 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:
Chapter 9: ISO C and POSIX Function Substitutes 127
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 128
9.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:
9.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, Mac OS X 10.5, FreeBSD 6.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 129
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 130
9.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:
9.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.
9.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:
9.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.
9.254 fesetexceptflag
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fesetexceptflag.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 131
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.
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 132
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 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.
9.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: Mac OS 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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 133
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:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
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.
9.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.
9.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:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
On Windows platforms (excluding Cygwin), this function does not set errno upon
failure.
Chapter 9: ISO C and POSIX Function Substitutes 134
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 135
9.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:
9.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:
9.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:
9.271 fma
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fma.html
Gnulib module: fma
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 136
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, Mac OS X 10.5,
FreeBSD 6.4/x86, OSF/1 5.1, Cygwin 1.5, mingw.
Portability problems not fixed by Gnulib:
9.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, Mac OS X 10.5,
FreeBSD 6.4/x86, OSF/1 5.1, Cygwin 1.5, mingw.
Portability problems not fixed by Gnulib:
9.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, Mac OS X 10.5,
FreeBSD 6.4/x86, OSF/1 5.1, mingw.
Portability problems not fixed by Gnulib:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 137
9.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.
9.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.
9.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 138
9.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.
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 139
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:
9.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:
9.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 140
9.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.
9.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.
9.288 fpathconf
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/fpathconf.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 141
Portability problems not fixed by Gnulib:
This function is missing on some platforms: mingw, MSVC 9.
9.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: Mac OS X 10.5, OpenBSD 3.8, AIX 5.1,
IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5.
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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 plat-
forms: 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.
Chapter 9: ISO C and POSIX Function Substitutes 142
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: Mac OS 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: Mac OS 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 sepa-
rators 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 143
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.
9.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.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 144
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.
9.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:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 145
9.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: Mac OS 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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 146
This function does not work on infinite numbers on some platforms: IRIX 6.5, mingw,
MSVC 9.
Portability problems not fixed by Gnulib:
9.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:
9.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: Mac OS X 10.3.
This function does not work on finite numbers on some platforms: Mac OS X 10.4/Pow-
erPC, AIX 5.1, MSVC 9, BeOS.
This function does not work on denormalized numbers on some platforms: Mac OS 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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 147
Portability problems not fixed by Gnulib:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
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,zsize specifiers.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 148
9.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.
9.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 Section 8.63 [sys/stat.h], page 58, 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.
9.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, Mac OS X 10.5, FreeBSD 6.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:
Chapter 9: ISO C and POSIX Function Substitutes 149
See Section 8.63 [sys/stat.h], page 58, for general portability problems with struct
stat.
9.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: Mac OS 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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 150
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 151
9.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.
9.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: Mac OS 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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 9: ISO C and POSIX Function Substitutes 152
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 sys-
tems: 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.
9.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 ac-
commodate 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.
9.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 ac-
commodate all Unicode characters.
When formatting an integer with grouping flag, this function inserts thousands sepa-
rators 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.
Chapter 9: ISO C and POSIX Function Substitutes 153
9.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.
9.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 ac-
commodate all Unicode characters.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 154
9.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:
9.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:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
On Windows platforms (excluding Cygwin), this function does not set errno upon
failure.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 155
Portability problems not fixed by Gnulib:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
On Windows platforms (excluding Cygwin), this function does not set errno upon
failure.
9.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.
9.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, Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 156
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS X 10.5, FreeBSD 6.0, 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.
Chapter 9: ISO C and POSIX Function Substitutes 157
9.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.
9.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:
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 158
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 159
9.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.
9.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.
9.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.
9.345 gethostname
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gethostname.html
Gnulib module: gethostname
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 160
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.
9.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.
9.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: Mac OS X 10.5, FreeBSD 6.0, 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 161
This function returns an empty string even when standard input is a tty on some
platforms: HP-UX 11.11.
9.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.
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 162
9.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.
9.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.
9.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.
9.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:
This function is missing on some platforms: MSVC 9.
The value of optind after a missing required argument is wrong on some platforms:
Mac OS X 10.5, AIX 7.1, mingw.
Portability problems fixed by Gnulib module getopt-gnu:
The function getopt does not support the ‘+’ flag in the options string on some plat-
forms: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 163
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 plat-
forms: Mac OS 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 does not support abbreviated long options where all disam-
biguations are equivalent on some platforms: OpenBSD 5.0.
The function getopt_long_only is missing on some platforms: Mac OS 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 neces-
sarily 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.
9.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 *’.
9.357 getpgid
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getpgid.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 164
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Minix 3.1.8, mingw, MSVC 9, Interix 3.5,
BeOS.
9.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.
9.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:
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 165
9.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.
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 166
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 167
9.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.
9.372 getrusage
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/getrusage.html
Gnulib module: getrusage
Portability problems fixed by Gnulib:
This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9.
Portability problems not fixed by Gnulib:
Many platforms don’t fill in all the fields of struct rusage with meaningful values.
9.373 gets
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/gets.html
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function should never be used, because it can overflow any given buffer.
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.
On Windows platforms (excluding Cygwin), this function does not set errno upon
failure.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 168
9.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.
9.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.
9.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.
9.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 *’.
Chapter 9: ISO C and POSIX Function Substitutes 169
9.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.
9.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:
9.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: Mac OS X 10.0.
Portability problems not fixed by Gnulib:
Behavior is non-portable if the second argument to gettimeofday is not NULL.
Chapter 9: ISO C and POSIX Function Substitutes 170
9.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.
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 171
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 does not list symbolic links to nonexistent files among the results, on
some platforms: glibc 2.14, AIX 7.1, HP-UX 11, Solaris 11 2011-11.
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.
9.389 globfree
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/globfree.html
Gnulib module: glob
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 172
This function is missing on some platforms: IRIX 5.3, mingw, MSVC 9, BeOS.
Portability problems not fixed by Gnulib:
9.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:
9.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:
9.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: Mac OS 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: OpenBSD,
Cygwin 1.7.9, musl libc.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 173
9.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.
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 174
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:
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 175
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: Mac OS 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.
9.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: Mac OS 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 176
This function is missing on some platforms: Mac OS 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, al-
though 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 177
9.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.
9.408 ilogb
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ilogb.html
Gnulib module: ilogb
Portability problems fixed by Gnulib:
This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, MSVC 9.
This function returns a wrong result for a zero argument on some platforms: OpenBSD
4.9, AIX 5.1.
This function returns a wrong result for an infinite argument on some platforms:
NetBSD 5.1, OpenBSD 4.9.
This function returns a wrong result for a NaN argument on some platforms: OpenBSD
4.9.
Portability problems not fixed by Gnulib:
9.409 ilogbf
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ilogbf.html
Gnulib module: ilogbf
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 9, MSVC 9.
This function returns a wrong result for a zero argument on some platforms: OpenBSD
4.9.
This function returns a wrong result for an infinite argument on some platforms:
NetBSD 5.1, OpenBSD 4.9.
Portability problems not fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 178
9.410 ilogbl
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/ilogbl.html
Gnulib module: ilogbl
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, Solaris 9, Cygwin, MSVC 9, Interix
3.5, BeOS.
Portability problems not fixed by Gnulib:
9.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:
9.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:
9.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’.
Chapter 9: ISO C and POSIX Function Substitutes 179
9.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.
9.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 plat-
forms: OSF/1 5.1, Solaris 10.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 180
9.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:
9.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.
9.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.
9.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 multi-
byte 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:
Chapter 9: ISO C and POSIX Function Substitutes 181
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’.
9.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: Mac OS 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.
9.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 multi-
byte 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’.
Chapter 9: ISO C and POSIX Function Substitutes 182
uc_is_alpha
This function operates in a locale independent way, on Unicode characters. It
is provided by the Gnulib module ‘unictype/ctype-alpha’.
9.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: Mac OS 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.
9.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’.
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 183
9.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:
9.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 multi-
byte 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’.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 184
This function is missing on many platforms: Mac OS 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.
9.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 multi-
byte 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’.
9.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: Mac OS 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.
9.431 isdigit
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isdigit.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 185
Portability problems not fixed by Gnulib:
Note: This function’s behaviour depends on the locale, but does not support the multi-
byte 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’.
9.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: Mac OS 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.
9.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: Mac OS 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:
Chapter 9: ISO C and POSIX Function Substitutes 186
It is implementation-dependent whether isfinite raises an exception given a signaling
NaN operand.
9.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 multi-
byte 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’.
9.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: Mac OS 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.
9.436 isgreater
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/isgreater.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 187
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
9.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: Mac OS 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.
9.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 plat-
forms: OpenBSD 4.9/x86 (pseudo-Infinity).
Portability problems not fixed by Gnulib:
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 188
9.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: Mac OS 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.
9.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 multi-
byte 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’.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 189
9.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:
9.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: Mac OS X 10.5, OpenBSD 3.8, AIX 5.1,
IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Interix 3.5.
9.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 multi-
byte 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’.
Chapter 9: ISO C and POSIX Function Substitutes 190
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’.
9.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: Mac OS 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.
9.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 multi-
byte 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’.
Chapter 9: ISO C and POSIX Function Substitutes 191
9.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: Mac OS 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.
9.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 multi-
byte 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’.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 192
9.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: Mac OS 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.
9.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 multi-
byte 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’.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 193
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.458 iswalpha_l
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswalpha_l.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 194
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 195
Portability problems not fixed by Gnulib:
On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 196
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.468 iswgraph_l
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswgraph_l.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 197
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 198
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.475 iswspace
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/iswspace.html
Gnulib module: wctype-h
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 199
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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 200
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 multi-
byte 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’.
Chapter 9: ISO C and POSIX Function Substitutes 201
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’.
9.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: Mac OS 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 202
9.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.
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 203
9.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: Mac OS X 10.3,
Minix 3.1.8, mingw, MSVC 9, BeOS.
Portability problems not fixed by Gnulib:
9.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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 204
9.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: Mac OS X.
This function does not work on finite numbers on some platforms: AIX 5.1.
Portability problems not fixed by Gnulib:
9.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:
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 205
9.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.
9.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.
9.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.
9.502 linkat
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/linkat.html
Gnulib module: linkat
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 206
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
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.
This functions does not support AT_SYMLINK_FOLLOW on some platforms: Linux kernel
2.6.17.
Portability problems not fixed by Gnulib:
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 207
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 208
9.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.
9.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.
9.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.
9.513 localeconv
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/localeconv.html
Gnulib module: localeconv
Portability problems fixed by Gnulib:
The struct lconv type does not contain any members on some platforms: Android.
The struct lconv type does not contain the members int_p_cs_precedes,int_
p_sign_posn,int_p_sep_by_space,int_n_cs_precedes,int_n_sign_posn,int_n_
sep_by_space on some platforms: glibc, OpenBSD 4.9, 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:
Chapter 9: ISO C and POSIX Function Substitutes 209
9.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:
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 210
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:
9.518 log10
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log10.html
Gnulib module: log10 or log10-ieee
Portability problems fixed by either Gnulib module log10 or log10-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 log10-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:
9.519 log10f
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/log10f.html
Gnulib module: log10f or log10f-ieee
Portability problems fixed by either Gnulib module log10f or log10f-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 log10f-ieee:
This function returns a wrong value for a negative argument on some platforms:
NetBSD 5.1.
Portability problems not fixed by Gnulib:
9.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, older 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.
Chapter 9: ISO C and POSIX Function Substitutes 211
This function returns a wrong value for a minus zero argument on some platforms:
OSF/1 5.1.
This function returns an unnormalized negative infinity for a minus zero argument on
some platforms: IRIX 6.5.
This function returns an unnormalized positive infinity for a positive infinite argument
on some platforms: IRIX 6.5.
Portability problems not fixed by Gnulib:
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 212
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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 213
9.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:
9.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 on some platforms: Minix 3.1.8, MSVC 9.
This function is missing a declaration on some platforms: Cygwin 1.5.x.
This function produces wrong results for subnormal numbers on some platforms: glibc
2.11/ppc, glibc 2.7/sparc, glibc 2.7/hppa, Solaris 11 2011-11, Cygwin 1.5.x.
Portability problems not fixed by Gnulib:
9.528 logbf
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logbf.html
Gnulib module: logbf
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 9, MSVC 9.
This function produces wrong results for subnormal numbers on some platforms: glibc
2.11/ppc, glibc 2.7/sparc, glibc 2.7/hppa, Solaris 11 2011-11.
Portability problems not fixed by Gnulib:
9.529 logbl
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/logbl.html
Gnulib module: logbl
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 214
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 produces wrong results for subnormal numbers on some platforms: glibc
2.11/ppc, glibc 2.7/sparc, glibc 2.7/hppa, Solaris 11 2011-11.
Portability problems not fixed by Gnulib:
9.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:
9.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: Mac OS 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:
9.532 longjmp
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/longjmp.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 215
Portability problems not fixed by Gnulib:
The effects of this call are system and compiler optimization dependent, since it re-
stores 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.
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 216
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.
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 217
9.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.
9.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 Section 8.63 [sys/stat.h], page 58, for general portability problems with struct
stat.
9.543 malloc
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/malloc.html
Gnulib module: malloc-posix
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 218
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 imple-
mentation that behaves more like the glibc implementation, regarding the result of malloc
(0).
9.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:
9.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:
9.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, Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 219
9.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, Mac OS 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.
9.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 ac-
commodate all Unicode characters.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 220
9.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: Mac OS 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 ac-
commodate 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, Mac OS
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.
9.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 ac-
commodate 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 implementa-
tion does not update the state in this case; the Mac OS 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.
9.552 mbstowcs
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/mbstowcs.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 221
Portability problems not fixed by Gnulib:
On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 222
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:
9.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:
9.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:
9.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:
9.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: Cyg-
win 1.5.x, mingw, MSVC 9.
Chapter 9: ISO C and POSIX Function Substitutes 223
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:
9.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, Mac OS X 10.5, FreeBSD 6.0,
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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 224
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 9: ISO C and POSIX Function Substitutes 225
9.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:
Mac OS 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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 226
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 227
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 228
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 229
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 230
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 231
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 232
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 233
9.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.
9.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.
9.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 plat-
forms: 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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 234
9.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.
9.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.
9.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: Mac OS 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 235
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 236
9.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.
9.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: Mac OS 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.
9.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.
9.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 sup-
ported on some platforms: OpenBSD 3.8.
Chapter 9: ISO C and POSIX Function Substitutes 237
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.
9.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: Mac OS 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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 238
9.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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.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.)
Chapter 9: ISO C and POSIX Function Substitutes 239
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:
9.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:
9.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.
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
9.621 open_wmemstream
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/open_
wmemstream.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 240
Portability problems not fixed by Gnulib:
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
9.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: Mac OS X 10.5, IRIX 6.5, OSF/1 5.1,
MSVC 9.
9.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.
9.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.
9.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: Mac OS X 10.5, IRIX 6.5, OSF/1 5.1,
MSVC 9.
Chapter 9: ISO C and POSIX Function Substitutes 241
9.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.
9.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.
9.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:
9.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, Mac OS 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:
Chapter 9: ISO C and POSIX Function Substitutes 242
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 replace-
ment locks in byte orientation and fails on wide character streams.
9.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.
9.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, HP NonStop.
This function doesn’t work on special files like ‘/dev/null’ and ttys like ‘/dev/tty’ on
some platforms: Mac OS X 10.4.0, AIX 5.3.
Portability problems not fixed by Gnulib:
Under BeOS, Gnulib’s poll replacement can only be called on descriptors created by
the socket function, not on regular file descriptors.
Under Windows, when passing a pipe, Gnulib’s poll replacement might return 0 even
before the timeout has passed. Programs using it with pipes can thus busy wait.
Under HP NonStop, file descriptors other than sockets do not support POLLHUP; they
will return a "readable"status instead.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 243
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 appli-
cation, the platform then leaks file descriptors from earlier popen calls into subsequent
popen children: Cygwin 1.5.x.
9.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: Mac OS 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.
9.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: Mac OS X 10.5, FreeBSD 6.0, 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 244
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 245
9.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: Mac OS 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 circum-
stances), mingw.
9.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: Mac OS 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:
9.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: Mac OS 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:
Chapter 9: ISO C and POSIX Function Substitutes 246
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 247
This function is missing on some platforms: Mac OS 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:
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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: Mac OS X 10.5, FreeBSD 6.0, 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:
Chapter 9: ISO C and POSIX Function Substitutes 248
9.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: Mac OS X 10.5, FreeBSD 6.0, 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:
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 249
This function is missing on some platforms: Mac OS 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:
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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: Mac OS X 10.5, FreeBSD 6.0, 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:
Chapter 9: ISO C and POSIX Function Substitutes 250
9.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: Mac OS X 10.5, FreeBSD 6.0, 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:
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 251
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 circum-
stances), mingw.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 252
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 253
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 254
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 255
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 256
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 257
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 258
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 259
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 260
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 261
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 262
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 263
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 264
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 265
This function is missing on some platforms: glibc 2.3.6, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 9: ISO C and POSIX Function Substitutes 266
9.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:
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 267
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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 plat-
forms: 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: Mac OS 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: Mac OS X
10.3, FreeBSD 6.0, NetBSD 5.0.
Portability problems fixed by Gnulib module stdio or printf-posix, together with
module nonblocking:
Chapter 9: ISO C and POSIX Function Substitutes 268
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 sepa-
rators 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.
9.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.
On some platforms, this function fails to detect invalid fds with EBADF, but only if
they lie beyond the current maximum open fd: FreeBSD 8.2.
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.
9.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, Mac OS 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.
9.719 psignal
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/psignal.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 269
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.
9.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: Mac OS X 10.3, FreeBSD 5.2.1, OpenBSD
3.8, Minix 3.1.8, Solaris 2.4, mingw, MSVC 9, BeOS.
9.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.
9.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.
9.723 pthread_attr_getguardsize
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_
getguardsize.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 270
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.
9.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.
9.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.
9.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.
9.727 pthread_attr_getscope
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_
getscope.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 271
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.
9.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.
9.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.
9.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.
9.731 pthread_attr_setdetachstate
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_
setdetachstate.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 272
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.
9.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.
9.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.
9.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.
9.735 pthread_attr_setschedpolicy
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_attr_
setschedpolicy.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 273
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.
9.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.
9.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.
9.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.
9.739 pthread_barrier_destroy
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_barrier_
destroy.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 274
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 275
9.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, Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 276
9.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, Mac OS 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.
9.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, Mac OS 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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 277
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 278
9.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.
9.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, Mac OS 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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 279
9.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, Mac OS 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.
9.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.
9.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.
9.762 pthread_detach
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pthread_
detach.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 280
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Minix 3.1.8, Solaris 2.4, mingw, MSVC 9,
BeOS.
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 281
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 282
9.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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 283
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 284
9.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: Mac OS 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 285
9.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.
9.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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 9: ISO C and POSIX Function Substitutes 286
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 287
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 288
9.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.
9.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.
9.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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 289
9.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: Mac OS 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 290
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 291
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 292
9.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.
9.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.
9.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, Mac OS 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 293
9.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:
Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 294
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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: Mac OS 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 295
9.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, mingw, MSVC 9, BeOS.
This function fails to set errno on failure on some platforms: FreeBSD 8.2.
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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 296
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 297
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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.
9.831 pututxline
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/pututxline.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 298
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
9.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 ac-
commodate 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.
9.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 ac-
commodate 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 299
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:
9.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:
9.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, Mac OS 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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 300
9.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.
9.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:
9.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: Mac OS X 10.5.
For handling EINTR, Gnulib provides a module ‘safe-read’ with a function safe_read.
9.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.)
Chapter 9: ISO C and POSIX Function Substitutes 301
Portability problems not fixed by Gnulib:
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 302
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
9.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.
9.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
Chapter 9: ISO C and POSIX Function Substitutes 303
NULL then pis still valid. Among implementations that obey C99, behavior varies
on whether realloc (p, 0) always fails and leaves pvalid, 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 imple-
mentation that behaves more like the glibc implementation.
9.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:
Mac OS 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 304
9.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 *’.
9.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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 305
9.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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 306
This function has problems when the second argument is zero on some platforms:
OSF/1 5.1.
Portability problems not fixed by Gnulib:
9.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:
9.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 plat-
forms: Cygwin 1.5.x.
This function does not remove empty directories on some platforms: mingw, MSVC 9.
Portability problems not fixed by Gnulib:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 307
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 308
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 direc-
tory 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.
9.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, Mac OS X 10.5, FreeBSD
6.0, 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:
Chapter 9: ISO C and POSIX Function Substitutes 309
POSIX requires that renameat(fd,"symlink-to-dir/",fd,"dir2") re-
name ‘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 direc-
tory 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.
9.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.
9.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 Mac OS 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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 310
9.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:
9.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:
9.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 plat-
forms: 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
Chapter 9: ISO C and POSIX Function Substitutes 311
9.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/2254 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:
9.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/2225 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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 312
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:
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 313
9.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.
9.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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0, NetBSD 5.0,
OpenBSD 3.8, Interix 3.5.
Chapter 9: ISO C and POSIX Function Substitutes 314
The fourth parameter of this function is declared as int (*) (void *, void *) on some
platforms: AIX 5.1.
9.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:
C99 and POSIX.1-2001 and later require end-of-file to be sticky, that is, they require
this function to act as if it reads end-of-file if feof would return nonzero. However, on
some systems this function attempts to read from the underlying file descriptor even if
the stream’s end-of-file indicator is set. These systems include glibc and default Solaris.
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,zsize specifiers.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 315
9.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
9.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
9.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: Mac OS 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.
9.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 316
9.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, IRIX 5.3, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
9.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.
9.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.
9.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 Mac OS X systems).
Chapter 9: ISO C and POSIX Function Substitutes 317
9.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.
On some platforms, this function fails to detect invalid fds with EBADF, but only if
they lie beyond the current maximum open fd: FreeBSD 8.2.
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.
Under Windows, when passing a pipe, Gnulib’s select replacement might return 0
even before the timeout has passed. Programs using it with pipes can thus busy wait.
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.
9.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.
9.895 sem_destroy
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sem_destroy.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 318
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.
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 319
9.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: Mac OS 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 320
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 321
9.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.
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 322
9.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 ‘=’: Mac OS 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: Cyg-
win 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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 323
9.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.
9.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.
9.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.
9.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 plat-
forms: glibc (at least 2.112.13).
Chapter 9: ISO C and POSIX Function Substitutes 324
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 325
9.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.
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 326
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 327
9.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.
9.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.
9.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.
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
Chapter 9: ISO C and POSIX Function Substitutes 328
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 329
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 330
9.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 miss-
ing 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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 331
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
9.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:
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 332
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
9.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).
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 333
9.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.
9.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: Mac OS 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:
9.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: Mac OS X 10.5, Minix 3.1.8, AIX 5.1, IRIX
6.5, OSF/1 5.1, mingw, MSVC 9.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 334
9.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:
9.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:
9.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: Mac OS 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 335
9.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: Mac OS X 10.3, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, Cygwin 1.5.x, mingw, MSVC 9, BeOS.
9.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.
9.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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 336
9.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.
9.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, Solaris 2.4, mingw, MSVC 9, Interix 3.5, BeOS.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 337
9.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:
9.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:
9.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.
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 338
9.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.
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 339
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 plat-
forms: 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: Mac OS 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: Mac OS 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 sepa-
rators even in the "C"locale on some platforms: NetBSD 5.1.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 340
9.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.
9.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.
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 341
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 plat-
forms: 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: Mac OS 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: Mac OS 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 sepa-
rators even in the "C"locale on some platforms: NetBSD 5.1.
9.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: Mac OS X 10.3.
9.983 sqrtf
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/sqrtf.html
Gnulib module: sqrtf
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 342
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:
9.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: Mac OS X 10.3.
This function produces very imprecise results on some platforms: OpenBSD
5.1/SPARC.
Portability problems not fixed by Gnulib:
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 343
9.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,zsize specifiers.
9.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, mingw64.
On some platforms, stat(".",buf) and stat("./",buf) give different results: mingw,
MSVC 9.
Portability problems not fixed by Gnulib:
See Section 8.63 [sys/stat.h], page 58, 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).
9.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: Mac OS X 10.3, OpenBSD 3.8, mingw,
MSVC 9.
This function can hang if it stats all preceding entries in /proc/mounts, and any of
those file systems are hard-mounted and not available. This affects Linux <2.6.36.
Chapter 9: ISO C and POSIX Function Substitutes 344
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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 345
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.
9.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:
9.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: Mac OS 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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 346
9.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: Mac OS 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.
9.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:
9.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.
9.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:
9.1001 strcoll
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/strcoll.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 347
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.
9.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: Mac OS 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.
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 348
Upon failure, the function does not set errno to ENOMEM on some platforms: mingw,
MSVC 9.
Portability problems not fixed by Gnulib:
9.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, Mac OS 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:
9.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, Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
9.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
Chapter 9: ISO C and POSIX Function Substitutes 349
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 0than strerror on some platforms: Mac
OS 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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 350
9.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: Mac OS 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.
9.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.
9.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: Mac OS 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 351
9.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.
9.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: Mac OS 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.
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 352
9.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:
9.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: Mac OS 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:
9.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: Mac OS 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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 353
9.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:
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 354
9.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, Mac OS 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.
9.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,
Mac OS 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, Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 355
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: Mac OS 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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 356
9.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:
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 357
9.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:
9.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:
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 358
9.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:
9.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: Mac OS 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.
9.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.
9.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 ac-
commodate 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 sepa-
rators even in the "C"locale on some platforms: NetBSD 5.1.
Chapter 9: ISO C and POSIX Function Substitutes 359
9.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 ac-
commodate all Unicode characters.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 9: ISO C and POSIX Function Substitutes 360
9.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.
9.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.
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 361
9.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:
9.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:
9.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:
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 362
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.
9.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: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
9.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 Mac
OS X, also EOPNOTSUPP or ENODEV, rather than ENOTTY.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 363
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 Mac OS X, also EOPNOTSUPP or ENODEV, rather than
ENOTTY.
9.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.
9.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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 364
9.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.
9.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.
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 365
9.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 Mac OS X systems).
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 366
9.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.
9.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.
9.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:
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 367
9.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: Mac OS 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.
9.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: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
IRIX 5.3, Solaris 2.4, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
9.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: Mac OS 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.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 368
9.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.
9.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.
9.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:
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 369
9.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:
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 370
9.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: Mac OS 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.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 371
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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 372
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 373
9.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:
9.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:
9.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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 374
This function has an incompatible declaration on some platforms: Mac OS 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:
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 375
9.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.
9.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:
9.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:
9.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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 376
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 ac-
commodate all Unicode characters.
9.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 Mac OS 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.
9.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, Mac OS X 10.5, FreeBSD 6.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, So-
laris 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.
Chapter 9: ISO C and POSIX Function Substitutes 377
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 di-
rectories 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’ dan-
gling; this behavior is counter-intuitive. The gnulib module unlinkdir can help deter-
mine 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.
9.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: Mac OS 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.
9.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: Mac OS
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 vari-
able, not all of them, on some platforms: Solaris 11 2011-11, Haiku.
Portability problems not fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 378
Older versions of POSIX required that unsetenv(NULL) gracefully fail with EINVAL,
but not all implementations guarantee this, and the requirement was removed.
9.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: Mac OS 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.
9.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.
9.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, Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 9: ISO C and POSIX Function Substitutes 379
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 replace-
ment 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.
9.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 in-
correctly 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).
Chapter 9: ISO C and POSIX Function Substitutes 380
9.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));
9.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:
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 381
9.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:
9.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
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 sepa-
rators 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.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 382
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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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 plat-
forms: 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: Mac OS 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: Mac OS 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:
Chapter 9: ISO C and POSIX Function Substitutes 383
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 sepa-
rators 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.
9.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,zsize specifiers.
9.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 ac-
commodate all Unicode characters.
When formatting an integer with grouping flag, this function inserts thousands sepa-
rators 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.
Chapter 9: ISO C and POSIX Function Substitutes 384
9.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 ac-
commodate all Unicode characters.
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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 plat-
forms: 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.
Chapter 9: ISO C and POSIX Function Substitutes 385
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: Mac OS 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: Mac OS 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 sepa-
rators 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.
9.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,zsize specifiers.
Chapter 9: ISO C and POSIX Function Substitutes 386
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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 plat-
forms: 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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 387
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: Mac OS 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 sepa-
rators even in the "C"locale on some platforms: NetBSD 5.1.
9.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.
printf of ‘long double’ numbers outside the IEEE 754 range produces no meaningful
results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.
This function does not support the ‘a’ and ‘A’ directives on some platforms: glibc-2.3.6,
Mac OS 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 plat-
forms: 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.
Chapter 9: ISO C and POSIX Function Substitutes 388
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: Mac OS 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: Mac OS 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 sepa-
rators even in the "C"locale on some platforms: NetBSD 5.1.
9.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,zsize specifiers.
9.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 ac-
commodate 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 sepa-
rators even in the "C"locale on some platforms: NetBSD 5.1.
Chapter 9: ISO C and POSIX Function Substitutes 389
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
When formatting an integer with grouping flag, this function inserts thousands sepa-
rators 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.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 390
9.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.
9.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: Mac OS 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.
9.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:
9.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: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 391
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 392
9.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 393
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 394
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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.
Chapter 9: ISO C and POSIX Function Substitutes 395
Portability problems not fixed by Gnulib:
On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot ac-
commodate all Unicode characters.
9.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 396
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 397
Portability problems not fixed by Gnulib:
On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 desti-
nation 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 398
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 399
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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 400
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 401
9.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 ac-
commodate all Unicode characters.
9.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 plat-
forms: Mac OS X 10.3.
Portability problems not fixed by Gnulib:
On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.1176 wcsxfrm_l
POSIX specification:
http://www.opengroup.org/onlinepubs/9699919799/functions/wcsxfrm_l.html
Gnulib module:
Portability problems fixed by Gnulib:
Chapter 9: ISO C and POSIX Function Substitutes 402
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 403
9.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: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 404
9.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 plat-
forms: Mac OS 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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
Chapter 9: ISO C and POSIX Function Substitutes 405
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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 ac-
commodate all Unicode characters.
9.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:
Chapter 9: ISO C and POSIX Function Substitutes 406
This function is missing on some platforms: Mac OS 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.
9.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, IRIX 5.3, Cygwin 1.5.x, mingw, MSVC 9, Interix 3.5, BeOS.
9.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 ac-
commodate all Unicode characters.
When formatting an integer with grouping flag, this function inserts thousands sepa-
rators 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.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 407
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: Mac OS X 10.5.
For handling EINTR, Gnulib provides a module ‘safe-write’ with a function safe_
write.
9.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.
9.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 ac-
commodate all Unicode characters.
9.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.
Chapter 9: ISO C and POSIX Function Substitutes 408
9.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.
9.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.
Chapter 10: Past POSIX Function Substitutes 409
10 Past POSIX Function Substitutes
This chapter describes which functions and function-like macros specified by older ver-
sions of 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 provid-
ing 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>.
10.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.
10.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.
10.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, IRIX 5.3, Solaris 2.5.1, Cygwin, mingw, MSVC 9, Interix 3.5.
Chapter 10: Past POSIX Function Substitutes 410
10.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.
10.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.
10.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.
10.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: Mac OS 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.
Chapter 10: Past POSIX Function Substitutes 411
10.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0.
This function is marked as “legacy” in POSIX. Better use sprintf instead.
10.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: Mac OS X 10.4, OpenBSD 3.8, Cygwin,
mingw, MSVC 9, Interix 3.5, BeOS.
10.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.
10.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.
10.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.
Chapter 10: Past POSIX Function Substitutes 412
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.
10.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.
10.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.
10.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: Mac OS X 10.4, OpenBSD 3.8, Cygwin,
mingw, MSVC 9, Interix 3.5, BeOS.
10.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.
Chapter 10: Past POSIX Function Substitutes 413
10.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.
10.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.
10.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.
10.20 scalb
POSIX specification: http://www.opengroup.org/susv3xsh/scalb.html
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
10.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: Mac OS X 10.4, OpenBSD 3.8, Cygwin,
mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 10: Past POSIX Function Substitutes 414
The effects of this call are system and compiler optimization dependent, since it re-
stores the contents of register-allocated variables but not the contents of stack-allocated
variables.
10.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: Mac OS X 10.4, OpenBSD 3.8, Cygwin,
mingw, MSVC 9, Interix 3.5, BeOS.
10.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.
10.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.
10.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.
Chapter 10: Past POSIX Function Substitutes 415
10.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: Mac OS 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 ac-
commodate all Unicode characters.
This function is marked as “legacy” in POSIX. Better use wcsstr instead.
Chapter 11: Glibc Header File Substitutes 416
11 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 pro-
viding 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. Oth-
erwise, 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>.
11.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: Mac OS 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.
11.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ‘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:
Chapter 11: Glibc Header File Substitutes 417
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:
11.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.
11.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
Chapter 11: Glibc Header File Substitutes 418
11.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.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: Mac OS 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.
11.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
Chapter 11: Glibc Header File Substitutes 419
11.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.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.
11.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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:
Chapter 11: Glibc Header File Substitutes 420
11.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:
This header file is missing on some platforms: Mac OS 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.
Portability problems not fixed by Gnulib:
On platforms where the header file is missing, the Gnulib substitute implementation is
just a stub, and does nothing.
11.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.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.
Chapter 11: Glibc Header File Substitutes 421
11.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.
11.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: Mac OS 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:
11.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: Mac OS 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.
Chapter 11: Glibc Header File Substitutes 422
11.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.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.
11.21 ‘libintl.h
Defines the macros __USE_GNU_GETTEXT,__GNU_GETTEXT_SUPPORTED_REVISION, and de-
clares 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: Mac OS 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:
Chapter 11: Glibc Header File Substitutes 423
11.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.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: Mac OS 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.
11.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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:
Chapter 11: Glibc Header File Substitutes 424
11.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.
11.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.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: Mac OS 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.
Chapter 11: Glibc Header File Substitutes 425
11.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.
11.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: Mac OS 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.
11.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.
Chapter 11: Glibc Header File Substitutes 426
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:
11.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:
11.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.
Chapter 12: Glibc Function Substitutes 427
12 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 provid-
ing 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.
12.1 Glibc Extensions to <aio.h>
12.1.1 aio_init
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.2 Glibc <aliases.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 428
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.3 Glibc <argp.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 429
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 430
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.4 Glibc <argz.h>
12.4.1 argz_add
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
Chapter 12: Glibc Function Substitutes 431
12.4.2 argz_add_sep
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.3 argz_append
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.4 argz_count
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.5 argz_create
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.6 argz_create_sep
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
Chapter 12: Glibc Function Substitutes 432
This function is broken on some platforms: Cygwin 1.5.24.
Portability problems not fixed by Gnulib:
12.4.7 argz_delete
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.8 argz_extract
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.9 argz_insert
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.10 argz_next
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
Chapter 12: Glibc Function Substitutes 433
12.4.11 argz_replace
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.4.12 argz_stringify
Gnulib module: argz
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.5 Glibc Extensions to <arpa/inet.h>
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 434
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 435
12.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.
12.6 Glibc <byteswap.h>
12.6.1 bswap_16
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.6.2 bswap_32
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.6.3 bswap_64
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.7 Glibc Extensions to <complex.h>
12.7.1 clog10
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 436
12.7.2 clog10f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.8 Glibc <crypt.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.8.2 encrypt_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.8.3 setkey_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 437
12.9 Glibc Extensions to <ctype.h>
12.9.1 isctype
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.10 Glibc Extensions to <dirent.h>
12.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.
12.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, Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.11 Glibc Extensions to <dlfcn.h>
Chapter 12: Glibc Function Substitutes 438
12.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.
12.11.2 dladdr1
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
12.11.3 dlinfo
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.11.4 dlmopen
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 439
12.12 Glibc <envz.h>
12.12.1 envz_add
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.12.2 envz_entry
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.12.3 envz_get
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.12.4 envz_merge
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.12.5 envz_remove
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
Chapter 12: Glibc Function Substitutes 440
12.12.6 envz_strip
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.13 Glibc <err.h>
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 441
12.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.
12.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.
12.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.
12.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.
12.14 Glibc Extensions to <errno.h>
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 442
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.15 Glibc <error.h>
12.15.1 error
Gnulib module: error
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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:
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 443
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.16 Glibc <execinfo.h>
12.16.1 backtrace
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.16.2 backtrace_symbols
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.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: Mac OS 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.
12.17 Glibc Extensions to <fcntl.h>
12.17.1 fallocate
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 444
This function is missing on older glibc versions and all non-glibc platforms: Mac OS X
10.5, FreeBSD 6.0, NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
12.18 Glibc Extensions to <fenv.h>
12.18.1 fedisableexcept
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 445
12.18.2 feenableexcept
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.19 Glibc Extensions to <fmtmsg.h>
12.19.1 addseverity
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.20 Glibc <fstab.h>
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 446
12.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.
12.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.
12.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.
12.21 Glibc <fts.h>
12.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 Mac OS X systems).
12.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.
Chapter 12: Glibc Function Substitutes 447
12.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.
12.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 Mac OS X systems).
12.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.
12.22 Glibc <getopt.h>
12.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: Mac OS 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:
Mac OS X 10.5.
Chapter 12: Glibc Function Substitutes 448
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: Mac OS 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:
12.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: Mac OS 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:
Mac OS X 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: Mac OS X 10.5, OpenBSD 4.0, AIX 5.2, Solaris 11 2010-11, Cygwin
1.5.x.
This function is missing on some platforms: Mac OS 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.
12.23 Glibc Extensions to <glob.h>
Chapter 12: Glibc Function Substitutes 449
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.24 Glibc Extensions to <gnu/libc-version.h>
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.25 Glibc Extensions to <grp.h>
12.25.1 fgetgrent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.25.2 fgetgrent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 450
12.25.3 getgrent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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.
12.25.6 putgrent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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).
Chapter 12: Glibc Function Substitutes 451
12.26 Glibc <gshadow.h>
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 452
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 453
12.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, Mac OS 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.
12.27 Glibc <ifaddrs.h>
12.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.
12.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.
12.28 Glibc <libintl.h>
12.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: Mac OS 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.
12.28.2 bindtextdomain
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 454
12.28.3 dcgettext
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.28.4 dcngettext
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.28.5 dgettext
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.28.6 dngettext
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.28.7 gettext
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 455
12.28.8 ngettext
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.28.9 textdomain
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.29 Glibc <link.h>
12.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: Mac OS 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.
12.30 Glibc <malloc.h>
12.30.1 mallinfo
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.30.2 malloc_get_state
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 456
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
12.30.5 malloc_stats
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.30.6 malloc_trim
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 457
12.30.8 mallopt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.30.9 memalign
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.31 Glibc Extensions to <math.h>
12.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.
12.31.2 dremf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9.
Chapter 12: Glibc Function Substitutes 458
12.31.3 dreml
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.4 exp10
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.31.5 exp10f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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.
Chapter 12: Glibc Function Substitutes 459
12.31.8 finitef
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, Solaris 11 2011-11, mingw, MSVC 9.
12.31.9 finitel
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.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.
12.31.11 gammaf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.12 gammal
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.13 isinff
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 460
12.31.14 isinfl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.31.15 isnanf
Gnulib module: isnanf
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, MSVC 9.
Portability problems not fixed by Gnulib:
12.31.16 isnanl
Gnulib module: isnanl
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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:
12.31.17 j0f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.18 j0l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
Chapter 12: Glibc Function Substitutes 461
12.31.19 j1f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.20 j1l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.21 jnf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.22 jnl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.23 lgamma_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5 x86, Minix 3.1.8, IRIX
6.5, OSF/1 5.1, mingw, MSVC 9.
Chapter 12: Glibc Function Substitutes 462
12.31.24 lgammaf_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.
12.31.25 lgammal_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.31.27 pow10
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.31.28 pow10f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 463
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.31.30 scalbf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.31 scalbl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.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.
12.31.33 significandf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, OSF/1 5.1, mingw, MSVC 9.
Chapter 12: Glibc Function Substitutes 464
12.31.34 significandl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
12.31.35 sincos
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.36 sincosf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.37 sincosl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.38 y0f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
Chapter 12: Glibc Function Substitutes 465
12.31.39 y0l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.40 y1f
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.41 y1l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.31.42 ynf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, AIX 5.1,
HP-UX 11, IRIX 6.5, mingw, MSVC 9.
12.31.43 ynl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
Chapter 12: Glibc Function Substitutes 466
12.32 Glibc <mcheck.h>
12.32.1 mcheck
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.32.4 mprobe
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 467
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.33 Glibc <mntent.h>
12.33.1 addmntent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.33.2 endmntent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.33.3 getmntent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 468
12.33.5 hasmntopt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.33.6 setmntent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.34 Glibc Extensions to <netdb.h>
12.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.
12.34.2 gethostbyaddr_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
Chapter 12: Glibc Function Substitutes 469
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.34.5 gethostbyname_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.34.6 gethostent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.34.7 getnetbyaddr_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.34.8 getnetbyname_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 470
12.34.9 getnetent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.34.11 getnetgrent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.34.12 getprotobyname_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.34.13 getprotobynumber_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 471
12.34.14 getprotoent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.34.15 getservbyname_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.34.16 getservbyport_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.34.17 getservent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, Minix 3.1.8,
HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 472
12.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.
12.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.
12.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.
12.34.23 rexec
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.
12.34.24 rexec_af
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
Chapter 12: Glibc Function Substitutes 473
12.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.
12.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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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.
12.35 Glibc <netinet/ether.h>
12.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.
Chapter 12: Glibc Function Substitutes 474
12.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: Mac OS 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.
12.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.
12.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.
12.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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 475
12.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.
12.36 Glibc Extensions to <netinet/in.h>
12.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.
12.36.2 getipv4sourcefilter
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.36.3 getsourcefilter
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.36.4 in6addr_any
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This constant is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 476
12.36.5 in6addr_loopback
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This constant is missing on some platforms: Mac OS 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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 477
12.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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 478
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 479
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 480
12.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: Mac OS 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.
12.37 Glibc <obstack.h>
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.37.3 obstack_free
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 481
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,
Mac OS 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 plat-
forms: 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: Mac OS 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: Mac OS 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:
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 482
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,
Mac OS 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 plat-
forms: 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: Mac OS 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: Mac OS 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:
12.38 Glibc <printf.h>
12.38.1 parse_printf_format
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 483
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 484
12.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, Mac OS 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.
12.39 Glibc Extensions to <pthread.h>
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 485
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 486
12.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, Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 487
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.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, Mac OS 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.
12.39.17 pthread_yield
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 488
This function is missing on some platforms: Mac OS 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.
12.40 Glibc <pty.h>
12.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.
12.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: Mac OS X 10.4.11.
Chapter 12: Glibc Function Substitutes 489
12.41 Glibc Extensions to <pwd.h>
12.41.1 fgetpwent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.41.2 fgetpwent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.41.3 getpw
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.41.4 getpwent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, HP-UX 11, IRIX 5.3, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.41.5 putpwent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 490
12.42 Glibc Extensions to <regex.h>
12.42.1 re_comp
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.42.4 re_exec
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.
12.42.5 re_match
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 491
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.42.7 re_search
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 492
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.43 Glibc <regexp.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 12: Glibc Function Substitutes 493
12.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: Mac OS X 10.5, FreeBSD 6.0,
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.
12.44 Glibc <resolv.h>
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 494
12.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.
12.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.
12.45 Glibc <rpc/auth.h>
12.45.1 authdes_create
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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.
Chapter 12: Glibc Function Substitutes 495
12.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.
12.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.
12.45.6 getnetname
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.45.7 host2netname
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.45.8 key_decryptsession
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 496
12.45.10 key_encryptsession
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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: Mac OS 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.
12.45.12 key_gendes
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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: Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 497
12.45.15 key_setsecret
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.45.16 netname2host
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.45.17 netname2user
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.45.18 user2netname
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 498
12.46 Glibc <rpc/auth_des.h>
12.46.1 authdes_getucred
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.46.2 getpublickey
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.46.3 getsecretkey
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.46.4 rtime
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.47 Glibc <rpc/auth_unix.h>
12.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.
Chapter 12: Glibc Function Substitutes 499
12.48 Glibc <rpc/clnt.h>
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 500
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 501
12.48.13 clntunix_create
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.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.
12.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.
12.49 Glibc <rpc/des_crypt.h>
12.49.1 cbc_crypt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 502
12.49.2 des_setparity
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.49.3 ecb_crypt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.50 Glibc <rpc/key_prot.h>
12.50.1 xdr_cryptkeyarg
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.50.2 xdr_cryptkeyarg2
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.50.3 xdr_cryptkeyres
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 503
12.50.4 xdr_getcredres
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.50.7 xdr_keybuf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.50.8 xdr_keystatus
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.50.9 xdr_netnamestr
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 504
12.50.10 xdr_unixcred
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, NetBSD 5.0, OpenBSD
3.8, Minix 3.1.8, IRIX 6.5, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.51 Glibc <rpc/netdb.h>
12.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.
12.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.
12.51.3 getrpcbyname_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
Chapter 12: Glibc Function Substitutes 505
12.51.5 getrpcbynumber_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.51.7 getrpcent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.52 Glibc <rpc/pmap_clnt.h>
12.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.
Chapter 12: Glibc Function Substitutes 506
12.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.
12.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.
12.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.
12.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.
12.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.
12.53 Glibc <rpc/pmap_prot.h>
Chapter 12: Glibc Function Substitutes 507
12.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.
12.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.
12.54 Glibc <rpc/pmap_rmt.h>
12.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.
12.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.
12.55 Glibc <rpc/rpc_msg.h>
12.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.
Chapter 12: Glibc Function Substitutes 508
12.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.
12.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.
12.56 Glibc <rpc/svc.h>
12.56.1 svc_exit
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 509
12.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: Mac OS 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.
12.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: Mac OS X 10.5, Minix 3.1.8, IRIX 6.5,
OSF/1 5.1, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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: Mac OS 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.
12.56.8 svc_pollfd
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This variable is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 510
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 511
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 512
12.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.
12.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.
12.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.
12.56.24 svcunix_create
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 513
12.57 Glibc <rpc/xdr.h>
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 514
12.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.
12.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.
12.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.
12.57.9 xdr_hyper
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 515
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.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.
12.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.
12.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 516
12.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.
12.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.
12.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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 517
12.57.23 xdr_sizeof
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.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.
12.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, IRIX 5.3, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 518
12.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: Mac OS X 10.3, OpenBSD 3.8, Minix
3.1.8, Cygwin 1.7.4, mingw, MSVC 9, Interix 3.5, BeOS.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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.
12.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: Mac OS X 10.5, FreeBSD 6.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.
12.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: Mac OS X 10.5, FreeBSD 6.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.
Chapter 12: Glibc Function Substitutes 519
12.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: Mac OS X 10.5, FreeBSD 6.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.
12.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: Mac OS X 10.5, FreeBSD 6.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 520
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 521
12.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.
12.58 Glibc <rpcsvc/nislib.h>
12.58.1 nis_add
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
12.58.3 nis_addmember
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.4 nis_checkpoint
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 522
12.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: Mac OS 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.
12.58.6 nis_creategroup
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
12.58.8 nis_destroygroup
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 523
12.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: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS 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.
12.58.13 nis_freenames
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.14 nis_freeresult
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 524
12.58.15 nis_freeservlist
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.16 nis_freetags
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.17 nis_getnames
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.18 nis_getservlist
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.19 nis_ismember
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 525
12.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: Mac OS 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.
12.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: Mac OS 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.
12.58.22 nis_lerror
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.23 nis_list
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 526
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.58.28 nis_lookup
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.29 nis_mkdir
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 527
12.58.30 nis_modify
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 528
12.58.35 nis_perror
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.36 nis_ping
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 529
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 530
12.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: Mac OS 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.
12.58.46 nis_remove
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
12.58.48 nis_removemember
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.49 nis_rmdir
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 531
12.58.50 nis_servstate
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.51 nis_sperrno
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.58.52 nis_sperror
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS 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.
12.58.54 nis_stats
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 532
12.58.55 nis_verifygroup
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.59 Glibc <rpcsvc/nis_callback.h>
12.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: Mac OS 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.
12.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: Mac OS 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.
12.60 Glibc <rpcsvc/yp.h>
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 533
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 534
12.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.
12.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.
12.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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: Mac OS 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.
12.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 535
12.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.
12.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.
12.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: Mac OS X 10.5, OpenBSD 3.8, Minix
3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 536
12.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.
12.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.
12.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.
12.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: Mac OS 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.
12.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.
Chapter 12: Glibc Function Substitutes 537
12.60.25 xdr_ypxfrstat
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.61 Glibc <rpcsvc/yp_prot.h>
12.61.1 xdr_ypall
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.62 Glibc <rpcsvc/ypclnt.h>
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 538
12.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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 539
12.62.10 yp_update
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.62.11 ypbinderr_string
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.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.
12.63 Glibc <rpcsvc/ypupd.h>
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 540
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.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: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5, BeOS.
12.64 Glibc Extensions to <sched.h>
12.64.1 clone
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 541
12.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, Mac OS 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.
12.65 Glibc Extensions to <search.h>
12.65.1 hcreate_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.65.2 hdestroy_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.65.3 hsearch_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.65.4 tdestroy
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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.
Chapter 12: Glibc Function Substitutes 542
12.66 Glibc Extensions to <selinux/selinux.h>
12.66.1 fgetfilecon
Gnulib module: selinux-h
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.66.2 getfilecon
Gnulib module: selinux-h
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.66.3 lgetfilecon
Gnulib module: selinux-h
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 543
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:
12.67 Glibc <shadow.h>
12.67.1 endspent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.2 fgetspent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.3 fgetspent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.4 getspent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 544
12.67.5 getspent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.6 getspnam
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.7 getspnam_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.8 lckpwdf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.67.9 putspent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 545
12.67.10 setspent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.67.13 ulckpwdf
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.68 Glibc Extensions to <signal.h>
12.68.1 gsignal
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.
Chapter 12: Glibc Function Substitutes 546
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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.
12.68.4 siggetmask
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 547
12.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.
12.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.
12.68.9 sigstack
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.68.11 ssignal
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.
12.68.12 sys_siglist
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This constant is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 548
12.68.13 sysv_signal
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.69 Glibc Extensions to <stdio.h>
12.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,
Mac OS 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, Cyg-
win 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 plat-
forms: 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: Mac OS 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: Mac OS X
10.3, FreeBSD 6.0, NetBSD 5.0.
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 549
12.69.2 cuserid
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, mingw, MSVC 9.
12.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.
12.69.4 fcloseall
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, 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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 550
12.69.7 fflush_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.69.9 fgets_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 551
12.69.12 fputc_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.69.14 fread_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.69.15 fwrite_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
12.69.16 getw
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: BeOS.
Chapter 12: Glibc Function Substitutes 552
12.69.17 putw
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: BeOS.
12.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.
12.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.
12.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, Mac OS X 10.5, IRIX 6.5,
OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
12.69.21 sys_nerr
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This variable is missing on some platforms: Mac OS X 10.5, Minix 3.1.8, IRIX 6.5,
OSF/1 5.1, Cygwin, mingw, Interix 3.5, BeOS.
12.69.22 tmpnam_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
Chapter 12: Glibc Function Substitutes 553
12.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,
Mac OS 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, Cyg-
win 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 plat-
forms: 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: Mac OS 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: Mac OS X
10.3, FreeBSD 6.0, NetBSD 5.0.
Portability problems not fixed by Gnulib:
12.70 Glibc Extensions to <stdlib.h>
12.70.1 canonicalize_file_name
Gnulib module: canonicalize-lgpl
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
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.
Chapter 12: Glibc Function Substitutes 554
Portability problems not fixed by Gnulib:
12.70.2 cfree
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, Minix 3.1.8, Cygwin, mingw, MSVC 9, Interix 3.5.
12.70.3 clearenv
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.4 drand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.5 ecvt_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.6 erand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 555
12.70.7 fcvt_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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:
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.70.10 initstate_r
Gnulib module: random r
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.70.11 jrand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 556
12.70.12 lcong48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.13 lrand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.14 mkostemp
Gnulib module: mkostemp
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.70.15 mkostemps
Gnulib module: mkostemps
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: glibc 2.10, Mac OS X 10.5,
FreeBSD 6.0, NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 557
12.70.16 mrand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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:
Mac OS 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.
12.70.18 nrand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.19 on_exit
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 558
12.70.20 ptsname_r
Gnulib module: ptsname r
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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:
12.70.21 qecvt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.70.23 qfcvt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 559
12.70.25 qgcvt
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.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.
12.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.
12.70.27 random_r
Gnulib module: random r
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.70.28 rpmatch
Gnulib module: rpmatch
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.70.29 seed48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 560
12.70.30 setstate_r
Gnulib module: random r
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.70.31 srand48_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.70.32 srandom_r
Gnulib module: random r
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.70.33 strtod_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.70.34 strtof_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 561
12.70.35 strtol_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.70.36 strtold_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.70.37 strtoll_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.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.
12.70.39 strtoul_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 562
12.70.40 strtoull_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.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.
12.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.
12.71 Glibc Extensions to <string.h>
12.71.1 ffsl
Gnulib module: ffsl
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.71.2 ffsll
Gnulib module: ffsll
Portability problems fixed by Gnulib:
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
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:
Chapter 12: Glibc Function Substitutes 563
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.71.4 memmem
Gnulib module: memmem or memmem-simple
Both modules implement the same replacement for the memmem function with the mem-
mem 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: Mac OS 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:
12.71.5 mempcpy
Gnulib module: mempcpy
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, 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:
12.71.6 memrchr
Gnulib module: memrchr
Portability problems fixed by Gnulib:
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 564
Portability problems not fixed by Gnulib:
12.71.7 rawmemchr
Gnulib module: rawmemchr
Portability problems fixed by Gnulib:
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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:
12.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:
12.71.9 strchrnul
Gnulib module: strchrnul
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
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:
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 565
12.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:
12.71.12 strverscmp
Gnulib module: strverscmp
Portability problems fixed by Gnulib:
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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:
12.72 Glibc <sys/capability.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.73 Glibc <sys/epoll.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 566
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.74 Glibc <sys/fanotify.h>
12.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, Mac OS 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.
12.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, Mac OS 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.
12.75 Glibc <sys/file.h>
12.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:
Chapter 12: Glibc Function Substitutes 567
This function is missing on some platforms: AIX 5.1, HP-UX 11.23, Solaris 11 2011-11,
BeOS.
12.76 Glibc <sys/fsuid.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.77 Glibc <sys/gmon.h>
12.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.
12.78 Glibc <sys/io.h>,<sys/perm.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 568
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.79 Glibc <sys/kdaemon.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.80 Glibc <sys/klog.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.81 Glibc Extensions to <sys/mman.h>
12.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.
12.81.2 mincore
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 569
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.
12.81.3 mremap
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.82 Glibc <sys/mount.h>
12.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.
12.82.2 umount
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, AIX 5.1, mingw, MSVC 9, Interix 3.5, BeOS.
12.82.3 umount2
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 570
12.83 Glibc <sys/personality.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.84 Glibc <sys/prctl.h>
12.84.1 prctl
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.85 Glibc <sys/profil.h>
12.85.1 sprofil
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.86 Glibc <sys/ptrace.h>
12.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.
Chapter 12: Glibc Function Substitutes 571
12.87 Glibc <sys/quota.h>
12.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.
12.88 Glibc <sys/reboot.h>
12.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.
12.89 Glibc Extensions to <sys/resource.h>
12.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, Mac OS 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.
12.90 Glibc Extensions to <sys/sem.h>
12.90.1 semtimedop
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 572
12.91 Glibc <sys/sendfile.h>
12.91.1 sendfile
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.92 Glibc Extensions to <sys/socket.h>
12.92.1 accept4
Gnulib module: accept4
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 replace-
ment function is not atomic; this matters in multi-threaded programs that spawn child
processes.
Portability problems not fixed by Gnulib:
12.92.2 isfdtype
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 573
12.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, Mac OS 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.
12.93 Glibc Extensions to <sys/stat.h>
12.93.1 lchmod
Gnulib module: lchmod
Portability problems fixed by Gnulib:
This function is missing on some platforms: Mac OS 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:
12.94 Glibc <sys/statfs.h>
12.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 Mac OS X.
12.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 Mac OS X.
Chapter 12: Glibc Function Substitutes 574
12.95 Glibc <sys/swap.h>
12.95.1 swapoff
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.96 Glibc <sys/sysctl.h>
12.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.
12.97 Glibc <sys/sysinfo.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.97.2 get_nprocs
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 575
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.97.5 sysinfo
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.98 Glibc <sys/syslog.h>
12.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.
Chapter 12: Glibc Function Substitutes 576
12.99 Glibc <sys/sysmacros.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.100 Glibc Extensions to <sys/time.h>
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 577
12.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, Mac OS X 10.5, FreeBSD 6.0,
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.
12.100.4 lutimes
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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.
12.101 Glibc <sys/timex.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 578
12.101.2 ntp_adjtime
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.101.3 ntp_gettime
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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, Mac OS 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.
12.102 Glibc Extensions to <sys/uio.h>
12.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, Mac OS 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.
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 579
12.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, Mac OS 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.
12.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, Mac OS 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.
12.103 Glibc <sys/ustat.h>
12.103.1 ustat
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.104 Glibc <sys/vlimit.h>
12.104.1 vlimit
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 580
12.105 Glibc <sys/vm86.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.106 Glibc <sys/vtimes.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.107 Glibc Extensions to <sys/wait.h>
12.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.
12.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.
12.108 Glibc <sys/xattr.h>
Chapter 12: Glibc Function Substitutes 581
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 582
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
Chapter 12: Glibc Function Substitutes 583
12.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: Mac OS 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.
12.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: Mac OS 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.
12.109 Glibc Extensions to <termios.h>
12.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.
12.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.
12.110 Glibc Extensions to <time.h>
12.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, Mac OS 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.
Chapter 12: Glibc Function Substitutes 584
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.110.3 getdate_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.110.4 stime
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Cygwin, mingw, MSVC 9, Interix 3.5.
12.110.5 strptime_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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.
12.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:
Chapter 12: Glibc Function Substitutes 585
12.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.
12.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, Mac OS 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.
12.111 Glibc <ttyent.h>
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 586
12.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.
12.112 Glibc Extensions to <unistd.h>
12.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.
12.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.
12.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.
12.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.
12.112.5 dup3
Gnulib module: dup3
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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:
Chapter 12: Glibc Function Substitutes 587
12.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:
12.112.7 euidaccess
Gnulib module: euidaccess
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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.
12.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, Mac OS X 10.5,
FreeBSD 6.0, NetBSD 5.0, OpenBSD 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.
12.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: Mac OS 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.
Chapter 12: Glibc Function Substitutes 588
12.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: Mac OS X 10.5,
FreeBSD 6.4, AIX 7.1, IRIX 6.5.
Portability problems not fixed by Gnulib:
12.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:
12.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:
12.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: Mac
OS 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:
Chapter 12: Glibc Function Substitutes 589
12.112.14 getresgid
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.112.15 getresuid
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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:
12.112.17 group_member
Gnulib module: group-member
Portability problems fixed by Gnulib:
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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:
12.112.18 pipe2
Gnulib module: pipe2
Portability problems fixed by Gnulib:
This function is missing on many non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 replace-
ment function is not atomic; this matters in multi-threaded programs that spawn child
processes.
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 590
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.
12.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.
12.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.
12.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.
12.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.
12.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.
Chapter 12: Glibc Function Substitutes 591
12.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.
12.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.
12.112.26 setresgid
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.112.27 setresuid
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.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:
Chapter 12: Glibc Function Substitutes 592
12.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, Mac OS 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.
12.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.
12.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.
12.112.32 vhangup
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.113 Glibc <utmp.h>
12.113.1 endutent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 593
12.113.2 getutent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
12.113.3 getutent_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.113.4 getutid
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
12.113.5 getutid_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.113.6 getutline
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 594
12.113.7 getutline_r
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.113.8 pututline
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, NetBSD
5.0, OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
12.113.9 setutent
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
12.113.10 updwtmp
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.113.11 utmpname
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 10.5, FreeBSD 6.0, OpenBSD
3.8, Minix 3.1.8, mingw, MSVC 9, Interix 3.5, BeOS.
Chapter 12: Glibc Function Substitutes 595
12.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.
12.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:
Mac OS 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 Mac OS 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.
12.114 Glibc Extensions to <utmpx.h>
12.114.1 getutmp
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.114.2 getutmpx
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
Chapter 12: Glibc Function Substitutes 596
12.114.3 updwtmpx
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.114.4 utmpxname
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS 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.
12.115 Glibc Extensions to <wchar.h>
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.115.3 fputwc_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
Chapter 12: Glibc Function Substitutes 597
This function is missing on all non-glibc platforms: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.115.5 getwc_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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 ac-
commodate all Unicode characters.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.115.7 putwc_unlocked
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on some platforms: Mac OS X 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.
Chapter 12: Glibc Function Substitutes 598
On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot ac-
commodate all Unicode characters.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.115.10 wcsftime_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
12.115.11 wcstod_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 12: Glibc Function Substitutes 599
12.115.12 wcstof_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
12.115.13 wcstol_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
12.115.14 wcstold_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
12.115.15 wcstoll_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
Chapter 12: Glibc Function Substitutes 600
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
12.115.17 wcstoul_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
12.115.18 wcstoull_l
Gnulib module:
Portability problems fixed by Gnulib:
Portability problems not fixed by Gnulib:
This function is missing on many platforms: Mac OS 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 ac-
commodate all Unicode characters.
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
Chapter 12: Glibc Function Substitutes 601
12.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: Mac OS X 10.5, FreeBSD 6.0,
NetBSD 5.0, OpenBSD 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 ac-
commodate all Unicode characters.
Chapter 13: Particular Modules 602
13 Particular Modules
13.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.
13.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
Chapter 13: Particular Modules 603
13.3 Safe Allocation Macros
The standard C library malloc/realloc/calloc/free APIs are prone to a number of com-
mon 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.
Chapter 13: Particular Modules 604
13.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 Vand
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.
Vshould 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. Out-
side a sizeof subexpression, Vshould not contain any assignments, function calls, comma
operators, casts to non-integer types, or subexpressions whose values are outside the repre-
sentable ranges for their types. If Vis not an integer constant expression, then a compiler
might reject a usage like ‘verify (V);’ even when Vis 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);
Chapter 13: Particular Modules 605
/* 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))
13.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 pre-
condition testing, GCC’s ‘-ftrapv’ option, GCC’s no-undefined-overflow branch, the as-if
infinitely ranged (AIR) model implemented in Clang, saturation semantics where over-
flow 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.
13.5.1 Integer Type Determination
TYPE_IS_INTEGER (t)expands to a constant expression that is 1 if the arithmetic type
tis an integer type. _Bool counts as an integer type.
TYPE_SIGNED (t)expands to a constant expression that is 1 if the arithmetic type tis
a signed integer type or a floating type. If tis 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)
};
13.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 tin decimal notation,
Chapter 13: Particular Modules 606
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 tin 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 tafter 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);
}
13.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 Section 13.5.4 [Integer Type Overflow], page 608.
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 oper-
ations 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))
Chapter 13: Particular Modules 607
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+bwould overflow in [min,max] integer arithmetic. See above for
restrictions.
INT_SUBTRACT_RANGE_OVERFLOW (a,b,min,max )
Yield 1 if a-bwould overflow in [min,max] integer arithmetic. See above for
restrictions.
INT_NEGATE_RANGE_OVERFLOW (a,min,max )
Yield 1 if -awould overflow in [min,max] integer arithmetic. See above for
restrictions.
INT_MULTIPLY_RANGE_OVERFLOW (a,b,min,max )
Yield 1 if a*bwould overflow in [min,max] integer arithmetic. See above for
restrictions.
INT_DIVIDE_RANGE_OVERFLOW (a,b,min,max )
Yield 1 if a/bwould 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%bwould 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<< bwould overflow in [min,max] integer arithmetic. See above for
restrictions. Here, min and max are for aonly, and bneed not be of the same
type as the other arguments. The C standard says that behavior is undefined
for shifts unless 0b<wwhere wis a’s word width, and that when ais negative
Chapter 13: Particular Modules 608
then a<< bhas undefined behavior and a>> bhas implementation-defined
behavior, but this macro does not check these other restrictions.
13.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 Section 13.5.3 [Integer Range Overflow],
page 606).
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+bwould overflow. See above for restrictions.
INT_SUBTRACT_OVERFLOW (a,b)
Yield 1 if a-bwould overflow. See above for restrictions.
INT_NEGATE_OVERFLOW (a)
Yields 1 if -awould overflow. See above for restrictions.
INT_MULTIPLY_OVERFLOW (a,b)
Yield 1 if a*bwould overflow. See above for restrictions.
INT_DIVIDE_OVERFLOW (a,b)
Yields 1 if a/bwould 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%bwould overflow. See above for restrictions. Remainder over-
flow 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.
Chapter 13: Particular Modules 609
INT_LEFT_SHIFT_OVERFLOW (a,b)
Yield 1 if a<< bwould overflow. See above for restrictions. The C standard
says that behavior is undefined for shifts unless 0b<wwhere wis a’s word
width, and that when ais negative then a<< bhas undefined behavior and a
>> bhas implementation-defined behavior, but this macro does not check these
other restrictions.
13.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 charac-
ters.
13.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 cargument 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.
13.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
Chapter 13: Particular Modules 610
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.
13.6.3 c-strcaseeq
The c-strcaseeq module contains an optimized case-insensitive string comparison func-
tion 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.
13.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.
13.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.
Chapter 13: Particular Modules 611
13.6.6 c-strtod
The c-strtod module contains a string to number (‘double’) conversion function oper-
ating 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.
13.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 ‘,’.
13.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.
13.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.
Chapter 13: Particular Modules 612
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.
13.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’.
13.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.
Chapter 13: Particular Modules 613
[Macro]AC_LIB_LINKFLAGS(name, [dependencies ])
Searches for lib<name >and the libraries corresponding to explicit and implicit de-
pendencies. 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 depen-
dencies, 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.
Chapter 13: Particular Modules 614
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
Chapter 13: Particular Modules 615
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 ‘pre-
fix /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 pack-
ages. 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
13.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 ex-
ported 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.
Chapter 13: Particular Modules 616
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 com-
pilation 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.
Chapter 13: Particular Modules 617
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
13.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 pack-
aging 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:
Chapter 13: Particular Modules 618
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 Section 13.11 [Exported Symbols of Shared Libraries],
page 615).
13.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 stan-
dard 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. Im-
port lib-msvc-compat to your project, and then add the following lines to the Makefile.am
that builds the library:
Chapter 13: Particular Modules 619
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)
13.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 en-
vironment 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.
Chapter 13: Particular Modules 620
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 fol-
lowing:
@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:
Chapter 13: Particular Modules 621
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 RELOCAT-
ABLE 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 RELOCAT-
ABLE CONFIG H DIR to its directory, e.g.
RELOCATABLE_CONFIG_H_DIR=’$(top_builddir)/src’
13.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.
13.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 #defined this way, see the file
gnulib/modules/configmake’, or inspect your resulting gnulib Makefile.
Chapter 13: Particular Modules 622
13.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 lets you 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.)
Similarly, it lets you use ‘-Werror’ when the builder runs configure with an option
such as ‘--enable-gcc-warnings’.
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.
gl_WARN_ADD([-Werror])’ is intended for developers, and should be avoided in contexts
where it would affect ordinary installation builds. 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 ‘-Werror’ is off by default,
and is enabled only by developers. For example, -Werror’ could affect ‘make distcheck
or ‘configure --enable-gcc-warnings’ as mentioned above.
13.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
Chapter 13: Particular Modules 623
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.
13.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.
Chapter 13: Particular Modules 624
13.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.
Chapter 14: Regular expressions 625
14 Regular expressions
14.1 Overview
Aregular expression (or regexp, or pattern) is a text string that describes some (math-
ematical) set of strings. A regexp r matches a string sif sis 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 func-
tions 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.
14.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 them-
selves; 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.
Chapter 14: Regular expressions 626
14.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 Section 14.7.1.1 [GNU
Pattern Buffers], page 641, for more information on pattern buffers. See Section 14.7.1.2
[GNU Regular Expression Compiling], page 641, and Section 14.7.2.1 [BSD Regular Ex-
pression Compiling], page 648, 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 Section 14.3 [Common Oper-
ators], page 631,Section 14.4 [GNU Operators], page 638, and Section 14.5 [GNU Emacs
Operators], page 639.
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 Section 14.3.6 [List Operators],
page 634 quotes (makes ordinary, if it’s special) the following character; if this
bit isn’t set, then ‘\’ is an ordinary character inside lists. (See Section 14.2.4
[The Backslash Character], page 630, 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 ‘+’ repre-
sents 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 Section 14.3.9.1 [Match-beginning-of-line Operator], page 638, and
Section 14.3.9.2 [Match-end-of-line Operator], page 638.
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.
Chapter 14: Regular expressions 627
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.
Chapter 14: Regular expressions 628
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
Section 14.6 [What Gets Matched?], page 640 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 ‘)’.
14.2.2 Predefined Syntaxes
If you’re programming with Regex, you can set a pattern buffer’s (see Section 14.7.1.1
[GNU Pattern Buffers], page 641) syntax either to an arbitrary combination of syntax bits
(see Section 14.2.1 [Syntax Bits], page 626) 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:
Chapter 14: Regular expressions 629
#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)
Chapter 14: Regular expressions 630
14.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.
14.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 Section 14.2.1 [Syntax Bits], page 626). 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 Section 14.3.6 [List Operators], page 634) 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,1or
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 Section 14.2.1 [Syntax Bits], page 626.
Also:
\b’ represents the match-word-boundary operator (see Section 14.4.1.2 [Match-
word-boundary Operator], page 639).
\B’ represents the match-within-word operator (see Section 14.4.1.3
[Match-within-word Operator], page 639).
\<’ represents the match-beginning-of-word operator
(see Section 14.4.1.4 [Match-beginning-of-word Operator], page 639).
\>’ represents the match-end-of-word operator (see Section 14.4.1.5 [Match-end-
of-word Operator], page 639).
\w’ represents the match-word-constituent operator (see Section 14.4.1.6 [Match-
word-constituent Operator], page 639).
1Sometimes 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 Section 14.3.6 [List Operators], page 634). 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.
Chapter 14: Regular expressions 631
\W’ represents the match-non-word-constituent operator (see Section 14.4.1.7
[Match-non-word-constituent Operator], page 639).
\‘’ represents the match-beginning-of-buffer operator and ‘\’’ represents the
match-end-of-buffer operator (see Section 14.4.2 [Buffer Operators], page 639).
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 Section 14.5.1 [Syntactic Class
Operators], page 640).
4. In all other cases, Regex ignores ‘\’. For example, ‘\n’ matches ‘n’.
14.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 Section 14.2 [Regular Expression
Syntax], page 625, 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 Section 14.3.6
[List Operators], page 634).
14.3.1 The Match-self Operator (ordinary character)
This operator matches the character itself. All ordinary characters (see Section 14.2
[Regular Expression Syntax], page 625) 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’.
14.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’.
14.3.3 The Concatenation Operator
This operator concatenates two regular expressions aand b. No character represents
this operator; you simply put bafter a. The result is a regular expression that will match a
string if amatches its first part and bmatches the rest. For example, ‘xy’ (two match-self
operators) matches ‘xy’.
Chapter 14: Regular expressions 632
14.3.4 Repetition Operators
Repetition operators repeat the preceding regular expression a specified number of times.
14.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 ‘*’ repre-
sents 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 repe-
titions 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’.
14.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 Section 14.3.4.1 [Match-zero-or-more Oper-
ator], page 632, 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’.
14.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.
Chapter 14: Regular expressions 633
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 Section 14.3.4.1 [Match-zero-or-more
Operator], page 632, 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.
14.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.
14.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; other-
wise, ‘\|’ 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 aand b, the
result matches the union of the strings that aand bmatch. 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 expres-
sions. (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
Chapter 14: Regular expressions 634
)’ 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 long-
est 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.
14.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.
Amatching 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 char-
acter 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 Section 14.3.6.1 [Collating
Symbol Operators], page 635).
.] represents the close-collating-symbol operator.
[= represents the open-equivalence-class operator (see Section 14.3.6.2 [Equiva-
lence Class Operators], page 635).
=] represents the close-equivalence-class operator.
2Regex 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.
Chapter 14: Regular expressions 635
[: represents the open-character-class operator (see Section 14.3.6.3 [Character
Class Operators], page 635) 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 Section 14.3.6.4 [Range Operator], page 636)
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 ‘*’.
14.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’.
14.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.
14.3.6.3 Character Class Operators ([: . . . :])
If the syntax bit RE_CHAR_CLASSES is set, then Regex recognizes character class ex-
pressions 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)
Chapter 14: Regular expressions 636
punct neither control nor alphanumeric characters
space space, carriage return, newline, vertical tab, and form feed
upper uppercase letters
xdigit hexadecimal digits: 09,af,AF
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:]’ out-
side of a bracket expression and not followed by a repetition operator matches just itself.
14.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).
14.3.7 Grouping Operators ((. . . )or \( . . . \))
Agroup, 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:
3You can’t use a character class for the starting or ending point of a range, since a character class is not
a single character.
Chapter 14: Regular expressions 637
delimit the argument(s) to an alternation operator (see Section 14.3.5 [Alternation
Operator], page 633) or a repetition operator (see Section 14.3.4 [Repetition Operators],
page 632).
keep track of the indices of the substring that matched a given group. See
Section 14.7.1.8 [Using Registers], page 645, for a precise explanation. This lets you:
use the back-reference operator (see Section 14.3.8 [Back-reference Operator],
page 637).
use registers (see Section 14.7.1.8 [Using Registers], page 645).
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 ‘)’.
14.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 Section 14.3.7
[Grouping Operators], page 636).
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’.
Chapter 14: Regular expressions 638
If there is no preceding digit-th subexpression, the regular expression is invalid.
14.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.
14.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 expres-
sion.
It follows an open-group or alternation operator, as in ‘a\(^b\)’ and ‘a\|^b’. See
Section 14.3.7 [Grouping Operators], page 636, and Section 14.3.5 [Alternation Oper-
ator], page 633.
These rules imply that some valid patterns containing ‘^’ cannot be matched; for exam-
ple, ‘foo^bar’ if RE_CONTEXT_INDEP_ANCHORS is set.
If the not_bol field is set in the pattern buffer (see Section 14.7.1.1 [GNU Pattern
Buffers], page 641), 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.
14.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”.)
14.4 GNU Operators
Following are operators that GNU defines (and POSIX doesn’t).
14.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.
14.4.1.1 Non-Emacs Syntax Tables
Asyntax 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
Chapter 14: Regular expressions 639
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 ieither
to Sword (which it defines) if iis 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 Section 14.5.1.1 [Emacs Syntax Tables], page 640, for what happens when Regex
is compiled with the preprocessor symbol emacs defined.
14.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’.
14.4.1.3 The Match-within-word Operator (\B)
This operator (represented by ‘\B’) matches the empty string within a word. For exam-
ple, ‘c\Brat\Be’ matches ‘crate’, but ‘dirty \Brat’ doesn’t match ‘dirty rat’.
14.4.1.4 The Match-beginning-of-word Operator (\<)
This operator (represented by ‘\<’) matches the empty string at the beginning of a word.
14.4.1.5 The Match-end-of-word Operator (\>)
This operator (represented by ‘\>’) matches the empty string at the end of a word.
14.4.1.6 The Match-word-constituent Operator (\w)
This operator (represented by ‘\w’) matches any word-constituent character.
14.4.1.7 The Match-non-word-constituent Operator (\W)
This operator (represented by ‘\W’) matches any character that is not word-constituent.
14.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.
14.4.2.1 The Match-beginning-of-buffer Operator (\‘)
This operator (represented by ‘\‘’) matches the empty string at the beginning of the
buffer.
14.4.2.2 The Match-end-of-buffer Operator (\’)
This operator (represented by ‘\’’) matches the empty string at the end of the buffer.
14.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.
Chapter 14: Regular expressions 640
14.5.1 Syntactic Class Operators
The operators in this section require Regex to recognize the syntactic classes of charac-
ters. Regex uses a syntax table to determine this.
14.5.1.1 Emacs Syntax Tables
Asyntax 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 Section 14.4.1.1 [Non-
Emacs Syntax Tables], page 638). See Section “Syntax” in The GNU Emacs User’s Manual,
for a description of Emacs’ syntax tables.
14.5.1.2 The Match-syntactic-class Operator (\sclass)
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.
14.5.1.3 The Match-not-syntactic-class Operator (\Sclass)
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.
14.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.
14.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 inter-
face 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.
14.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.
Chapter 14: Regular expressions 641
14.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;
14.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 Section 14.7.1.1 [GNU Pattern Buffers],
page 641).
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 Section 14.2.1 [Syntax Bits], page 626, and Section 14.2.2 [Predefined Syntaxes],
page 628.
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 Section 14.7.1.7 [GNU Translate Tables],
page 645.
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 pat-
tern as necessary.
4Regular expressions are also referred to as “patterns,” hence the name “pattern buffer.”
Chapter 14: Regular expressions 642
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.
14.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
Section 14.7.1.2 [GNU Regular Expression Compiling], page 641), 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 Section 14.7.1.8 [Using Registers], page 645, 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 Section 14.7.1.2 [GNU Regular Expression
Compiling], page 641, 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.
14.7.1.4 GNU Searching
Searching means trying to match starting at successive positions within a string. The
function re_search does this.
Chapter 14: Regular expressions 643
Before calling re_search, you must compile your regular expression. See Section 14.7.1.2
[GNU Regular Expression Compiling], page 641.
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 Section 14.7.1.3 [GNU Matching],
page 642) 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 Section 14.7.1.6
[Searching with Fastmaps], page 644.
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.
14.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 Section 14.7.1.3 [GNU Matching], page 642) 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,
Chapter 14: Regular expressions 644
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.
14.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 buffers 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 ccould 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.
Chapter 14: Regular expressions 645
14.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.
Atranslate 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.5Such 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.
14.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 Section 14.7.1.3 [GNU Matching], page 642 and Section 14.7.1.4
[GNU Searching], page 642), 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; con-
ceptually, it is simplest to think of them as arrays.)
5A table that maps all uppercase letters to the corresponding lowercase ones would work just as well for
this purpose.
Chapter 14: Regular expressions 646
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 Section 14.7.1.1 [GNU Pattern Buffers], page 641).
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 regssizeof(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 struc-
ture. (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 opera-
tor), 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]
Chapter 14: Regular expressions 647
• −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 iand 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 iand 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]
14.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.
14.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.
Chapter 14: Regular expressions 648
14.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 Section 14.2 [Regular Ex-
pression Syntax], page 625).
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 Section 14.7.1.2 [GNU Regular Expression Compiling],
page 641).
14.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 Section 14.7.2.1 [BSD Regular Expression Compiling], page 648), 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 Section 14.7.1.6 [Searching with Fastmaps], page 644).
14.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.
14.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 ‘+
Chapter 14: Regular expressions 649
\? 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.
14.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
Chapter 14: Regular expressions 650
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.
14.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
Chapter 14: Regular expressions 651
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.
14.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
Chapter 14: Regular expressions 652
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.
14.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
Chapter 14: Regular expressions 653
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.
14.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 ‘\(’.
Chapter 14: Regular expressions 654
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.
14.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 ‘(’.
Chapter 14: Regular expressions 655
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.
14.8.8 ‘posix-basic’ regular expression syntax
This is a synonym for ed.
14.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
Chapter 14: Regular expressions 656
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.
14.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 ‘|’.
Chapter 14: Regular expressions 657
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.
14.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.
Chapter 14: Regular expressions 658
14.8.12 ‘sed’ regular expression syntax
This is a synonym for ed.
Appendix A: GNU Free Documentation License 659
Appendix A GNU Free Documentation License
Version 1.3, 3 November 2008
Copyright c
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.
0. 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 non-
commercially. 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.
1. 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
Appendix A: GNU Free Documentation License 660
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 com-
posed 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, LaT
E
X 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 pro-
cessing 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.
2. VERBATIM COPYING
Appendix A: GNU Free Documentation License 661
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.
3. 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.
4. 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:
A. 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,
Appendix A: GNU Free Documentation License 662
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.
B. 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.
C. State on the Title page the name of the publisher of the Modified Version, as the
publisher.
D. Preserve all the copyright notices of the Document.
E. Add an appropriate copyright notice for your modifications adjacent to the other
copyright notices.
F. 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.
G. Preserve in that license notice the full lists of Invariant Sections and required Cover
Texts given in the Document’s license notice.
H. Include an unaltered copy of this License.
I. 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 Docu-
ment, 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.
J. 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.
K. 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.
L. 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.
M. Delete any section Entitled “Endorsements”. Such a section may not be included
in the Modified Version.
N. Do not retitle any existing section to be Entitled “Endorsements” or to conflict in
title with any Invariant Section.
O. 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
Appendix A: GNU Free Documentation License 663
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.
5. 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 vari-
ous 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.”
6. 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 individu-
ally 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.
Appendix A: GNU Free Documentation License 664
7. 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.
8. 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 “His-
tory”, the requirement (section 4) to Preserve its Title (section 1) will typically require
changing the actual title.
9. 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.
Appendix A: GNU Free Documentation License 665
10. 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.
11. 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 pub-
lished 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.
Appendix A: GNU Free Documentation License 666
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 667
Index
$
$............................................. 638
(
(............................................. 636
)
)............................................. 636
*
*............................................ 632
+
+............................................ 632
-
-............................................ 634
.
............................................. 631
=
=] in regex .................................. 635
?
?............................................ 632
[
[............................................ 634
[= in regex .................................. 635
[^.......................................... 634
[colon in regex ............................. 635
]
]............................................ 634
^
^............................................ 634
^............................................. 638
_exit ......................................... 67
_Exit ......................................... 67
_longjmp ...................................... 67
_setjmp ....................................... 67
_tolower ...................................... 68
_toupper ...................................... 68
{
{............................................ 633
}
}............................................ 633
\
\............................................. 630
\............................................ 634
\’.......................................... 639
\(............................................ 636
\)............................................ 636
\<.......................................... 639
\>.......................................... 639
\‘.......................................... 639
\{.......................................... 633
\}.......................................... 633
\|............................................ 633
\b.......................................... 639
\B.......................................... 639
\s.......................................... 640
\S.......................................... 640
\w.......................................... 639
\W.......................................... 639
|
|............................................. 633
A
a64l .......................................... 68
abort ......................................... 68
Aborting execution ............................ 32
abs............................................ 69
AC_LIB_HAVE_LINKFLAGS(name, [dependencies ],
[includes ], [testcode ],
[missing-message ]) .................... 613
AC_LIB_LINKFLAGS(name, [dependencies ]) . . 613
accept ........................................ 69
accept4 ...................................... 572
access ........................................ 69
acct ......................................... 586
Index 668
acos .......................................... 70
acosf ......................................... 70
acosh ......................................... 70
acoshf ........................................ 70
acoshl ........................................ 70
acosl ......................................... 71
addmntent.................................... 467
addseverity ................................. 445
adjtime ...................................... 576
adjtimex ..................................... 577
advance ...................................... 492
aio_cancel.................................... 71
aio_error ..................................... 71
aio_fsync ..................................... 72
aio_init ..................................... 427
aio_read ...................................... 72
aio_return.................................... 72
aio_suspend .................................. 72
aio_write ..................................... 73
alarm ......................................... 73
aligned_alloc ................................ 73
ALLOC ........................................ 603
ALLOC_N ...................................... 603
ALLOC_N_UNINITIALIZED ...................... 603
alloca ....................................... 602
allocated initialization ...................... 641
alphasort ..................................... 73
alternation operator .......................... 633
alternation operator and ‘^................... 638
anchoring .................................... 638
anchors ...................................... 638
argp_err_exit_status ....................... 428
argp_error .................................. 429
argp_failure ................................ 429
argp_help.................................... 429
argp_parse .................................. 429
argp_program_bug_address .................. 429
argp_program_version ....................... 430
argp_program_version_hook ................. 430
argp_state_help ............................. 430
argp_usage .................................. 430
argz_add ..................................... 430
argz_add_sep ................................ 431
argz_append ................................. 431
argz_count .................................. 431
argz_create ................................. 431
argz_create_sep ............................. 431
argz_delete ................................. 432
argz_extract ................................ 432
argz_insert ................................. 432
argz_next.................................... 432
argz_replace ................................ 433
argz_stringify .............................. 433
asctime ....................................... 74
asctime_r ..................................... 74
asin .......................................... 74
asinf ......................................... 74
asinh ......................................... 75
asinhf ........................................ 75
asinhl ........................................ 75
asinl ......................................... 75
asprintf ..................................... 548
assert ........................................ 76
assertion ..................................... 604
atan .......................................... 76
atan2 ......................................... 76
atan2f ........................................ 76
atan2l ........................................ 76
atanf ......................................... 77
atanh ......................................... 77
atanhf ........................................ 77
atanhl ........................................ 77
atanl ......................................... 78
atexit ........................................ 78
atof .......................................... 78
atoi .......................................... 79
atol .......................................... 79
atoll ......................................... 79
authdes_create .............................. 494
authdes_getucred...... ...................... 498
authdes_pk_create .......................... 494
authnone_create ............................. 494
authunix_create ............................. 495
authunix_create_default ................... 495
autopoint, caveat ....................... ....... 19
Awk ......................................... 628
B
back references ............................... 637
backtrace.................................... 443
backtrace_symbols .......................... 443
backtrace_symbols_fd ....................... 443
backtracking............................. 632,634
basename ...................................... 79
bcmp ......................................... 409
bcopy ........................................ 409
bdflush ...................................... 568
beginning-of-line operator .................... 638
bind .......................................... 80
bind_textdomain_codeset ................... 453
bindresvport ................................ 475
bindtextdomain .............................. 453
block size .................................... 624
bracket expression ............................ 634
brk .......................................... 586
bsd_signal .................................. 409
bsearch ....................................... 80
bswap_16 ..................................... 435
bswap_32 ..................................... 435
bswap_64 ..................................... 435
btowc ......................................... 80
buffer field, set by re_compile_pattern ..... 642
buffer initialization .......................... 641
bzero ........................................ 410
Index 669
C
C++ header files ............................... 24
C++ tests modules ............................. 32
c16rtomb ...................................... 80
c32rtomb ...................................... 81
cabs .......................................... 81
cabsf ......................................... 81
cabsl ......................................... 81
cacos ......................................... 82
cacosf ........................................ 82
cacosh ........................................ 82
cacoshf ....................................... 82
cacoshl ....................................... 83
cacosl ........................................ 83
calloc ........................................ 83
callrpc ...................................... 499
canonicalize_file_name ..................... 553
capget ....................................... 565
capset ....................................... 565
carg .......................................... 83
cargf ......................................... 84
cargl ......................................... 84
casin ......................................... 84
casinf ........................................ 84
casinh ........................................ 85
casinhf ....................................... 85
casinhl ....................................... 85
casinl ........................................ 85
catan ......................................... 86
catanf ........................................ 86
catanh ........................................ 86
catanhf ....................................... 86
catanhl ....................................... 87
catanl ........................................ 87
catclose ...................................... 87
catgets ....................................... 87
catopen ....................................... 88
cbc_crypt.................................... 501
cbrt .......................................... 88
cbrtf ......................................... 88
cbrtl ......................................... 88
ccos .......................................... 89
ccosf ......................................... 89
ccosh ......................................... 89
ccoshf ........................................ 89
ccoshl ........................................ 90
ccosl ......................................... 90
ceil .......................................... 90
ceilf ......................................... 90
ceill ......................................... 91
cexp .......................................... 91
cexpf ......................................... 91
cexpl ......................................... 92
cfgetispeed .................................. 92
cfgetospeed .................................. 92
cfmakeraw.................................... 583
cfree ........................................ 554
cfsetispeed .................................. 92
cfsetospeed .................................. 93
cfsetspeed .................................. 583
character classes .............................. 635
chdir ......................................... 93
chmod ......................................... 93
chown ......................................... 93
chroot ....................................... 586
cimag ......................................... 94
cimagf ........................................ 94
cimagl ........................................ 94
clearenv ..................................... 554
clearerr ...................................... 94
clearerr_unlocked .......................... 549
clnt_broadcast .............................. 505
clnt_create ................................. 499
clnt_pcreateerror .......................... 499
clnt_perrno ................................. 499
clnt_perror ................................. 499
clnt_spcreateerror ......................... 499
clnt_sperrno ................................ 500
clnt_sperror ................................ 500
clntraw_create .............................. 500
clnttcp_create .............................. 500
clntudp_bufcreate .......................... 500
clntudp_create .............................. 500
clntunix_create ............................. 501
clock ......................................... 95
clock_adjtime ............................... 583
clock_getcpuclockid ......................... 95
clock_getres ................................. 95
clock_gettime ................................ 95
clock_nanosleep .............................. 96
clock_settime ................................ 96
clog .......................................... 96
clog10 ....................................... 435
clog10f ...................................... 436
clog10l ...................................... 436
clogf ......................................... 96
clogl ......................................... 97
clone ........................................ 540
close ......................................... 97
closedir ...................................... 97
closelog ...................................... 97
colon] in regex ............................. 635
comments describing functions ................. 26
conditional dependencies....................... 22
configmake module .......................... 621
configmake.h’, module for updating ......... 621
confstr ....................................... 98
conj .......................................... 98
conjf ......................................... 98
conjl ......................................... 98
connect ....................................... 99
copysign ...................................... 99
copysignf ..................................... 99
copysignl ..................................... 99
cos .......................................... 100
cosf ......................................... 100
Index 670
cosh ......................................... 100
coshf ........................................ 100
coshl ........................................ 100
cosl ......................................... 101
cpow ......................................... 101
cpowf ........................................ 101
cpowl ........................................ 101
cproj ........................................ 102
cprojf ....................................... 102
cprojl ....................................... 102
creal ........................................ 103
crealf ....................................... 103
creall ....................................... 103
creat ........................................ 103
crypt ........................................ 104
crypt_r ...................................... 436
csin ......................................... 104
csinf ........................................ 104
csinh ........................................ 104
csinhf ....................................... 105
csinhl ....................................... 105
csinl ........................................ 105
csqrt ........................................ 105
csqrtf ....................................... 106
csqrtl ....................................... 106
ctan ......................................... 106
ctanf ........................................ 106
ctanh ........................................ 107
ctanhf ....................................... 107
ctanhl ....................................... 107
ctanl ........................................ 107
ctermid ...................................... 108
ctime ........................................ 108
ctime_r ...................................... 108
cuserid ...................................... 549
D
daemon ....................................... 586
daylight ..................................... 109
dbm_clearerr ................................ 109
dbm_close.................................... 109
dbm_delete .................................. 109
dbm_error.................................... 110
dbm_fetch.................................... 110
dbm_firstkey ................................ 110
dbm_nextkey ................................. 110
dbm_open ..................................... 111
dbm_store.................................... 111
dcgettext.................................... 454
dcngettext .................................. 454
DEF files ..................................... 618
des_setparity ............................... 502
describing functions, locating .................. 26
dgettext ..................................... 454
difftime ..................................... 111
dirfd ........................................ 111
dirname ...................................... 112
div .......................................... 112
dl_iterate_phdr ............................. 455
dladdr ....................................... 438
dladdr1 ...................................... 438
dlclose ...................................... 112
dlerror ...................................... 112
dlinfo ....................................... 438
dlmopen ...................................... 438
dlopen ....................................... 113
dlsym ........................................ 113
dlvsym ....................................... 438
dn_expand.................................... 493
dngettext.................................... 454
double inclusion of header files ................. 24
dprintf ...................................... 113
drand48 ...................................... 114
drand48_r.................................... 554
drem ......................................... 457
dremf ........................................ 457
dreml ........................................ 458
dup .......................................... 114
dup2 ......................................... 114
dup3 ......................................... 586
duplocale.................................... 115
dysize ....................................... 584
E
ecb_crypt.................................... 502
ecvt ......................................... 410
ecvt_r ....................................... 554
Egrep ........................................ 628
Emacs.............................. .......... 628
encrypt ...................................... 115
encrypt_r.................................... 436
end in struct re_registers .................. 645
end-of-line operator........................... 638
endaliasent ................................. 427
endfsent ..................................... 445
endgrent ..................................... 115
endhostent .................................. 115
endmntent.................................... 467
endnetent.................................... 116
endnetgrent ................................. 468
endprotoent ................................. 116
endpwent ..................................... 116
endrpcent.................................... 504
endservent .................................. 116
endsgent ..................................... 451
endspent ..................................... 543
endttyent.................................... 585
endusershell ................................ 587
endutent ..................................... 592
endutxent.................................... 116
environ ...................................... 117
envz_add ..................................... 439
envz_entry .................................. 439
envz_get ..................................... 439
Index 671
envz_merge .................................. 439
envz_remove ................................. 439
envz_strip .................................. 440
epoll_create ................................ 565
epoll_ctl.................................... 566
epoll_wait .................................. 566
equivalence class expression in regex .......... 635
erand48 ...................................... 117
erand48_r.................................... 554
erf .......................................... 117
erfc ......................................... 117
erfcf ........................................ 118
erfcl ........................................ 118
erff ......................................... 118
erfl ......................................... 118
err .......................................... 440
errno ........................................ 119
error ................................... 442,611
error_at_line ............................... 442
error_message_count ........................ 442
error_one_per_line ......................... 442
error_print_progname ....................... 443
errx ......................................... 440
ether_aton .................................. 473
ether_aton_r ................................ 474
ether_hostton ............................... 474
ether_line .................................. 474
ether_ntoa .................................. 474
ether_ntoa_r ................................ 474
ether_ntohost ............................... 475
euidaccess .................................. 587
execl ........................................ 119
execle ....................................... 119
execlp ....................................... 119
execv ........................................ 119
execve ....................................... 120
execvp ....................................... 120
execvpe ...................................... 587
exit ......................................... 120
exp .......................................... 120
exp10 ........................................ 458
exp10f ....................................... 458
exp10l ....................................... 458
exp2 ......................................... 120
exp2f ........................................ 121
exp2l ........................................ 121
expf ......................................... 121
expl ......................................... 122
expm1 ........................................ 122
expm1f ....................................... 122
expm1l ....................................... 122
Extra tests modules ........................... 32
F
fabs ......................................... 123
fabsf ........................................ 123
fabsl ........................................ 123
faccessat.................................... 123
fallocate.................................... 443
fanotify_init ............................... 566
fanotify_mark ............................... 566
fastmap initialization ......................... 641
fastmaps ..................................... 644
fattach ...................................... 124
fchdir ....................................... 124
fchmod ....................................... 124
fchmodat ..................................... 125
fchown ....................................... 125
fchownat ..................................... 125
fclose ....................................... 126
fcloseall.................................... 549
fcntl ........................................ 126
fcvt ......................................... 410
fcvt_r ....................................... 555
FD_CLR ........................................ 66
FD_ISSET ...................................... 66
FD_SET ........................................ 66
FD_ZERO ....................................... 66
fdatasync.................................... 126
fdetach ...................................... 127
fdim ......................................... 127
fdimf ........................................ 127
fdiml ........................................ 127
fdopen ....................................... 128
fdopendir.................................... 128
feclearexcept ............................... 128
fedisableexcept ............................. 444
feenableexcept .............................. 445
fegetenv ..................................... 129
fegetexcept ................................. 445
fegetexceptflag ............................. 129
fegetround .................................. 129
feholdexcept ................................ 129
feof ......................................... 130
feof_unlocked ............................... 549
feraiseexcept ............................... 130
ferror ....................................... 130
ferror_unlocked ............................. 549
fesetenv ..................................... 130
fesetexceptflag ............................. 130
fesetround .................................. 131
fetestexcept ................................ 131
feupdateenv ................................. 131
fexecve ...................................... 131
fflush ....................................... 132
fflush_unlocked ............................. 550
ffs .......................................... 132
ffsl ......................................... 562
ffsll ........................................ 562
fgetc ........................................ 132
fgetc_unlocked .............................. 550
fgetfilecon ................................. 542
fgetgrent.................................... 449
fgetgrent_r ................................. 449
fgetpos ...................................... 133
Index 672
fgetpwent.................................... 489
fgetpwent_r ................................. 489
fgets ........................................ 133
fgets_unlocked .............................. 550
fgetsgent.................................... 451
fgetsgent_r ................................. 451
fgetspent.................................... 543
fgetspent_r ................................. 543
fgetwc ....................................... 134
fgetwc_unlocked ............................. 596
fgetws ....................................... 134
fgetws_unlocked ............................. 596
fgetxattr.................................... 581
fileno ....................................... 134
fileno_unlocked ............................. 550
Finding modules............................... 13
finite ....................................... 458
finitef ...................................... 459
finitel ...................................... 459
flistxattr .................................. 581
flock ........................................ 566
flockfile.................................... 134
floor ........................................ 135
floorf ....................................... 135
floorl ....................................... 135
fma .......................................... 135
fmaf ......................................... 136
fmal ......................................... 136
fmax ......................................... 136
fmaxf ........................................ 137
fmaxl ........................................ 137
fmemopen ..................................... 137
fmin ......................................... 137
fminf ........................................ 138
fminl ........................................ 138
fmod ......................................... 138
fmodf ........................................ 138
fmodl ........................................ 139
fmtmsg ....................................... 139
fnmatch ...................................... 139
fopen ........................................ 140
fopencookie ................................. 550
fork ......................................... 140
forkpty ...................................... 488
fpathconf.................................... 140
fpclassify .................................. 141
fprintf ...................................... 141
fputc ........................................ 142
fputc_unlocked .............................. 551
fputs ........................................ 143
fputs_unlocked .............................. 551
fputwc ....................................... 143
fputwc_unlocked ............................. 596
fputws ....................................... 143
fputws_unlocked ............................. 597
fread ........................................ 144
fread_unlocked .............................. 551
free ......................................... 144
FREE ......................................... 603
freeaddrinfo ................................ 144
freeifaddrs ................................. 453
freelocale .................................. 145
fremovexattr ................................ 581
freopen ...................................... 145
frexp ........................................ 145
frexpf ....................................... 146
frexpl ....................................... 146
fscanf ....................................... 146
fseek ........................................ 147
fseeko ....................................... 147
fsetpos ...................................... 148
fsetxattr.................................... 581
fstat ........................................ 148
fstatat ...................................... 148
fstatfs ...................................... 573
fstatvfs ..................................... 149
fsync ........................................ 149
ftell ........................................ 149
ftello ....................................... 150
ftime ........................................ 410
ftok ......................................... 150
ftruncate.................................... 150
ftrylockfile ................................ 151
fts_children ................................ 446
fts_close.................................... 446
fts_open ..................................... 447
fts_read ..................................... 447
fts_set ...................................... 447
ftw .......................................... 151
funlockfile ................................. 151
futimens ..................................... 151
futimes ...................................... 576
futimesat.................................... 577
fwide ........................................ 152
fwprintf ..................................... 152
fwrite ....................................... 153
fwrite_unlocked ............................. 551
fwscanf ...................................... 153
G
gai_strerror ................................ 153
gamma ........................................ 459
gammaf ....................................... 459
gammal ....................................... 459
gcd .......................................... 612
gcvt ......................................... 411
get_avphys_pages...... ...................... 574
get_current_dir_name ....................... 587
get_myaddress ............................... 501
get_nprocs .................................. 574
get_nprocs_conf ............................. 575
get_phys_pages .............................. 575
getaddrinfo ................................. 154
getaliasbyname .............................. 427
getaliasbyname_r...... ...................... 428
Index 673
getaliasent ................................. 428
getaliasent_r ............................... 428
getc ......................................... 154
getc_unlocked ............................... 154
getchar ...................................... 154
getchar_unlocked...... ...................... 155
getcontext .................................. 411
getcwd ....................................... 155
getdate ...................................... 156
getdate_err ................................. 156
getdate_r.................................... 584
getdelim ..................................... 156
getdirentries ............................... 437
getdomainname ............................... 588
getdtablesize ............................... 588
getegid ...................................... 157
getenv ....................................... 157
geteuid ...................................... 157
getfilecon .................................. 542
getfsent ..................................... 445
getfsfile.................................... 446
getfsspec.................................... 446
getgid ....................................... 157
getgrent ..................................... 157
getgrent_r .................................. 450
getgrgid ..................................... 158
getgrgid_r .................................. 158
getgrnam ..................................... 158
getgrnam_r .................................. 158
getgrouplist ................................ 450
getgroups.................................... 159
gethostbyaddr ............................... 411
gethostbyaddr_r ............................. 468
gethostbyname ............................... 411
gethostbyname_r ............................. 469
gethostbyname2 .............................. 468
gethostbyname2_r...... ...................... 469
gethostent .................................. 159
gethostent_r ................................ 469
gethostid.................................... 159
gethostname ................................. 159
getifaddrs .................................. 453
getipv4sourcefilter ........................ 475
getitimer.................................... 160
getline ...................................... 160
getloadavg .................................. 555
getlogin ..................................... 160
getlogin_r .................................. 161
getmntent.................................... 467
getmntent_r ................................. 467
getmsg ....................................... 161
getnameinfo ................................. 161
getnetbyaddr ................................ 162
getnetbyaddr_r .............................. 469
getnetbyname ................................ 162
getnetbyname_r .............................. 469
getnetent.................................... 162
getnetent_r ................................. 470
getnetgrent ................................. 470
getnetgrent_r ............................... 470
getnetname .................................. 495
getopt ....................................... 162
getopt_long ................................. 447
getopt_long_only...... ...................... 448
getpagesize ................................. 588
getpass ...................................... 588
getpeername ................................. 163
getpgid ...................................... 163
getpgrp ...................................... 164
getpid ....................................... 164
getpmsg ...................................... 164
getppid ...................................... 164
getpriority ................................. 165
getprotobyname .............................. 165
getprotobyname_r...... ...................... 470
getprotobynumber...... ...................... 165
getprotobynumber_r ......................... 470
getprotoent ................................. 165
getprotoent_r ............................... 471
getpt ........................................ 555
getpublickey ................................ 498
getpw ........................................ 489
getpwent ..................................... 165
getpwent_r .................................. 489
getpwnam ..................................... 166
getpwnam_r .................................. 166
getpwuid ..................................... 166
getpwuid_r .................................. 166
getresgid.................................... 589
getresuid.................................... 589
getrlimit.................................... 167
getrpcbyname ................................ 504
getrpcbyname_r .............................. 504
getrpcbynumber .............................. 504
getrpcbynumber_r...... ...................... 505
getrpcent.................................... 505
getrpcent_r ................................. 505
getrpcport .................................. 501
getrusage.................................... 167
gets ......................................... 167
getsecretkey ................................ 498
getservbyname ............................... 167
getservbyname_r ............................. 471
getservbyport ............................... 168
getservbyport_r ............................. 471
getservent .................................. 168
getservent_r ................................ 471
getsgent ..................................... 451
getsgent_r .................................. 451
getsgnam ..................................... 452
getsgnam_r .................................. 452
getsid ....................................... 168
getsockname ................................. 168
getsockopt .................................. 169
getsourcefilter ............................. 475
getspent ..................................... 543
Index 674
getspent_r .................................. 544
getspnam ..................................... 544
getspnam_r .................................. 544
getsubopt.................................... 169
gettext ...................................... 454
gettextize, caveat ....................... ....... 19
gettimeofday ................................ 169
getttyent.................................... 585
getttynam.................................... 585
getuid ....................................... 170
getusershell ................................ 589
getutent ..................................... 593
getutent_r .................................. 593
getutid ...................................... 593
getutid_r.................................... 593
getutline.................................... 593
getutline_r ................................. 594
getutmp ...................................... 595
getutmpx ..................................... 595
getutxent.................................... 170
getutxid ..................................... 170
getutxline .................................. 170
getw ......................................... 551
getwc ........................................ 171
getwc_unlocked .............................. 597
getwchar ..................................... 171
getwchar_unlocked .......................... 597
getwd ........................................ 411
getxattr ..................................... 581
glob ......................................... 171
glob_pattern_p .............................. 449
globfree ..................................... 171
gmtime ....................................... 172
gmtime_r ..................................... 172
gnu_dev_major ............................... 576
gnu_dev_makedev ............................. 576
gnu_dev_minor ............................... 576
gnu_get_libc_release ....................... 449
gnu_get_libc_version ....................... 449
gnulib-tool .................................. 13
grantpt ...................................... 172
Grep ......................................... 628
group_member ................................ 589
grouping ..................................... 636
gsignal ...................................... 545
H
h_errno ...................................... 412
hasmntopt.................................... 468
hcreate ...................................... 172
hcreate_r.................................... 541
hdestroy ..................................... 173
hdestroy_r .................................. 541
header file include protection .................. 24
Header files and C++...... ..................... 24
herror ....................................... 471
host2netname ................................ 495
hsearch ...................................... 173
hsearch_r.................................... 541
hstrerror.................................... 471
htonl ........................................ 173
htons ........................................ 173
hypot ........................................ 173
hypotf ....................................... 174
hypotl ....................................... 174
I
iconv ........................................ 174
iconv_close ................................. 175
iconv_open .................................. 175
if_freenameindex...... ...................... 176
if_indextoname .............................. 176
if_nameindex ................................ 176
if_nametoindex .............................. 177
ilogb ........................................ 177
ilogbf ....................................... 177
ilogbl ....................................... 178
imaxabs ...................................... 178
imaxdiv ...................................... 178
in6addr_any ................................. 475
in6addr_loopback...... ...................... 476
index ........................................ 412
inet_addr.................................... 178
inet_aton.................................... 433
inet_lnaof .................................. 433
inet_makeaddr ............................... 433
inet_net_ntop ............................... 434
inet_net_pton ............................... 434
inet_neta.................................... 434
inet_netof .................................. 434
inet_network ................................ 434
inet_nsap_addr .............................. 434
inet_nsap_ntoa .............................. 435
inet_ntoa.................................... 179
inet_ntop.................................... 179
inet_pton.................................... 179
inet6_opt_append...... ...................... 477
inet6_opt_find .............................. 477
inet6_opt_finish...... ...................... 477
inet6_opt_get_val .......................... 477
inet6_opt_init .............................. 478
inet6_opt_next .............................. 478
inet6_opt_set_val .......................... 478
inet6_option_alloc ......................... 476
inet6_option_append ........................ 476
inet6_option_find .......................... 476
inet6_option_init .......................... 476
inet6_option_next .......................... 476
inet6_option_space ......................... 477
inet6_rth_add ............................... 478
inet6_rth_getaddr .......................... 478
inet6_rth_init .............................. 479
inet6_rth_reverse .......................... 479
inet6_rth_segments ......................... 479
Index 675
inet6_rth_space ............................. 479
initgroups .................................. 450
initial import .................................. 13
initstate.................................... 180
initstate_r ................................. 555
innetgr ...................................... 472
insque ....................................... 180
int .......................................... 603
INT_ADD_OVERFLOW...... ...................... 608
INT_ADD_RANGE_OVERFLOW ..................... 607
INT_BUFSIZE_BOUND .......................... 605
INT_DIVIDE_OVERFLOW ........................ 608
INT_DIVIDE_RANGE_OVERFLOW ................. 607
INT_LEFT_SHIFT_OVERFLOW ................... 609
INT_LEFT_SHIFT_RANGE_OVERFLOW............. 607
INT_MULTIPLY_OVERFLOW ...................... 608
INT_MULTIPLY_RANGE_OVERFLOW ............... 607
INT_NEGATE_OVERFLOW ........................ 608
INT_NEGATE_RANGE_OVERFLOW ................. 607
INT_REMAINDER_OVERFLOW ..................... 608
INT_REMAINDER_RANGE_OVERFLOW .............. 607
INT_STRLEN_BOUND...... ...................... 606
INT_SUBTRACT_OVERFLOW ...................... 608
INT_SUBTRACT_RANGE_OVERFLOW ............... 607
integer bounds ............................... 605
integer overflow .............................. 605
integer properties............................. 605
integer range overflow ........................ 606
integer type overflow ......................... 608
interval expression .. .......................... 633
invoking gnulib-tool ......................... 13
ioctl ........................................ 180
ioperm ....................................... 567
iopl ......................................... 568
isalnum ...................................... 180
isalnum_l.................................... 181
isalpha ...................................... 181
isalpha_l.................................... 182
isascii ...................................... 182
isastream.................................... 182
isatty ....................................... 183
isblank ...................................... 183
isblank_l.................................... 183
iscntrl ...................................... 184
iscntrl_l.................................... 184
isctype ...................................... 437
isdigit ...................................... 184
isdigit_l.................................... 185
isfdtype ..................................... 572
isfinite ..................................... 185
isgraph ...................................... 186
isgraph_l.................................... 186
isgreater.................................... 186
isgreaterequal .............................. 187
isinf ........................................ 187
isinff ....................................... 459
isinfl ....................................... 460
isless ....................................... 187
islessequal ................................. 187
islessgreater ............................... 188
islower ...................................... 188
islower_l.................................... 188
isnan ........................................ 189
isnanf ....................................... 460
isnanl ....................................... 460
isnormal ..................................... 189
isprint ...................................... 189
isprint_l.................................... 190
ispunct ...................................... 190
ispunct_l.................................... 191
isspace ...................................... 191
isspace_l.................................... 191
isunordered ................................. 192
isupper ...................................... 192
isupper_l.................................... 192
iswalnum ..................................... 193
iswalnum_l .................................. 193
iswalpha ..................................... 193
iswalpha_l .................................. 193
iswblank ..................................... 194
iswblank_l .................................. 194
iswcntrl ..................................... 194
iswcntrl_l .................................. 195
iswctype ..................................... 195
iswctype_l .................................. 195
iswdigit ..................................... 196
iswdigit_l .................................. 196
iswgraph ..................................... 196
iswgraph_l .................................. 196
iswlower ..................................... 197
iswlower_l .................................. 197
iswprint ..................................... 197
iswprint_l .................................. 198
iswpunct ..................................... 198
iswpunct_l .................................. 198
iswspace ..................................... 198
iswspace_l .................................. 199
iswupper ..................................... 199
iswupper_l .................................. 199
iswxdigit.................................... 200
iswxdigit_l ................................. 200
isxdigit ..................................... 200
isxdigit_l .................................. 201
J
j0............................................ 201
j0f .......................................... 460
j0l .......................................... 460
j1............................................ 201
j1f .......................................... 461
j1l .......................................... 461
jn............................................ 201
jnf .......................................... 461
jnl .......................................... 461
jrand48 ...................................... 202
Index 676
jrand48_r.................................... 555
K
key_decryptsession ......................... 495
key_decryptsession_pk ...................... 495
key_encryptsession ......................... 496
key_encryptsession_pk ...................... 496
key_gendes .................................. 496
key_get_conv ................................ 496
key_secretkey_is_set ....................... 496
key_setsecret ............................... 497
kill ......................................... 202
killpg ....................................... 202
klogctl ...................................... 568
L
l64a ......................................... 202
labs ......................................... 202
lchmod ....................................... 573
lchown ....................................... 203
lckpwdf ...................................... 544
lcong48 ...................................... 203
lcong48_r.................................... 556
LD DEF files ................................. 618
ldexp ........................................ 203
ldexpf ....................................... 203
ldexpl ....................................... 204
ldiv ......................................... 204
lfind ........................................ 204
lgamma ....................................... 204
lgamma_r ..................................... 461
lgammaf ...................................... 205
lgammaf_r.................................... 462
lgammal ...................................... 205
lgammal_r.................................... 462
lgetfilecon ................................. 542
lgetxattr.................................... 582
link ......................................... 205
linkat ....................................... 205
lio_listio .................................. 206
listen ....................................... 206
listxattr.................................... 582
llabs ........................................ 206
lldiv ........................................ 207
llistxattr .................................. 582
llrint ....................................... 207
llrintf ...................................... 207
llrintl ...................................... 207
llround ...................................... 208
llroundf ..................................... 208
llroundl ..................................... 208
loc1 ......................................... 492
loc2 ......................................... 492
localeconv .................................. 208
localtime.................................... 209
localtime_r ................................. 209
lockf ........................................ 209
locs ......................................... 492
log .......................................... 209
log10 ........................................ 210
log10f ....................................... 210
log10l ....................................... 210
log1p ........................................ 211
log1pf ....................................... 211
log1pl ....................................... 211
log2 ......................................... 212
log2f ........................................ 212
log2l ........................................ 213
logb ......................................... 213
logbf ........................................ 213
logbl ........................................ 213
logf ......................................... 214
login ........................................ 595
login_tty.................................... 595
logl ......................................... 214
long-running tests modules .................... 32
longjmp ...................................... 214
lrand48 ...................................... 215
lrand48_r.................................... 556
lremovexattr ................................ 582
lrint ........................................ 215
lrintf ....................................... 215
lrintl ....................................... 215
lround ....................................... 216
lroundf ...................................... 216
lroundl ...................................... 216
lsearch ...................................... 216
lseek ........................................ 217
lsetxattr.................................... 582
lstat ........................................ 217
lutimes ...................................... 577
M
madvise ...................................... 568
makecontext ................................. 412
mallinfo ..................................... 455
malloc .................................. 217,641
malloc_get_state...... ...................... 455
malloc_info ................................. 456
malloc_set_state...... ...................... 456
malloc_stats ................................ 456
malloc_trim ................................. 456
malloc_usable_size ......................... 456
mallopt ...................................... 457
matching list ................................. 634
matching newline ............................. 634
matching with GNU functions ...... .......... 642
matherr ...................................... 462
mblen ........................................ 218
mbrlen ....................................... 218
mbrtoc16 ..................................... 218
mbrtoc32 ..................................... 219
mbrtowc ...................................... 219
Index 677
mbsinit ...................................... 219
mbsnrtowcs .................................. 220
mbsrtowcs.................................... 220
mbstowcs ..................................... 220
mbtowc ....................................... 221
mcheck ....................................... 466
mcheck_check_all...... ...................... 466
mcheck_pedantic ............................. 466
memalign ..................................... 457
memccpy ...................................... 221
memchr ....................................... 221
memcmp ....................................... 221
memcpy ....................................... 222
memfrob ...................................... 563
memmem ....................................... 563
memmove ...................................... 222
Memory allocation failure...................... 32
mempcpy ...................................... 563
memrchr ...................................... 563
memset ....................................... 222
mincore ...................................... 568
mkdir ........................................ 222
mkdirat ...................................... 223
mkdtemp ...................................... 223
mkfifo ....................................... 223
mkfifoat ..................................... 224
mknod ........................................ 224
mknodat ...................................... 224
mkostemp ..................................... 556
mkostemps.................................... 556
mkstemp ...................................... 225
mkstemps ..................................... 557
mktemp ....................................... 412
mktime ....................................... 225
mlock ........................................ 225
mlockall ..................................... 226
mmap ......................................... 226
modf ......................................... 226
modff ........................................ 227
modfl ........................................ 227
monstartup .................................. 567
mount ........................................ 569
mprobe ....................................... 466
mprotect ..................................... 227
mq_close ..................................... 228
mq_getattr .................................. 228
mq_notify.................................... 228
mq_open ...................................... 228
mq_receive .................................. 229
mq_send ...................................... 229
mq_setattr .................................. 229
mq_timedreceive ............................. 229
mq_timedsend ................................ 230
mq_unlink.................................... 230
mrand48 ...................................... 230
mrand48_r.................................... 557
mremap ....................................... 569
msgctl ....................................... 230
msgget ....................................... 231
msgrcv ....................................... 231
msgsnd ....................................... 231
msync ........................................ 231
mtrace ....................................... 466
munlock ...................................... 232
munlockall .................................. 232
munmap ....................................... 232
muntrace ..................................... 467
N
name_to_handle_at .......................... 444
nan .......................................... 232
nanf ......................................... 233
nanl ......................................... 233
nanosleep.................................... 233
nearbyint.................................... 233
nearbyintf .................................. 234
nearbyintl .................................. 234
netname2host ................................ 497
netname2user ................................ 497
newlocale.................................... 234
nextafter.................................... 234
nextafterf .................................. 235
nextafterl .................................. 235
nexttoward .................................. 235
nexttowardf ................................. 235
nexttowardl ................................. 236
nftw ......................................... 236
ngettext ..................................... 455
nice ......................................... 236
nis_add ...................................... 521
nis_add_entry ............................... 521
nis_addmember ............................... 521
nis_checkpoint .............................. 521
nis_clone_object...... ...................... 522
nis_creategroup ............................. 522
nis_destroy_object ......................... 522
nis_destroygroup...... ...................... 522
nis_dir_cmp ................................. 522
nis_domain_of ............................... 523
nis_domain_of_r ............................. 523
nis_first_entry ............................. 523
nis_freenames ............................... 523
nis_freeresult .............................. 523
nis_freeservlist...... ...................... 524
nis_freetags ................................ 524
nis_getnames ................................ 524
nis_getservlist ............................. 524
nis_ismember ................................ 524
nis_leaf_of ................................. 525
nis_leaf_of_r ............................... 525
nis_lerror .................................. 525
nis_list ..................................... 525
nis_local_directory ........................ 525
nis_local_group ............................. 526
nis_local_host .............................. 526
Index 678
nis_local_principal ........................ 526
nis_lookup .................................. 526
nis_mkdir.................................... 526
nis_modify .................................. 527
nis_modify_entry...... ...................... 527
nis_name_of ................................. 527
nis_name_of_r ............................... 527
nis_next_entry .............................. 527
nis_perror .................................. 528
nis_ping ..................................... 528
nis_print_directory ........................ 528
nis_print_entry ............................. 528
nis_print_group ............................. 528
nis_print_group_entry ...................... 529
nis_print_link .............................. 529
nis_print_object...... ...................... 529
nis_print_result...... ...................... 529
nis_print_rights...... ...................... 529
nis_print_table ............................. 530
nis_remove .................................. 530
nis_remove_entry...... ...................... 530
nis_removemember...... ...................... 530
nis_rmdir.................................... 530
nis_servstate ............................... 531
nis_sperrno ................................. 531
nis_sperror ................................. 531
nis_sperror_r ............................... 531
nis_stats.................................... 531
nis_verifygroup ............................. 532
nl_langinfo ................................. 236
nl_langinfo_l ............................... 237
nonmatching list ............................. 634
not_bol field in pattern buffer ................ 638
nrand48 ...................................... 237
nrand48_r.................................... 557
ntohl ........................................ 237
ntohs ........................................ 238
ntp_adjtime ................................. 578
ntp_gettime ................................. 578
ntp_gettimex ................................ 578
num_regs in struct re_registers ............ 645
O
Obsolete modules .............................. 32
obstack_alloc_failed_handler .............. 480
obstack_exit_failure ....................... 480
obstack_free ................................ 480
obstack_printf .............................. 480
obstack_vprintf ............................. 481
on_exit ...................................... 557
open ......................................... 238
open-group operator and ‘^.................. 638
open_by_handle_at .......................... 444
open_memstream .............................. 239
open_wmemstream ............................. 239
openat ....................................... 238
opendir ...................................... 239
openlog ...................................... 239
openpty ...................................... 488
optarg ....................................... 240
opterr ....................................... 240
optind ....................................... 240
optopt ....................................... 240
or operator ................................... 633
Out of Memory handling ...................... 32
overflow, integer .............................. 605
overflow, integer range ........................ 606
overflow, integer type ............. ............ 608
P
parenthesizing ................................ 636
parse_printf_format ........................ 482
pathconf ..................................... 241
pattern buffer initialization ................... 641
pattern buffer, definition of .. ................. 641
pause ........................................ 241
pclose ....................................... 241
perror ....................................... 241
personality ................................. 570
pipe ......................................... 242
pipe2 ........................................ 589
pmap_getmaps ................................ 506
pmap_getport ................................ 506
pmap_rmtcall ................................ 506
pmap_set ..................................... 506
pmap_unset .................................. 506
poll ......................................... 242
popen ........................................ 242
POSIX Awk.................................. 628
posix_fadvise ............................... 243
posix_fallocate ............................. 243
posix_madvise ............................... 243
posix_mem_offset...... ...................... 244
posix_memalign .............................. 244
posix_openpt ................................ 244
posix_spawn ................................. 245
posix_spawn_file_actions_addclose ........ 245
posix_spawn_file_actions_adddup2 ......... 245
posix_spawn_file_actions_addopen ......... 246
posix_spawn_file_actions_destroy ......... 246
posix_spawn_file_actions_init............. 246
posix_spawnattr_destroy ................... 246
posix_spawnattr_getflags .................. 247
posix_spawnattr_getpgroup ................. 247
posix_spawnattr_getschedparam............. 247
posix_spawnattr_getschedpolicy ........... 248
posix_spawnattr_getsigdefault............. 248
posix_spawnattr_getsigmask ................ 248
posix_spawnattr_init ....................... 248
posix_spawnattr_setflags .................. 249
posix_spawnattr_setpgroup ................. 249
posix_spawnattr_setschedparam............. 249
posix_spawnattr_setschedpolicy ........... 250
posix_spawnattr_setsigdefault............. 250
Index 679
posix_spawnattr_setsigmask ................ 250
posix_spawnp ................................ 250
posix_trace_attr_destroy .................. 251
posix_trace_attr_getclockres .............. 251
posix_trace_attr_getcreatetime ........... 251
posix_trace_attr_getgenversion ........... 252
posix_trace_attr_getinherited............. 252
posix_trace_attr_getlogfullpolicy ........ 252
posix_trace_attr_getlogsize ............... 252
posix_trace_attr_getmaxdatasize .......... 253
posix_trace_attr_getmaxsystemeventsize . . 253
posix_trace_attr_getmaxusereventsize..... 253
posix_trace_attr_getname .................. 254
posix_trace_attr_getstreamfullpolicy..... 254
posix_trace_attr_getstreamsize ........... 254
posix_trace_attr_init ...................... 254
posix_trace_attr_setinherited............. 255
posix_trace_attr_setlogfullpolicy ........ 255
posix_trace_attr_setlogsize ............... 255
posix_trace_attr_setmaxdatasize .......... 256
posix_trace_attr_setname .................. 256
posix_trace_attr_setstreamfullpolicy..... 256
posix_trace_attr_setstreamsize ........... 256
posix_trace_clear .......................... 257
posix_trace_close .......................... 257
posix_trace_create ......................... 257
posix_trace_create_withlog ................ 258
posix_trace_event .......................... 258
posix_trace_eventid_equal ................. 258
posix_trace_eventid_get_name .............. 258
posix_trace_eventid_open .................. 259
posix_trace_eventset_add .................. 259
posix_trace_eventset_del .................. 259
posix_trace_eventset_empty ................ 260
posix_trace_eventset_fill ................. 260
posix_trace_eventset_ismember............. 260
posix_trace_eventtypelist_getnext_id..... 260
posix_trace_eventtypelist_rewind ......... 261
posix_trace_flush .......................... 261
posix_trace_get_attr ....................... 261
posix_trace_get_filter ..................... 262
posix_trace_get_status ..................... 262
posix_trace_getnext_event ................. 262
posix_trace_open...... ...................... 262
posix_trace_rewind ......................... 263
posix_trace_set_filter ..................... 263
posix_trace_shutdown ....................... 263
posix_trace_start .......................... 264
posix_trace_stop...... ...................... 264
posix_trace_timedgetnext_event ........... 264
posix_trace_trid_eventid_open............. 264
posix_trace_trygetnext_event .............. 265
posix_typed_mem_get_info .................. 265
posix_typed_mem_open ....................... 265
pow .......................................... 266
pow10 ........................................ 462
pow10f ....................................... 462
pow10l ....................................... 463
powf ......................................... 266
powl ......................................... 266
prctl ........................................ 570
pread ........................................ 266
preadv ....................................... 578
printf ....................................... 267
printf_size ................................. 483
printf_size_info...... ...................... 483
privileged tests modules ....................... 32
prlimit ...................................... 571
process_vm_readv...... ...................... 578
process_vm_writev .......................... 579
profil ....................................... 590
progname ..................................... 611
program_invocation_name ................... 441
program_invocation_short_name............. 442
program_name ................................ 611
pselect ...................................... 268
psiginfo ..................................... 268
psignal ...................................... 268
pthread_atfork .............................. 269
pthread_attr_destroy ....................... 269
pthread_attr_getaffinity_np ............... 484
pthread_attr_getdetachstate ............... 269
pthread_attr_getguardsize ................. 269
pthread_attr_getinheritsched .............. 270
pthread_attr_getschedparam ................ 270
pthread_attr_getschedpolicy ............... 270
pthread_attr_getscope ...................... 270
pthread_attr_getstack ...................... 271
pthread_attr_getstackaddr ................. 413
pthread_attr_getstacksize ................. 271
pthread_attr_init .......................... 271
pthread_attr_setaffinity_np ............... 484
pthread_attr_setdetachstate ............... 271
pthread_attr_setguardsize ................. 272
pthread_attr_setinheritsched .............. 272
pthread_attr_setschedparam ................ 272
pthread_attr_setschedpolicy ............... 272
pthread_attr_setscope ...................... 273
pthread_attr_setstack ...................... 273
pthread_attr_setstackaddr ................. 413
pthread_attr_setstacksize ................. 273
pthread_barrier_destroy ................... 273
pthread_barrier_init ....................... 274
pthread_barrier_wait ....................... 274
pthread_barrierattr_destroy ............... 274
pthread_barrierattr_getpshared ........... 275
pthread_barrierattr_init .................. 275
pthread_barrierattr_setpshared ........... 275
pthread_cancel .............................. 275
pthread_cleanup_pop ........................ 276
pthread_cleanup_push ....................... 276
pthread_cond_broadcast ..................... 276
pthread_cond_destroy ....................... 276
pthread_cond_init .......................... 277
pthread_cond_signal ........................ 277
pthread_cond_timedwait ..................... 277
Index 680
pthread_cond_wait .......................... 277
pthread_condattr_destroy .................. 278
pthread_condattr_getclock ................. 278
pthread_condattr_getpshared ............... 278
pthread_condattr_init ...................... 278
pthread_condattr_setclock ................. 279
pthread_condattr_setpshared ............... 279
pthread_create .............................. 279
pthread_detach .............................. 279
pthread_equal ............................... 280
pthread_exit ................................ 280
pthread_getaffinity_np ..................... 484
pthread_getattr_np ......................... 485
pthread_getconcurrency ..................... 280
pthread_getcpuclockid ...................... 280
pthread_getname_np ......................... 485
pthread_getschedparam ...................... 281
pthread_getspecific ........................ 281
pthread_join ................................ 281
pthread_key_create ......................... 281
pthread_key_delete ......................... 282
pthread_kill ................................ 282
pthread_kill_other_threads_np............. 485
pthread_mutex_consistent .................. 282
pthread_mutex_consistent_np ............... 485
pthread_mutex_destroy ...................... 282
pthread_mutex_getprioceiling .............. 283
pthread_mutex_init ......................... 283
pthread_mutex_lock ......................... 283
pthread_mutex_setprioceiling .............. 283
pthread_mutex_timedlock ................... 284
pthread_mutex_trylock ...................... 284
pthread_mutex_unlock ....................... 284
pthread_mutexattr_destroy ................. 284
pthread_mutexattr_getprioceiling ......... 285
pthread_mutexattr_getprotocol............. 285
pthread_mutexattr_getpshared .............. 285
pthread_mutexattr_getrobust ............... 285
pthread_mutexattr_getrobust_np ........... 485
pthread_mutexattr_gettype ................. 286
pthread_mutexattr_init ..................... 286
pthread_mutexattr_setprioceiling ......... 286
pthread_mutexattr_setprotocol............. 286
pthread_mutexattr_setpshared .............. 287
pthread_mutexattr_setrobust ............... 287
pthread_mutexattr_setrobust_np ........... 486
pthread_mutexattr_settype ................. 287
pthread_once ................................ 287
pthread_rwlock_destroy ..................... 288
pthread_rwlock_init ........................ 288
pthread_rwlock_rdlock ...................... 288
pthread_rwlock_timedrdlock ................ 288
pthread_rwlock_timedwrlock ................ 289
pthread_rwlock_tryrdlock .................. 289
pthread_rwlock_trywrlock .................. 289
pthread_rwlock_unlock ...................... 289
pthread_rwlock_wrlock ...................... 290
pthread_rwlockattr_destroy ................ 290
pthread_rwlockattr_getkind_np............. 486
pthread_rwlockattr_getpshared............. 290
pthread_rwlockattr_init ................... 290
pthread_rwlockattr_setkind_np............. 486
pthread_rwlockattr_setpshared............. 291
pthread_self ................................ 291
pthread_setaffinity_np ..................... 486
pthread_setcancelstate ..................... 291
pthread_setcanceltype ...................... 291
pthread_setconcurrency ..................... 292
pthread_setname_np ......................... 487
pthread_setschedparam ...................... 292
pthread_setschedprio ....................... 292
pthread_setspecific ........................ 292
pthread_sigmask ............................. 293
pthread_sigqueue...... ...................... 487
pthread_spin_destroy ....................... 293
pthread_spin_init .......................... 293
pthread_spin_lock .......................... 294
pthread_spin_trylock ....................... 294
pthread_spin_unlock ........................ 294
pthread_testcancel ......................... 294
pthread_timedjoin_np ....................... 487
pthread_tryjoin_np ......................... 487
pthread_yield ............................... 487
ptrace ....................................... 570
ptsname ...................................... 295
ptsname_r.................................... 558
putc ......................................... 295
putc_unlocked ............................... 295
putchar ...................................... 296
putchar_unlocked...... ...................... 296
putenv ....................................... 296
putgrent ..................................... 450
putmsg ....................................... 297
putpmsg ...................................... 297
putpwent ..................................... 489
puts ......................................... 297
putsgent ..................................... 452
putspent ..................................... 544
pututline.................................... 594
pututxline .................................. 297
putw ......................................... 552
putwc ........................................ 298
putwc_unlocked .............................. 597
putwchar ..................................... 298
putwchar_unlocked .......................... 598
pvalloc ...................................... 457
pwrite ....................................... 298
pwritev ...................................... 579
Q
qecvt ........................................ 558
qecvt_r ...................................... 558
qfcvt ........................................ 558
qfcvt_r ...................................... 558
qgcvt ........................................ 559
Index 681
qsort ........................................ 299
qsort_r ...................................... 559
quick_exit .................................. 299
quotactl ..................................... 571
quote ........................................ 611
quote_n ...................................... 611
quotearg ..................................... 611
quotearg_alloc .............................. 611
Quoting ...................................... 611
R
raise ........................................ 299
rand ......................................... 299
rand_r ....................................... 300
random ....................................... 300
random_r ..................................... 559
range argument to re_search ................ 643
rawmemchr.................................... 564
rcmd ......................................... 472
rcmd_af ...................................... 472
RE_BACKSLASH_ESCAPE_IN_LIST ............... 626
RE_BK_PLUS_QM ............................... 626
RE_CHAR_CLASSES ............................. 626
re_comp ................................. 490,648
re_compile_fastmap .................... 490,644
re_compile_pattern .................... 490,642
RE_CONTEXT_INDEP_ANCHORS .................. 626
RE_CONTEXT_INDEP_ANCHORS (and ‘^’) ......... 638
RE_CONTEXT_INDEP_OPS ....................... 626
RE_CONTEXT_INVALID_DUP ..................... 626
RE_CONTEXT_INVALID_OPS ..................... 627
RE_DEBUG ..................................... 627
RE_DOT_NEWLINE .............................. 627
RE_DOT_NOT_NULL ............................. 627
re_exec ................................. 490,648
RE_HAT_LISTS_NOT_NEWLINE .................. 627
RE_ICASE ..................................... 627
RE_INTERVALS ................................ 627
RE_INVALID_INTERVAL_ORD ................... 627
RE_LIMITED_OPS .............................. 627
re_match ................................ 490,642
re_match_2 .............................. 491,643
RE_NEWLINE_ALT .............................. 627
RE_NO_BK_BRACES ............................. 627
RE_NO_BK_PARENS ............................. 628
RE_NO_BK_REFS ............................... 628
RE_NO_BK_VBAR ............................... 628
RE_NO_EMPTY_RANGES ......................... 628
RE_NO_GNU_OPS ............................... 628
RE_NO_POSIX_BACKTRACKING .................. 628
RE_NO_SUB.................................... 628
re_nsub field, set by re_compile_pattern . . . . 642
re_pattern_buffer definition ................ 641
re_registers ................................ 645
re_search ............................... 491,643
re_search_2......... .................... 491,643
re_set_registers ....................... 491,646
re_set_syntax ............................... 491
re_syntax_options .......................... 492
re_syntax_options initialization ............. 641
RE_UNMATCHED_RIGHT_PAREN_ORD .............. 628
read ......................................... 300
readahead.................................... 444
readdir ...................................... 300
readdir_r.................................... 301
readlink ..................................... 301
readlinkat .................................. 302
readv ........................................ 302
realloc ...................................... 302
REALLOC_N.................................... 603
realpath ..................................... 303
reboot ....................................... 571
recv ......................................... 303
recvfrom ..................................... 304
recvmmsg ..................................... 572
recvmsg ...................................... 304
regcomp ...................................... 304
regerror ..................................... 304
regex.h ...................................... 625
regexec ...................................... 305
regexp anchoring ............................. 638
regfree ................................. 305,647
register_printf_function .................. 483
register_printf_modifier .................. 483
register_printf_specifier ................. 483
register_printf_type ....................... 484
regular expressions, syntax of ................. 625
remainder.................................... 305
remainderf .................................. 305
remainderl .................................. 306
remap_file_pages...... ...................... 569
remove ....................................... 306
removexattr ................................. 583
remque ....................................... 306
remquo ....................................... 307
remquof ...................................... 307
remquol ...................................... 307
rename ....................................... 307
renameat ..................................... 308
res_init ..................................... 493
res_mkquery ................................. 493
res_query.................................... 493
res_querydomain ............................. 494
res_search .................................. 494
revoke ....................................... 590
rewind ....................................... 309
rewinddir.................................... 309
rexec ........................................ 472
rexec_af ..................................... 472
rindex ....................................... 413
rint ......................................... 309
rintf ........................................ 310
rintl ........................................ 310
rmdir ........................................ 310
round ........................................ 311
Index 682
roundf ....................................... 311
roundl ....................................... 311
rpc_createerr ............................... 501
rpmatch ...................................... 559
rresvport.................................... 472
rresvport_af ................................ 473
rtime ........................................ 498
ruserok ...................................... 473
ruserok_af .................................. 473
S
sbrk ......................................... 590
scalb ........................................ 413
scalbf ....................................... 463
scalbl ....................................... 463
scalbln ...................................... 312
scalblnf ..................................... 312
scalblnl ..................................... 312
scalbn ....................................... 313
scalbnf ...................................... 313
scalbnl ...................................... 313
scandir ...................................... 313
scandirat.................................... 437
scanf ........................................ 314
sched_get_priority_max ..................... 314
sched_get_priority_min ..................... 314
sched_getaffinity .......................... 540
sched_getparam .............................. 315
sched_getscheduler ......................... 315
sched_rr_get_interval ...................... 315
sched_setaffinity .......................... 540
sched_setparam .............................. 315
sched_setscheduler ......................... 316
sched_yield ................................. 316
searching with GNU functions ................ 642
seed48 ....................................... 316
seed48_r ..................................... 559
seekdir ...................................... 316
select ....................................... 317
sem_close.................................... 317
sem_destroy ................................. 317
sem_getvalue ................................ 318
sem_init ..................................... 318
sem_open ..................................... 318
sem_post ..................................... 318
sem_timedwait ............................... 319
sem_trywait ................................. 319
sem_unlink .................................. 319
sem_wait ..................................... 319
semctl ....................................... 320
semget ....................................... 320
semop ........................................ 320
semtimedop .................................. 571
send ......................................... 320
sendfile ..................................... 572
sendmmsg ..................................... 573
sendmsg ...................................... 321
sendto ....................................... 321
setaliasent ................................. 428
setbuf ....................................... 321
setbuffer.................................... 552
setcontext .................................. 413
setdomainname ............................... 590
setegid ...................................... 321
setenv ....................................... 322
seteuid ...................................... 322
setfsent ..................................... 446
setfsgid ..................................... 567
setfsuid ..................................... 567
setgid ....................................... 322
setgrent ..................................... 322
setgroups.................................... 450
sethostent .................................. 323
sethostid.................................... 591
sethostname ................................. 591
setipv4sourcefilter ........................ 479
setitimer.................................... 323
setjmp ....................................... 323
setkey ....................................... 323
setkey_r ..................................... 436
setlinebuf .................................. 552
setlocale.................................... 324
setlogin ..................................... 590
setlogmask .................................. 324
setmntent.................................... 468
setnetent.................................... 324
setnetgrent ................................. 473
setns ........................................ 541
setpgid ...................................... 324
setpgrp ...................................... 325
setpriority ................................. 325
setprotoent ................................. 325
setpwent ..................................... 325
setregid ..................................... 325
setresgid.................................... 591
setresuid.................................... 591
setreuid ..................................... 326
setrlimit.................................... 326
setrpcent.................................... 505
setservent .................................. 326
setsgent ..................................... 452
setsid ....................................... 326
setsockopt .................................. 327
setsourcefilter ............................. 480
setspent ..................................... 545
setstate ..................................... 327
setstate_r .................................. 560
settimeofday ................................ 577
setttyent.................................... 586
setuid ....................................... 327
setusershell ................................ 591
setutent ..................................... 594
setutxent.................................... 327
setvbuf ...................................... 328
setxattr ..................................... 583
Index 683
sgetsgent.................................... 452
sgetsgent_r ................................. 453
sgetspent.................................... 545
sgetspent_r ................................. 545
shm_open ..................................... 328
shm_unlink .................................. 328
shmat ........................................ 328
shmctl ....................................... 329
shmdt ........................................ 329
shmget ....................................... 329
shutdown ..................................... 329
sigaction.................................... 330
sigaddset.................................... 330
sigaltstack ................................. 330
sigandset.................................... 546
sigblock ..................................... 546
sigdelset.................................... 331
sigemptyset ................................. 331
sigfillset .................................. 331
siggetmask .................................. 546
sighold ...................................... 331
sigignore.................................... 332
siginterrupt ................................ 332
sigisemptyset ............................... 546
sigismember ................................. 332
siglongjmp .................................. 332
signal ....................................... 333
signbit ...................................... 333
signgam ...................................... 333
significand ................................. 463
significandf ................................ 463
significandl ................................ 464
sigorset ..................................... 546
sigpause ..................................... 333
sigpending .................................. 334
sigprocmask ................................. 334
sigqueue ..................................... 334
sigrelse ..................................... 334
sigreturn.................................... 547
sigset ....................................... 335
sigsetjmp.................................... 335
sigsetmask .................................. 547
sigstack ..................................... 547
sigsuspend .................................. 335
sigtimedwait ................................ 335
sigvec ....................................... 547
sigwait ...................................... 336
sigwaitinfo ................................. 336
sin .......................................... 336
sincos ....................................... 464
sincosf ...................................... 464
sincosl ...................................... 464
sinf ......................................... 336
sinh ......................................... 337
sinhf ........................................ 337
sinhl ........................................ 337
sinl ......................................... 337
sleep ........................................ 338
snprintf ..................................... 338
sockatmark .................................. 339
socket ....................................... 340
socketpair .................................. 340
specification ................................... 26
sprintf ...................................... 340
sprofil ...................................... 570
sqrt ......................................... 341
sqrtf ........................................ 341
sqrtl ........................................ 342
srand ........................................ 342
srand48 ...................................... 342
srand48_r.................................... 560
srandom ...................................... 342
srandom_r.................................... 560
sscanf ....................................... 343
ssignal ...................................... 547
ST_BLKSIZE .................................. 624
ST_NBLOCKS .................................. 624
ST_NBLOCKSIZE ............................... 624
start argument to re_search ................ 643
start in struct re_registers ............... 645
stat ......................................... 343
statfs ....................................... 573
statvfs ...................................... 343
stderr ....................................... 344
stdin ........................................ 344
stdout ....................................... 344
step ......................................... 493
stime ........................................ 584
stpcpy ....................................... 345
stpncpy ...................................... 345
strcasecmp .................................. 345
strcasecmp_l ................................ 346
strcasestr .................................. 564
strcat ....................................... 346
strchr ....................................... 346
strchrnul.................................... 564
strcmp ....................................... 346
strcoll ...................................... 346
strcoll_l.................................... 347
strcpy ....................................... 347
strcspn ...................................... 347
strdup ....................................... 347
strerror ..................................... 348
strerror_l .................................. 348
strerror_r .................................. 348
strfmon ...................................... 349
strfmon_l.................................... 350
strfry ....................................... 564
strftime ..................................... 350
strftime_l .................................. 350
strlen ....................................... 350
strncasecmp ................................. 351
strncasecmp_l ............................... 351
strncat ...................................... 351
strncmp ...................................... 351
strncpy ...................................... 352
Index 684
strndup ...................................... 352
strnlen ...................................... 352
strpbrk ...................................... 352
strptime ..................................... 353
strptime_l .................................. 584
strrchr ...................................... 353
strsep ....................................... 565
strsignal.................................... 353
strspn ....................................... 353
strstr ....................................... 354
strtod ....................................... 354
strtod_l ..................................... 560
strtof ....................................... 355
strtof_l ..................................... 560
strtoimax.................................... 355
strtok ....................................... 356
strtok_r ..................................... 356
strtol ....................................... 356
strtol_l ..................................... 561
strtold ...................................... 356
strtold_l.................................... 561
strtoll ...................................... 357
strtoll_l.................................... 561
strtoq ....................................... 561
strtoul ...................................... 357
strtoul_l.................................... 561
strtoull ..................................... 357
strtoull_l .................................. 562
strtoumax.................................... 357
strtouq ...................................... 562
struct re_pattern_buffer definition ......... 641
strverscmp .................................. 565
strxfrm ...................................... 358
strxfrm_l.................................... 358
subexpressions ............................... 636
svc_exit ..................................... 508
svc_fdset.................................... 508
svc_getreq .................................. 508
svc_getreq_common .......................... 509
svc_getreq_poll ............................. 509
svc_getreqset ............................... 509
svc_max_pollfd .............................. 509
svc_pollfd .................................. 509
svc_register ................................ 510
svc_run ...................................... 510
svc_sendreply ............................... 510
svc_unregister .............................. 510
svcerr_auth ................................. 510
svcerr_decode ............................... 510
svcerr_noproc ............................... 511
svcerr_noprog ............................... 511
svcerr_progvers ............................. 511
svcerr_systemerr...... ...................... 511
svcerr_weakauth ............................. 511
svcraw_create ............................... 511
svctcp_create ............................... 512
svcudp_bufcreate...... ...................... 512
svcudp_create ............................... 512
svcunix_create .............................. 512
swab ......................................... 358
swapcontext ................................. 414
swapoff ...................................... 574
swapon ....................................... 574
swprintf ..................................... 358
swscanf ...................................... 359
symlink ...................................... 359
symlinkat.................................... 359
sync ......................................... 360
syncfs ....................................... 592
syntax bits ................................... 626
syntax field, set by re_compile_pattern ..... 642
syntax initialization .......................... 641
syntax of regular expressions.................. 625
sys_errlist ................................. 552
sys_nerr ..................................... 552
sys_siglist ................................. 547
syscall ...................................... 592
sysconf ...................................... 360
sysctl ....................................... 574
sysinfo ...................................... 575
syslog ....................................... 360
system ....................................... 360
sysv_signal ................................. 548
T
tan .......................................... 361
tanf ......................................... 361
tanh ......................................... 361
tanhf ........................................ 361
tanhl ........................................ 361
tanl ......................................... 362
tcdrain ...................................... 362
tcflow ....................................... 362
tcflush ...................................... 362
tcgetattr.................................... 363
tcgetpgrp.................................... 363
tcgetsid ..................................... 363
tcsendbreak ................................. 364
tcsetattr.................................... 364
tcsetpgrp.................................... 364
tdelete ...................................... 364
tdestroy ..................................... 541
telldir ...................................... 365
tempnam ...................................... 365
tests modules, C++ ............................ 32
tests modules, long-running .................... 32
tests modules, privileged .. ..................... 32
tests modules, unportable .. .................... 32
textdomain .................................. 455
tfind ........................................ 365
tgamma ....................................... 365
tgammaf ...................................... 366
tgammal ...................................... 366
time ......................................... 366
timegm ....................................... 584
Index 685
timelocal.................................... 585
timer_create ................................ 366
timer_delete ................................ 367
timer_getoverrun...... ...................... 367
timer_gettime ............................... 367
timer_settime ............................... 367
times ........................................ 368
timespec_get ................................ 585
timezone ..................................... 368
tmpfile ...................................... 368
tmpnam ....................................... 368
tmpnam_r ..................................... 552
toascii ...................................... 369
tolower ...................................... 369
tolower_l.................................... 369
toupper ...................................... 369
toupper_l.................................... 370
towctrans.................................... 370
towctrans_l ................................. 370
towlower ..................................... 370
towlower_l .................................. 371
towupper ..................................... 371
towupper_l .................................. 371
translate initialization ...................... 641
trunc ........................................ 372
truncate ..................................... 372
truncf ....................................... 372
truncl ....................................... 373
tsearch ...................................... 373
ttyname ...................................... 373
ttyname_r.................................... 373
ttyslot ...................................... 592
twalk ........................................ 374
TYPE_IS_INTEGER ............................. 605
TYPE_MAXIMUM ................................ 606
TYPE_MINIMUM ................................ 606
TYPE_SIGNED ................................. 605
tzname ....................................... 374
tzset ........................................ 374
U
ualarm ....................................... 414
ulckpwdf ..................................... 545
ulimit ....................................... 375
umask ........................................ 375
umount ....................................... 569
umount2 ...................................... 569
uname ........................................ 375
ungetc ....................................... 375
ungetwc ...................................... 375
unlink ....................................... 376
unlinkat ..................................... 376
unlockpt ..................................... 377
unportable tests modules ...................... 32
unsetenv ..................................... 377
updwtmp ...................................... 594
updwtmpx ..................................... 596
uselocale.................................... 378
user2netname ................................ 497
usleep ....................................... 414
ustat ........................................ 579
utime ........................................ 378
utimensat.................................... 378
utimes ....................................... 379
utmpname ..................................... 594
utmpxname.................................... 596
V
va_arg ....................................... 380
va_copy ...................................... 380
va_end ....................................... 380
va_start ..................................... 381
valloc ....................................... 562
vasprintf.................................... 553
vdprintf ..................................... 381
verify ....................................... 604
verify_expr ................................. 604
verr ......................................... 440
verrx ........................................ 440
versionsort ................................. 437
vfork ........................................ 414
vfprintf ..................................... 381
vfscanf ...................................... 383
vfwprintf.................................... 383
vfwscanf ..................................... 384
vhangup ...................................... 592
vlimit ....................................... 579
vm86 ......................................... 580
void ......................................... 603
vprintf ...................................... 384
vscanf ....................................... 385
vsnprintf.................................... 386
vsprintf ..................................... 387
vsscanf ...................................... 388
vswprintf.................................... 388
vswscanf ..................................... 389
vsyslog ...................................... 575
vtimes ....................................... 580
vwarn ........................................ 441
vwarnx ....................................... 441
vwprintf ..................................... 389
vwscanf ...................................... 389
W
wait ......................................... 390
wait3 ........................................ 580
wait4 ........................................ 580
waitid ....................................... 390
waitpid ...................................... 390
warn ......................................... 441
warnx ........................................ 441
wcpcpy ....................................... 390
wcpncpy ...................................... 391
Index 686
wcrtomb ...................................... 391
wcscasecmp .................................. 391
wcscasecmp_l ................................ 392
wcscat ....................................... 392
wcschr ....................................... 392
wcschrnul.................................... 598
wcscmp ....................................... 392
wcscoll ...................................... 393
wcscoll_l.................................... 393
wcscpy ....................................... 393
wcscspn ...................................... 393
wcsdup ....................................... 394
wcsftime ..................................... 394
wcsftime_l .................................. 598
wcslen ....................................... 394
wcsncasecmp ................................. 394
wcsncasecmp_l ............................... 395
wcsncat ...................................... 395
wcsncmp ...................................... 395
wcsncpy ...................................... 396
wcsnlen ...................................... 396
wcsnrtombs .................................. 396
wcspbrk ...................................... 396
wcsrchr ...................................... 397
wcsrtombs.................................... 397
wcsspn ....................................... 397
wcsstr ....................................... 398
wcstod ....................................... 398
wcstod_l ..................................... 598
wcstof ....................................... 398
wcstof_l ..................................... 599
wcstoimax.................................... 398
wcstok ....................................... 399
wcstol ....................................... 399
wcstol_l ..................................... 599
wcstold ...................................... 399
wcstold_l.................................... 599
wcstoll ...................................... 400
wcstoll_l.................................... 599
wcstombs ..................................... 400
wcstoq ....................................... 600
wcstoul ...................................... 400
wcstoul_l.................................... 600
wcstoull ..................................... 400
wcstoull_l .................................. 600
wcstoumax.................................... 401
wcstouq ...................................... 600
wcswcs ....................................... 415
wcswidth ..................................... 401
wcsxfrm ...................................... 401
wcsxfrm_l.................................... 401
wctob ........................................ 402
wctomb ....................................... 402
wctrans ...................................... 402
wctrans_l.................................... 403
wctype ....................................... 403
wctype_l ..................................... 403
wcwidth ...................................... 404
wmemchr ...................................... 404
wmemcmp ...................................... 404
wmemcpy ...................................... 405
wmemmove ..................................... 405
wmempcpy ..................................... 601
wmemset ...................................... 405
word boundaries, matching ................... 639
wordexp ...................................... 405
wordfree ..................................... 406
wprintf ...................................... 406
write ........................................ 406
writev ....................................... 407
wscanf ....................................... 407
X
xalloc_die.................................... 32
xdr_array.................................... 513
xdr_authunix_parms ......................... 498
xdr_bool ..................................... 513
xdr_bytes.................................... 513
xdr_callhdr ................................. 507
xdr_callmsg ................................. 508
xdr_cback_data .............................. 532
xdr_char ..................................... 513
xdr_cryptkeyarg ............................. 502
xdr_cryptkeyarg2...... ...................... 502
xdr_cryptkeyres ............................. 502
xdr_des_block ............................... 497
xdr_domainname .............................. 532
xdr_double .................................. 513
xdr_enum ..................................... 514
xdr_float.................................... 514
xdr_free ..................................... 514
xdr_getcredres .............................. 503
xdr_hyper.................................... 514
xdr_int ...................................... 514
xdr_int16_t ................................. 514
xdr_int32_t ................................. 515
xdr_int64_t ................................. 515
xdr_int8_t .................................. 515
xdr_key_netstarg...... ...................... 503
xdr_key_netstres...... ...................... 503
xdr_keybuf .................................. 503
xdr_keydat .................................. 532
xdr_keystatus ............................... 503
xdr_long ..................................... 515
xdr_longlong_t .............................. 515
xdr_mapname ................................. 533
xdr_netnamestr .............................. 503
xdr_netobj .................................. 516
xdr_obj_p.................................... 532
xdr_opaque .................................. 516
xdr_opaque_auth ............................. 497
xdr_peername ................................ 533
xdr_pmap ..................................... 507
xdr_pmaplist ................................ 507
xdr_pointer ................................. 516
Index 687
xdr_quad_t .................................. 516
xdr_reference ............................... 516
xdr_replymsg ................................ 508
xdr_rmtcall_args...... ...................... 507
xdr_rmtcallres .............................. 507
xdr_short.................................... 516
xdr_sizeof .................................. 517
xdr_string .................................. 517
xdr_u_char .................................. 517
xdr_u_hyper ................................. 517
xdr_u_int.................................... 517
xdr_u_long .................................. 517
xdr_u_longlong_t...... ...................... 518
xdr_u_quad_t ................................ 518
xdr_u_short ................................. 518
xdr_uint16_t ................................ 518
xdr_uint32_t ................................ 518
xdr_uint64_t ................................ 519
xdr_uint8_t ................................. 519
xdr_union.................................... 519
xdr_unixcred ................................ 504
xdr_valdat .................................. 533
xdr_vector .................................. 519
xdr_void ..................................... 519
xdr_wrapstring .............................. 520
xdr_yp_buf .................................. 539
xdr_ypall.................................... 537
xdr_ypbind_binding ......................... 533
xdr_ypbind_resp ............................. 533
xdr_ypbind_resptype ........................ 534
xdr_ypbind_setdom .......................... 534
xdr_ypdelete_args .......................... 540
xdr_ypmap_parms ............................. 534
xdr_ypmaplist ............................... 534
xdr_yppush_status .......................... 534
xdr_yppushresp_xfr ......................... 534
xdr_ypreq_key ............................... 535
xdr_ypreq_nokey ............................. 535
xdr_ypreq_xfr ............................... 535
xdr_ypresp_all .............................. 535
xdr_ypresp_key_val ......................... 535
xdr_ypresp_maplist ......................... 535
xdr_ypresp_master .......................... 536
xdr_ypresp_order...... ...................... 536
xdr_ypresp_val .............................. 536
xdr_ypresp_xfr .............................. 536
xdr_ypstat .................................. 536
xdr_ypupdate_args .......................... 540
xdr_ypxfrstat ............................... 537
xdrmem_create ............................... 520
xdrrec_create ............................... 520
xdrrec_endofrecord ......................... 520
xdrrec_eof .................................. 520
xdrrec_skiprecord .......................... 520
xdrstdio_create ............................. 521
xprt_register ............................... 512
xprt_unregister ............................. 512
Y
y0............................................ 407
y0f .......................................... 464
y0l .......................................... 465
y1............................................ 408
y1f .......................................... 465
y1l .......................................... 465
yn............................................ 408
ynf .......................................... 465
ynl .......................................... 465
yp_all ....................................... 537
yp_bind ...................................... 537
yp_first ..................................... 537
yp_get_default_domain ...................... 538
yp_master.................................... 538
yp_match ..................................... 538
yp_next ...................................... 538
yp_order ..................................... 538
yp_unbind.................................... 538
yp_update.................................... 539
ypbinderr_string...... ...................... 539
yperr_string ................................ 539
ypprot_err .................................. 539

Navigation menu