GNU Gnulib

updated 2015-11-12 00:57:53

bug-gnulib@gnu.org

This manual is for GNU Gnulib (updated 2015-11-12 00:57:53), which is a library of common routines intended to be shared at the source level. Copyright \begin{matrix}c \\ ◯ \end{matrix} 2004–2015 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”.

Table of Contents

1 Brief Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.1 Gnulib Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Git Checkout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 Using Gnulib for both a library and a binary . . . . . . . . . . . . . . . . . . 19 3.7 Caveat: gettextize and autopoint users . . . . . . . . . . . . . . . . . . . . . 20 3.8 Handling Gnulib’s own message translations . . . . . . . . . . . . . . . . . . . 21 3.9 Issues with Version Control Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.10 Bundling the unit tests of the Gnulib modules . . . . . . . . . . . . . . . . 23 3.11 Avoiding unnecessary checks and compilations. . . . . . . . . . . . . . . . 24

4 Writing modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

4.1 Source code files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Header files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3 Implementation files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.4 Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.5 Module description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.6 Autoconf macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.7 Unit test modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4.8 Incompatible changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5 Extending Gnulib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Miscellaneous Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . 33

6.1 Out of memory handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.2 Obsolete modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.3 Extra tests modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.4 A C++ namespace for gnulib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.5 Library version handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.6 Windows sockets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6.6.1 Getaddrinfo and WINVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.7 Libtool and Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.8 License Texinfo sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.9 Build robot for gnulib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7 Building the ISO C and POSIX Substitutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

8 ISO C and POSIX Header File Substitutes

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

8.1 aio.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.2 arpa/inet.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.3 assert.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.4 complex.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.5 cpio.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.6 ctype.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.7 dirent.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 8.8 dlfcn.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8.9 errno.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8.10 fcntl.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 8.11 fenv.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 8.12 float.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 8.13 fmtmsg.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 8.14 fnmatch.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 8.15 ftw.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 8.16 glob.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 8.17 grp.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 8.18 iconv.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 8.19 inttypes.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.20 iso646.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.21 langinfo.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.22 libgen.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8.23 limits.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8.24 locale.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 8.25 math.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.26 monetary.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.27 mqueue.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.28 ndbm.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8.29 net/if.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8.30 netdb.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8.31 netinet/in.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.32 netinet/tcp.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.33 nl_types.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.34 poll.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.35 pthread.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.36 pwd.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.37 regex.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.38 sched.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 8.39 search.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.40 semaphore.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.41 setjmp.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.42 signal.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 8.43 spawn.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.44 stdalign.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 8.45 stdarg.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.46 stdbool.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 8.47 stddef.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 8.48 stdint.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 8.49 stdio.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.50 stdlib.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 8.51 stdnoreturn.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8.52 string.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8.53 strings.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.54 stropts.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.55 sys/ipc.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.56 sys/mman.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 8.57 sys/msg.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.58 sys/resource.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.59 sys/select.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 8.60 sys/sem.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.61 sys/shm.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.62 sys/socket.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 8.63 sys/stat.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 8.64 sys/statvfs.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.65 sys/time.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.66 sys/timeb.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.67 sys/times.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 8.68 sys/types.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8.69 sys/uio.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8.70 sys/un.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 8.71 sys/utsname.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.72 sys/wait.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.73 syslog.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.74 tar.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 8.75 termios.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.76 tgmath.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.77 time.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.78 trace.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 8.79 uchar.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.80 ucontext.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.81 ulimit.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.82 unistd.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 8.83 utime.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.84 utmpx.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.85 wchar.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 8.86 wctype.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 8.87 wordexp.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

9 ISO C and POSIX Function Substitutes. . . . . 68

9.1 FD_CLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 9.2 FD_ISSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 9.3 FD_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 9.4 FD_ZERO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 9.5 _Exit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 9.6 _exit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 9.7 _longjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 9.8 _setjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 9.9 _tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 9.10 _toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 9.11 a64l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 9.12 abort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 9.13 abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.14 accept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.15 access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 9.16 acos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.17 acosf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.18 acosh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.19 acoshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.20 acoshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 9.21 acosl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 9.22 aio_cancel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 9.23 aio_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 9.24 aio_fsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 9.25 aio_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 9.26 aio_return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 9.27 aio_suspend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 9.28 aio_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.29 alarm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.30 aligned_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 9.31 alphasort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 9.32 asctime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 9.33 asctime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 9.34 asin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 9.35 asinf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9.36 asinh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9.37 asinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9.38 asinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 9.39 asinl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9.40 assert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9.41 atan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9.42 atan2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 9.43 atan2f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.44 atan2l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.45 atanf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.46 atanh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 9.47 atanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.48 atanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.49 atanl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.50 atexit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 9.51 atof. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.52 atoi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.53 atol. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 9.54 atoll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.55 basename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.56 bind. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.57 bsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 9.58 btowc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.59 c16rtomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.60 c32rtomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.61 cabs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 9.62 cabsf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.63 cabsl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.64 cacos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.65 cacosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 9.66 cacosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.67 cacoshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.68 cacoshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.69 cacosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 9.70 calloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 9.71 carg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 9.72 cargf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 9.73 cargl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 9.74 casin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9.75 casinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9.76 casinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9.77 casinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 9.78 casinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.79 casinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.80 catan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.81 catanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 9.82 catanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.83 catanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.84 catanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.85 catanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 9.86 catclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.87 catgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.88 catopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.89 cbrt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.90 cbrtf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.91 cbrtl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.92 ccos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.93 ccosf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.94 ccosh. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.95 ccoshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.96 ccoshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.97 ccosl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.98 ceil. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.99 ceilf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.100 ceill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.101 cexp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.102 cexpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.103 cexpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 9.104 cfgetispeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.105 cfgetospeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.106 cfsetispeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.107 cfsetospeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.108 chdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.109 chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.110 chown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.111 cimag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.112 cimagf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.113 cimagl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.114 clearerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.115 clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.116 clock_getcpuclockid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.117 clock_getres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.118 clock_gettime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.119 clock_nanosleep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 9.120 clock_settime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.121 clog. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.122 clogf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.123 clogl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 9.124 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.125 closedir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.126 closelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.127 confstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 9.128 conj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.129 conjf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.130 conjl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.131 connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 9.132 copysign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.133 copysignf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.134 copysignl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.135 cos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 9.136 cosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.137 cosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.138 coshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.139 coshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 9.140 cosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.141 cpow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.142 cpowf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.143 cpowl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9.144 cproj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.145 cprojf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.146 cprojl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.147 creal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.148 crealf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.149 creall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.150 creat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.151 crypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.152 csin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 9.153 csinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 9.154 csinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 9.155 csinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.156 csinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.157 csinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.158 csqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 9.159 csqrtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.160 csqrtl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.161 ctan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.162 ctanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 9.163 ctanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 9.164 ctanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 9.165 ctanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 9.166 ctanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 9.167 ctermid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.168 ctime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.169 ctime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 9.170 daylight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.171 dbm_clearerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.172 dbm_close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.173 dbm_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 9.174 dbm_error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.175 dbm_fetch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.176 dbm_firstkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.177 dbm_nextkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 9.178 dbm_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.179 dbm_store. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.180 difftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.181 dirfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 9.182 dirname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.183 div. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.184 dlclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.185 dlerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 9.186 dlopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9.187 dlsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9.188 dprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 9.189 drand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 9.190 dup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 9.191 dup2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 9.192 duplocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 9.193 encrypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 9.194 endgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 9.195 endhostent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 9.196 endnetent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.197 endprotoent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.198 endpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.199 endservent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.200 endutxent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 9.201 environ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 9.202 erand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 9.203 erf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 9.204 erfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 9.205 erfcf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.206 erfcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.207 erff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.208 erfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 9.209 errno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 9.210 execl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 9.211 execle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 9.212 execlp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 9.213 execv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 9.214 execve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 9.215 execvp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 9.216 exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 9.217 exp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 9.218 exp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 9.219 exp2f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 9.220 exp2l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 9.221 expf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 9.222 expl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 9.223 expm1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 9.224 expm1f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.225 expm1l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.226 fabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.227 fabsf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 9.228 fabsl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.229 faccessat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.230 fattach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 9.231 fchdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.232 fchmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.233 fchmodat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.234 fchown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9.235 fchownat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.236 fclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.237 fcntl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 9.238 fdatasync. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.239 fdetach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.240 fdim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 9.241 fdimf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.242 fdiml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.243 fdopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.244 fdopendir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 9.245 feclearexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 9.246 fegetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 9.247 fegetexceptflag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 9.248 fegetround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.249 feholdexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.250 feof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.251 feraiseexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.252 ferror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 9.253 fesetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 9.254 fesetexceptflag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 9.255 fesetround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 9.256 fetestexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 9.257 feupdateenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.258 fexecve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.259 fflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 9.260 ffs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.261 fgetc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.262 fgetpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 9.263 fgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.264 fgetwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.265 fgetws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 9.266 fileno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.267 flockfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.268 floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.269 floorf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 9.270 floorl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.271 fma. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.272 fmaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.273 fmal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 9.274 fmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.275 fmaxf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.276 fmaxl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9.277 fmemopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.278 fmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.279 fminf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.280 fminl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 9.281 fmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 9.282 fmodf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 9.283 fmodl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 9.284 fmtmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 9.285 fnmatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 9.286 fopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 9.287 fork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 9.288 fpathconf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 9.289 fpclassify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 9.290 fprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 9.291 fputc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 9.292 fputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 9.293 fputwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.294 fputws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.295 fread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 9.296 free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 9.297 freeaddrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 9.298 freelocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 9.299 freopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 9.300 frexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 9.301 frexpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 9.302 frexpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 9.303 fscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 9.304 fseek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 9.305 fseeko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 9.306 fsetpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 9.307 fstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 9.308 fstatat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 9.309 fstatvfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 9.310 fsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 9.311 ftell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 9.312 ftello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 9.313 ftok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 9.314 ftruncate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 9.315 ftrylockfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 9.316 ftw. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 9.317 funlockfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 9.318 futimens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 9.319 fwide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 9.320 fwprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 9.321 fwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 9.322 fwscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 9.323 gai_strerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 9.324 getaddrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 9.325 getc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 9.326 getc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9.327 getchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9.328 getchar_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 9.329 getcwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 9.330 getdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 9.331 getdate_err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 9.332 getdelim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 9.333 getegid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 9.334 getenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 9.335 geteuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 9.336 getgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 9.337 getgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 9.338 getgrgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 9.339 getgrgid_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 9.340 getgrnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 9.341 getgrnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 9.342 getgroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 9.343 gethostent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.344 gethostid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.345 gethostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.346 getitimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 9.347 getline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 9.348 getlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 9.349 getlogin_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 9.350 getmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.351 getnameinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.352 getnetbyaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.353 getnetbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 9.354 getnetent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 9.355 getopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 9.356 getpeername . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.357 getpgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.358 getpgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 9.359 getpid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.360 getpmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.361 getppid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.362 getpriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.363 getprotobyname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 9.364 getprotobynumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9.365 getprotoent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9.366 getpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9.367 getpwnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9.368 getpwnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 9.369 getpwuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 9.370 getpwuid_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 9.371 getrlimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 9.372 getrusage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.373 gets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.374 getservbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.375 getservbyport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 9.376 getservent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.377 getsid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.378 getsockname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.379 getsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 9.380 getsubopt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9.381 gettimeofday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9.382 getuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 9.383 getutxent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.384 getutxid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.385 getutxline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.386 getwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 9.387 getwchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.388 glob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.389 globfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.390 gmtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 9.391 gmtime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 9.392 grantpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 9.393 hcreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 9.394 hdestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 9.395 hsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 9.396 htonl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 9.397 htons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 9.398 hypot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 9.399 hypotf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.400 hypotl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.401 iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 9.402 iconv_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 9.403 iconv_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 9.404 if_freenameindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.405 if_indextoname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.406 if_nameindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 9.407 if_nametoindex. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.408 ilogb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.409 ilogbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 9.410 ilogbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.411 imaxabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.412 imaxdiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.413 inet_addr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 9.414 inet_ntoa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.415 inet_ntop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.416 inet_pton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 9.417 initstate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.418 insque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.419 ioctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.420 isalnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 9.421 isalnum_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 9.422 isalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 9.423 isalpha_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.424 isascii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.425 isastream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 9.426 isatty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 9.427 isblank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 9.428 isblank_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.429 iscntrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.430 iscntrl_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 9.431 isdigit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 9.432 isdigit_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 9.433 isfinite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 9.434 isgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 9.435 isgraph_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 9.436 isgreater. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 9.437 isgreaterequal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 9.438 isinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 9.439 isless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 9.440 islessequal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 9.441 islessgreater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 9.442 islower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 9.443 islower_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 9.444 isnan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 9.445 isnormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.446 isprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.447 isprint_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 9.448 ispunct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.449 ispunct_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 9.450 isspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 9.451 isspace_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 9.452 isunordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 9.453 isupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 9.454 isupper_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 9.455 iswalnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 9.456 iswalnum_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 9.457 iswalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 9.458 iswalpha_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9.459 iswblank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9.460 iswblank_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 9.461 iswcntrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.462 iswcntrl_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.463 iswctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 9.464 iswctype_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 9.465 iswdigit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 9.466 iswdigit_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 9.467 iswgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 9.468 iswgraph_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 9.469 iswlower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 9.470 iswlower_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 9.471 iswprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 9.472 iswprint_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 9.473 iswpunct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 9.474 iswpunct_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 9.475 iswspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 9.476 iswspace_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9.477 iswupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9.478 iswupper_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 9.479 iswxdigit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9.480 iswxdigit_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9.481 isxdigit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 9.482 isxdigit_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9.483 j0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9.484 j1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 9.485 jn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.486 jrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.487 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.488 killpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.489 l64a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 9.490 labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.491 lchown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.492 lcong48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.493 ldexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 9.494 ldexpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9.495 ldexpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9.496 ldiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9.497 lfind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 9.498 lgamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.499 lgammaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.500 lgammal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.501 link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 9.502 linkat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 9.503 lio_listio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 9.504 listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 9.505 llabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9.506 lldiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9.507 llrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9.508 llrintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 9.509 llrintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9.510 llround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9.511 llroundf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9.512 llroundl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 9.513 localeconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 9.514 localtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 9.515 localtime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 9.516 lockf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 9.517 log. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 9.518 log10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 9.519 log10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 9.520 log10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9.521 log1p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9.522 log1pf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 9.523 log1pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 9.524 log2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 9.525 log2f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 9.526 log2l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 9.527 logb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 9.528 logbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 9.529 logbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 9.530 logf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 9.531 logl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 9.532 longjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 9.533 lrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 9.534 lrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 9.535 lrintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 9.536 lrintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.537 lround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.538 lroundf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.539 lroundl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 9.540 lsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 9.541 lseek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 9.542 lstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 9.543 malloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 9.544 mblen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 9.545 mbrlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 9.546 mbrtoc16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.547 mbrtoc32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.548 mbrtowc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 9.549 mbsinit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.550 mbsnrtowcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.551 mbsrtowcs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 9.552 mbstowcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.553 mbtowc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.554 memccpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 9.555 memchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.556 memcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.557 memcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.558 memmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 9.559 memset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 9.560 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 9.561 mkdirat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 9.562 mkdtemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 9.563 mkfifo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 9.564 mkfifoat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 9.565 mknod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 9.566 mknodat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 9.567 mkstemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 9.568 mktime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 9.569 mlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 9.570 mlockall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 9.571 mmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.572 modf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.573 modff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 9.574 modfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9.575 mprotect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9.576 mq_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 9.577 mq_getattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 9.578 mq_notify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 9.579 mq_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 9.580 mq_receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 9.581 mq_send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 9.582 mq_setattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 9.583 mq_timedreceive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 9.584 mq_timedsend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 9.585 mq_unlink. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.586 mrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.587 msgctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.588 msgget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 9.589 msgrcv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 9.590 msgsnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 9.591 msync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 9.592 munlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 9.593 munlockall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 9.594 munmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 9.595 nan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 9.596 nanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 9.597 nanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 9.598 nanosleep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 9.599 nearbyint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 9.600 nearbyintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 9.601 nearbyintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.602 newlocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.603 nextafter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.604 nextafterf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 9.605 nextafterl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9.606 nexttoward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9.607 nexttowardf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9.608 nexttowardl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 9.609 nftw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.610 nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.611 nl_langinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 9.612 nl_langinfo_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 9.613 nrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 9.614 ntohl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 9.615 ntohs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 9.616 open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 9.617 openat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 9.618 opendir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 9.619 openlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 9.620 open_memstream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 9.621 open_wmemstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 9.622 optarg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9.623 opterr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9.624 optind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9.625 optopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 9.626 pathconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 9.627 pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 9.628 pclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 9.629 perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 9.630 pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 9.631 poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 9.632 popen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 9.633 posix_fadvise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 9.634 posix_fallocate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 9.635 posix_madvise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 9.636 posix_mem_offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 9.637 posix_memalign. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 9.638 posix_openpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 9.639 posix_spawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

9.640 posix_spawn_file_actions_addclose . . . . . . . . . . . . . . . . . . . . 252
9.641 posix_spawn_file_actions_adddup2 . . . . . . . . . . . . . . . . . . . . . 252
9.642 posix_spawn_file_actions_addopen . . . . . . . . . . . . . . . . . . . . . 253
9.643 posix_spawn_file_actions_destroy . . . . . . . . . . . . . . . . . . . . . 253

9.644 posix_spawn_file_actions_init . . . . . . . . . . . . . . . . . . . . . . . . . 253 9.645 posix_spawnattr_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 9.646 posix_spawnattr_getflags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 9.647 posix_spawnattr_getpgroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 9.648 posix_spawnattr_getschedparam . . . . . . . . . . . . . . . . . . . . . . . . . 254 9.649 posix_spawnattr_getschedpolicy . . . . . . . . . . . . . . . . . . . . . . . . 255 9.650 posix_spawnattr_getsigdefault . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.651 posix_spawnattr_getsigmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 9.652 posix_spawnattr_init. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 9.653 posix_spawnattr_setflags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 9.654 posix_spawnattr_setpgroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 9.655 posix_spawnattr_setschedparam . . . . . . . . . . . . . . . . . . . . . . . . . 256 9.656 posix_spawnattr_setschedpolicy . . . . . . . . . . . . . . . . . . . . . . . . 257 9.657 posix_spawnattr_setsigdefault . . . . . . . . . . . . . . . . . . . . . . . . . 257 9.658 posix_spawnattr_setsigmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 9.659 posix_spawnp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 9.660 posix_trace_attr_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 9.661 posix_trace_attr_getclockres . . . . . . . . . . . . . . . . . . . . . . . . . . 258 9.662 posix_trace_attr_getcreatetime . . . . . . . . . . . . . . . . . . . . . . . . 258 9.663 posix_trace_attr_getgenversion . . . . . . . . . . . . . . . . . . . . . . . . 259 9.664 posix_trace_attr_getinherited . . . . . . . . . . . . . . . . . . . . . . . . . 259

9.665 posix_trace_attr_getlogfullpolicy . . . . . . . . . . . . . . . . . . . . 259

9.666 posix_trace_attr_getlogsize . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

9.667 posix_trace_attr_getmaxdatasize. . . . . . . . . . . . . . . . . . . . . . . 260
9.668 posix_trace_attr_getmaxsystemeventsize . . . . . . . . . . . . . . 260
9.669 posix_trace_attr_getmaxusereventsize. . . . . . . . . . . . . . . . . 260

9.670 posix_trace_attr_getname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

9.671 posix_trace_attr_getstreamfullpolicy. . . . . . . . . . . . . . . . . 261

9.672 posix_trace_attr_getstreamsize . . . . . . . . . . . . . . . . . . . . . . . . 261 9.673 posix_trace_attr_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 9.674 posix_trace_attr_setinherited . . . . . . . . . . . . . . . . . . . . . . . . . 262

9.675 posix_trace_attr_setlogfullpolicy . . . . . . . . . . . . . . . . . . . . 262

9.676 posix_trace_attr_setlogsize . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

9.677 posix_trace_attr_setmaxdatasize. . . . . . . . . . . . . . . . . . . . . . . 263

9.678 posix_trace_attr_setname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

9.679 posix_trace_attr_setstreamfullpolicy. . . . . . . . . . . . . . . . . 263

9.680 posix_trace_attr_setstreamsize . . . . . . . . . . . . . . . . . . . . . . . . 264 9.681 posix_trace_clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.682 posix_trace_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.683 posix_trace_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 9.684 posix_trace_create_withlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.685 posix_trace_event . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.686 posix_trace_eventid_equal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 9.687 posix_trace_eventid_get_name . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.688 posix_trace_eventid_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.689 posix_trace_eventset_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.690 posix_trace_eventset_del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 9.691 posix_trace_eventset_empty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 9.692 posix_trace_eventset_fill. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 9.693 posix_trace_eventset_ismember . . . . . . . . . . . . . . . . . . . . . . . . . 267

9.694 posix_trace_eventtypelist_getnext_id. . . . . . . . . . . . . . . . . 268
9.695 posix_trace_eventtypelist_rewind . . . . . . . . . . . . . . . . . . . . . 268

9.696 posix_trace_flush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 9.697 posix_trace_get_attr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 9.698 posix_trace_get_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.699 posix_trace_get_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.700 posix_trace_getnext_event. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 9.701 posix_trace_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 9.702 posix_trace_rewind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 9.703 posix_trace_set_filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 9.704 posix_trace_shutdown. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 9.705 posix_trace_start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 9.706 posix_trace_stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 9.707 posix_trace_timedgetnext_event . . . . . . . . . . . . . . . . . . . . . . . . 271 9.708 posix_trace_trid_eventid_open . . . . . . . . . . . . . . . . . . . . . . . . . 272 9.709 posix_trace_trygetnext_event . . . . . . . . . . . . . . . . . . . . . . . . . . 272 9.710 posix_typed_mem_get_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 9.711 posix_typed_mem_open. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 9.712 pow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 9.713 powf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 9.714 powl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 9.715 pread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 9.716 printf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 9.717 pselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 9.718 psiginfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 9.719 psignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.720 pthread_atfork. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.721 pthread_attr_destroy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.722 pthread_attr_getdetachstate . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 9.723 pthread_attr_getguardsize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 9.724 pthread_attr_getinheritsched . . . . . . . . . . . . . . . . . . . . . . . . . . 277 9.725 pthread_attr_getschedparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 9.726 pthread_attr_getschedpolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 9.727 pthread_attr_getscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 9.728 pthread_attr_getstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 9.729 pthread_attr_getstacksize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 9.730 pthread_attr_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 9.731 pthread_attr_setdetachstate . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 9.732 pthread_attr_setguardsize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 9.733 pthread_attr_setinheritsched . . . . . . . . . . . . . . . . . . . . . . . . . . 279 9.734 pthread_attr_setschedparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 9.735 pthread_attr_setschedpolicy . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 9.736 pthread_attr_setscope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 9.737 pthread_attr_setstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 9.738 pthread_attr_setstacksize. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 9.739 pthread_barrier_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 9.740 pthread_barrier_init. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 9.741 pthread_barrier_wait. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 9.742 pthread_barrierattr_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 9.743 pthread_barrierattr_getpshared . . . . . . . . . . . . . . . . . . . . . . . . 282 9.744 pthread_barrierattr_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 9.745 pthread_barrierattr_setpshared . . . . . . . . . . . . . . . . . . . . . . . . 282 9.746 pthread_cancel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 9.747 pthread_cleanup_pop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 9.748 pthread_cleanup_push. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 9.749 pthread_cond_broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 9.750 pthread_cond_destroy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 9.751 pthread_cond_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 9.752 pthread_cond_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 9.753 pthread_cond_timedwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 9.754 pthread_cond_wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 9.755 pthread_condattr_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 9.756 pthread_condattr_getclock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 9.757 pthread_condattr_getpshared . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 9.758 pthread_condattr_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 9.759 pthread_condattr_setclock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 9.760 pthread_condattr_setpshared . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 9.761 pthread_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 9.762 pthread_detach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 9.763 pthread_equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 9.764 pthread_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 9.765 pthread_getconcurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 9.766 pthread_getcpuclockid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 9.767 pthread_getschedparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 9.768 pthread_getspecific . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 9.769 pthread_join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 9.770 pthread_key_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 9.771 pthread_key_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 9.772 pthread_kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 9.773 pthread_mutex_consistent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 9.774 pthread_mutex_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 9.775 pthread_mutex_getprioceiling . . . . . . . . . . . . . . . . . . . . . . . . . . 290 9.776 pthread_mutex_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 9.777 pthread_mutex_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 9.778 pthread_mutex_setprioceiling . . . . . . . . . . . . . . . . . . . . . . . . . . 291 9.779 pthread_mutex_timedlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 9.780 pthread_mutex_trylock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 9.781 pthread_mutex_unlock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 9.782 pthread_mutexattr_destroy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

9.783 pthread_mutexattr_getprioceiling . . . . . . . . . . . . . . . . . . . . . 292

9.784 pthread_mutexattr_getprotocol . . . . . . . . . . . . . . . . . . . . . . . . . 292 9.785 pthread_mutexattr_getpshared . . . . . . . . . . . . . . . . . . . . . . . . . . 292 9.786 pthread_mutexattr_getrobust . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 9.787 pthread_mutexattr_gettype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 9.788 pthread_mutexattr_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

9.789 pthread_mutexattr_setprioceiling . . . . . . . . . . . . . . . . . . . . . 293

9.790 pthread_mutexattr_setprotocol . . . . . . . . . . . . . . . . . . . . . . . . . 294 9.791 pthread_mutexattr_setpshared . . . . . . . . . . . . . . . . . . . . . . . . . . 294 9.792 pthread_mutexattr_setrobust . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 9.793 pthread_mutexattr_settype. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 9.794 pthread_once . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 9.795 pthread_rwlock_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 9.796 pthread_rwlock_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 9.797 pthread_rwlock_rdlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 9.798 pthread_rwlock_timedrdlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 9.799 pthread_rwlock_timedwrlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 9.800 pthread_rwlock_tryrdlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 9.801 pthread_rwlock_trywrlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 9.802 pthread_rwlock_unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 9.803 pthread_rwlock_wrlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 9.804 pthread_rwlockattr_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 9.805 pthread_rwlockattr_getpshared . . . . . . . . . . . . . . . . . . . . . . . . . 297 9.806 pthread_rwlockattr_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 9.807 pthread_rwlockattr_setpshared . . . . . . . . . . . . . . . . . . . . . . . . . 298 9.808 pthread_self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 9.809 pthread_setcancelstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 9.810 pthread_setcanceltype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 9.811 pthread_setconcurrency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 9.812 pthread_setschedparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 9.813 pthread_setschedprio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 9.814 pthread_setspecific . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 9.815 pthread_sigmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 9.816 pthread_spin_destroy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 9.817 pthread_spin_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 9.818 pthread_spin_lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 9.819 pthread_spin_trylock. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 9.820 pthread_spin_unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 9.821 pthread_testcancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 9.822 ptsname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 9.823 putc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 9.824 putc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 9.825 putchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 9.826 putchar_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 9.827 putenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 9.828 putmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 9.829 putpmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 9.830 puts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 9.831 pututxline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 9.832 putwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 9.833 putwchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 9.834 pwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 9.835 qsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 9.836 quick_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 9.837 raise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 9.838 rand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 9.839 rand_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 9.840 random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 9.841 read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 9.842 readdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 9.843 readdir_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 9.844 readlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 9.845 readlinkat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 9.846 readv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 9.847 realloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 9.848 realpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 9.849 recv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 9.850 recvfrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 9.851 recvmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 9.852 regcomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 9.853 regerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 9.854 regexec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 9.855 regfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 9.856 remainder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 9.857 remainderf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 9.858 remainderl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 9.859 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 9.860 remque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 9.861 remquo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 9.862 remquof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 9.863 remquol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 9.864 rename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 9.865 renameat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 9.866 rewind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 9.867 rewinddir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 9.868 rint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 9.869 rintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 9.870 rintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 9.871 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 9.872 round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 9.873 roundf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 9.874 roundl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 9.875 scalbln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 9.876 scalblnf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 9.877 scalblnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 9.878 scalbn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 9.879 scalbnf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 9.880 scalbnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 9.881 scandir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 9.882 scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 9.883 sched_get_priority_max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 9.884 sched_get_priority_min . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 9.885 sched_getparam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 9.886 sched_getscheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 9.887 sched_rr_get_interval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 9.888 sched_setparam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 9.889 sched_setscheduler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 9.890 sched_yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 9.891 seed48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 9.892 seekdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 9.893 select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 9.894 sem_close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 9.895 sem_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 9.896 sem_getvalue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 9.897 sem_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 9.898 sem_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 9.899 sem_post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 9.900 sem_timedwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 9.901 sem_trywait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 9.902 sem_unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 9.903 sem_wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 9.904 semctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 9.905 semget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 9.906 semop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 9.907 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 9.908 sendmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 9.909 sendto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 9.910 setbuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9.911 setegid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9.912 setenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9.913 seteuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 9.914 setgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 9.915 setgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 9.916 sethostent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 9.917 setitimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 9.918 setjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 9.919 setkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 9.920 setlocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 9.921 setlogmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 9.922 setnetent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.923 setpgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.924 setpgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.925 setpriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.926 setprotoent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 9.927 setpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 9.928 setregid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 9.929 setreuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 9.930 setrlimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 9.931 setservent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 9.932 setsid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 9.933 setsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 9.934 setstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 9.935 setuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.936 setutxent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.937 setvbuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.938 shm_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 9.939 shm_unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 9.940 shmat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 9.941 shmctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 9.942 shmdt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 9.943 shmget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 9.944 shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 9.945 sigaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 9.946 sigaddset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 9.947 sigaltstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 9.948 sigdelset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 9.949 sigemptyset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 9.950 sigfillset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 9.951 sighold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 9.952 sigignore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 9.953 siginterrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.954 sigismember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.955 siglongjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.956 signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 9.957 signbit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 9.958 signgam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 9.959 sigpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 9.960 sigpending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 9.961 sigprocmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 9.962 sigqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 9.963 sigrelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 9.964 sigset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 9.965 sigsetjmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 9.966 sigsuspend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 9.967 sigtimedwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 9.968 sigwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 9.969 sigwaitinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 9.970 sin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 9.971 sinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 9.972 sinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 9.973 sinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 9.974 sinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.975 sinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.976 sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.977 snprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 9.978 sockatmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 9.979 socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 9.980 socketpair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 9.981 sprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 9.982 sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 9.983 sqrtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 9.984 sqrtl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 9.985 srand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 9.986 srand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.987 srandom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.988 sscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.989 stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 9.990 statvfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 9.991 stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 9.992 stdin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 9.993 stdout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 9.994 stpcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 9.995 stpncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 9.996 strcasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 9.997 strcasecmp_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 9.998 strcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 9.999 strchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 9.1000 strcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 9.1001 strcoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 9.1002 strcoll_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 9.1003 strcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.1004 strcspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.1005 strdup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.1006 strerror. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 9.1007 strerror_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 9.1008 strerror_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 9.1009 strfmon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 9.1010 strfmon_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 9.1011 strftime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 9.1012 strftime_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 9.1013 strlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 9.1014 strncasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358 9.1015 strncasecmp_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 9.1016 strncat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 9.1017 strncmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 9.1018 strncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 9.1019 strndup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.1020 strnlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.1021 strpbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.1022 strptime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 9.1023 strrchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 9.1024 strsignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 9.1025 strspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 9.1026 strstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 9.1027 strtod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 9.1028 strtof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 9.1029 strtoimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 9.1030 strtok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 9.1031 strtok_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.1032 strtol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.1033 strtold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.1034 strtoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 9.1035 strtoul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.1036 strtoull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.1037 strtoumax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.1038 strxfrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 9.1039 strxfrm_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 9.1040 swab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 9.1041 swprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 9.1042 swscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 9.1043 symlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 9.1044 symlinkat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 9.1045 sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 9.1046 sysconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 9.1047 syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 9.1048 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 9.1049 tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 9.1050 tanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 9.1051 tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 9.1052 tanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 9.1053 tanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 9.1054 tanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 9.1055 tcdrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 9.1056 tcflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 9.1057 tcflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 9.1058 tcgetattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 9.1059 tcgetpgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 9.1060 tcgetsid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 9.1061 tcsendbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 9.1062 tcsetattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 9.1063 tcsetpgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 9.1064 tdelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 9.1065 telldir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 9.1066 tempnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 9.1067 tfind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 9.1068 tgamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 9.1069 tgammaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 9.1070 tgammal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 9.1071 time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 9.1072 timer_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 9.1073 timer_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 9.1074 timer_getoverrun . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 9.1075 timer_gettime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 9.1076 timer_settime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 9.1077 times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 9.1078 timezone. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.1079 tmpfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.1080 tmpnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.1081 toascii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 9.1082 tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 9.1083 tolower_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 9.1084 toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 9.1085 toupper_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 9.1086 towctrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 9.1087 towctrans_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 9.1088 towlower. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 9.1089 towlower_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 9.1090 towupper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 9.1091 towupper_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 9.1092 trunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 9.1093 truncate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 9.1094 truncf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 9.1095 truncl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 9.1096 tsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 9.1097 ttyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 9.1098 ttyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 9.1099 twalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 9.1100 tzname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 9.1101 tzset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 9.1102 ulimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 9.1103 umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 9.1104 uname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 9.1105 ungetc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 9.1106 ungetwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 9.1107 unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 9.1108 unlinkat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 9.1109 unlockpt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 9.1110 unsetenv. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 9.1111 uselocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 9.1112 utime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 9.1113 utimensat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 9.1114 utimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 9.1115 va_arg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 9.1116 va_copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 9.1117 va_end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 9.1118 va_start. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 9.1119 vdprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 9.1120 vfprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 9.1121 vfscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 9.1122 vfwprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 9.1123 vfwscanf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 9.1124 vprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 9.1125 vscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 9.1126 vsnprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 9.1127 vsprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 9.1128 vsscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 9.1129 vswprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 9.1130 vswscanf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 9.1131 vwprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 9.1132 vwscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 9.1133 wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 9.1134 waitid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 9.1135 waitpid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 9.1136 wcpcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 9.1137 wcpncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 9.1138 wcrtomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 9.1139 wcscasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 9.1140 wcscasecmp_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 9.1141 wcscat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 9.1142 wcschr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 9.1143 wcscmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 9.1144 wcscoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 9.1145 wcscoll_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 9.1146 wcscpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 9.1147 wcscspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 9.1148 wcsdup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 9.1149 wcsftime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 9.1150 wcslen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 9.1151 wcsncasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 9.1152 wcsncasecmp_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 9.1153 wcsncat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 9.1154 wcsncmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 9.1155 wcsncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 9.1156 wcsnlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 9.1157 wcsnrtombs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 9.1158 wcspbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 9.1159 wcsrchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 9.1160 wcsrtombs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 9.1161 wcsspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 9.1162 wcsstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 9.1163 wcstod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 9.1164 wcstof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 9.1165 wcstoimax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 9.1166 wcstok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 9.1167 wcstol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 9.1168 wcstold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 9.1169 wcstoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 9.1170 wcstombs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 9.1171 wcstoul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 9.1172 wcstoull. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 9.1173 wcstoumax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 9.1174 wcswidth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 9.1175 wcsxfrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 9.1176 wcsxfrm_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 9.1177 wctob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 9.1178 wctomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 9.1179 wctrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 9.1180 wctrans_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 9.1181 wctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 9.1182 wctype_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 9.1183 wcwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 9.1184 wmemchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 9.1185 wmemcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 9.1186 wmemcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 9.1187 wmemmove. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 9.1188 wmemset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 9.1189 wordexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 9.1190 wordfree. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 9.1191 wprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 9.1192 write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 9.1193 writev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 9.1194 wscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 9.1195 y0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 9.1196 y1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 9.1197 yn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

10 Past POSIX Function Substitutes . . . . . . . . . 417

10.1 bcmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 10.2 bcopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 10.3 bsd_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 10.4 bzero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 10.5 ecvt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 10.6 fcvt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 10.7 ftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 10.8 gcvt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 10.9 getcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 10.10 gethostbyaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 10.11 gethostbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 10.12 getwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 10.13 h_errno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 10.14 index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 10.15 makecontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 10.16 mktemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 10.17 pthread_attr_getstackaddr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 10.18 pthread_attr_setstackaddr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 10.19 rindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 10.20 scalb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 10.21 setcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 10.22 swapcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 10.23 ualarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 10.24 usleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 10.25 vfork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

10.26 wcswcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

11 Glibc Header File Substitutes . . . . . . . . . . . . . 424

11.1 a.out.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 11.2 aliases.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 11.3 alloca.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424 11.4 ar.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 11.5 argp.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 11.6 argz.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 11.7 byteswap.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 11.8 crypt.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 11.9 endian.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426 11.10 envz.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 11.11 err.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 11.12 error.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 11.13 execinfo.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 11.14 fpu_control.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 11.15 fstab.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 11.16 fts.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 11.17 getopt.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 11.18 gshadow.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 11.19 ieee754.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 11.20 ifaddrs.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 11.21 libintl.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 11.22 mcheck.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 11.23 mntent.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 11.24 obstack.h. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 11.25 paths.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 11.26 printf.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 11.27 pty.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432 11.28 resolv.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 11.29 shadow.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 11.30 sys/ioctl.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 11.31 sysexits.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434 11.32 ttyent.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434

12 Glibc Function Substitutes. . . . . . . . . . . . . . . . . 435

12.1 Glibc Extensions to <aio.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

12.1.1 aio_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 12.2 Glibc <aliases.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

12.2.1 endaliasent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 12.2.2 getaliasbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 12.2.3 getaliasbyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 12.2.4 getaliasent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 12.2.5 getaliasent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 12.2.6 setaliasent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436

12.3 Glibc <argp.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 12.3.1 argp_err_exit_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 12.3.2 argp_error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 12.3.3 argp_failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 12.3.4 argp_help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 12.3.5 argp_parse. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 12.3.6 argp_program_bug_address . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 12.3.7 argp_program_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 12.3.8 argp_program_version_hook . . . . . . . . . . . . . . . . . . . . . . . . . . 438 12.3.9 argp_state_help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 12.3.10 argp_usage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

12.4 Glibc <argz.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 12.4.1 argz_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 12.4.2 argz_add_sep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.4.3 argz_append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.4.4 argz_count. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.4.5 argz_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.4.6 argz_create_sep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 12.4.7 argz_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 12.4.8 argz_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 12.4.9 argz_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 12.4.10 argz_next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 12.4.11 argz_replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 12.4.12 argz_stringify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

12.5 Glibc Extensions to <arpa/inet.h> . . . . . . . . . . . . . . . . . . . . . . . . . 441 12.5.1 inet_aton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 12.5.2 inet_lnaof. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 12.5.3 inet_makeaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 12.5.4 inet_net_ntop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 12.5.5 inet_net_pton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 12.5.6 inet_neta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 12.5.7 inet_netof. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 12.5.8 inet_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 12.5.9 inet_nsap_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 12.5.10 inet_nsap_ntoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

12.6 Glibc <byteswap.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.6.1 bswap_16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.6.2 bswap_32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.6.3 bswap_64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443

12.7 Glibc Extensions to <complex.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.7.1 clog10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 12.7.2 clog10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 12.7.3 clog10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

12.8 Glibc <crypt.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 12.8.1 crypt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 12.8.2 encrypt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 12.8.3 setkey_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

12.9 Glibc Extensions to <ctype.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

12.9.1 isctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 12.10 Glibc Extensions to <dirent.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 12.10.1 getdirentries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 12.10.2 scandirat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 12.10.3 versionsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

12.11 Glibc Extensions to <dlfcn.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 12.11.1 dladdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 12.11.2 dladdr1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 12.11.3 dlinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 12.11.4 dlmopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 12.11.5 dlvsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

12.12 Glibc <envz.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 12.12.1 envz_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 12.12.2 envz_entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 12.12.3 envz_get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 12.12.4 envz_merge. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 12.12.5 envz_remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 12.12.6 envz_strip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

12.13 Glibc <err.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 12.13.1 err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 12.13.2 errx. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 12.13.3 verr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 12.13.4 verrx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 12.13.5 vwarn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 12.13.6 vwarnx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 12.13.7 warn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 12.13.8 warnx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

12.14 Glibc Extensions to <errno.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 12.14.1 program_invocation_name . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 12.14.2 program_invocation_short_name . . . . . . . . . . . . . . . . . . . . 450

12.15 Glibc <error.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 12.15.1 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 12.15.2 error_at_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 12.15.3 error_message_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 12.15.4 error_one_per_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 12.15.5 error_print_progname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

12.16 Glibc <execinfo.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 12.16.1 backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 12.16.2 backtrace_symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 12.16.3 backtrace_symbols_fd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

12.17 Glibc Extensions to <fcntl.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 12.17.1 fallocate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 12.17.2 name_to_handle_at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 12.17.3 readahead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 12.17.4 open_by_handle_at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

12.18 Glibc Extensions to <fenv.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 12.18.1 fedisableexcept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 12.18.2 feenableexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 12.18.3 fegetexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

12.19 Glibc Extensions to <fmtmsg.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

12.19.1 addseverity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 12.20 Glibc <fstab.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453

12.20.1 endfsent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 12.20.2 getfsent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 12.20.3 getfsfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 12.20.4 getfsspec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 12.20.5 setfsent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

12.21 Glibc <fts.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 12.21.1 fts_children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 12.21.2 fts_close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 12.21.3 fts_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 12.21.4 fts_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 12.21.5 fts_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455

12.22 Glibc <getopt.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 12.22.1 getopt_long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 12.22.2 getopt_long_only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456

12.23 Glibc Extensions to <glob.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456

12.23.1 glob_pattern_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 12.24 Glibc Extensions to <gnu/libc-version.h> . . . . . . . . . . . . . . . 457

12.24.1 gnu_get_libc_release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 12.24.2 gnu_get_libc_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457

12.25 Glibc Extensions to <grp.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 12.25.1 fgetgrent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 12.25.2 fgetgrent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 12.25.3 getgrent_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 12.25.4 getgrouplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 12.25.5 initgroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 12.25.6 putgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 12.25.7 setgroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

12.26 Glibc <gshadow.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 12.26.1 endsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 12.26.2 fgetsgent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 12.26.3 fgetsgent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 12.26.4 getsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 12.26.5 getsgent_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 12.26.6 getsgnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 12.26.7 getsgnam_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 12.26.8 putsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 12.26.9 setsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 12.26.10 sgetsgent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 12.26.11 sgetsgent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

12.27 Glibc <ifaddrs.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 12.27.1 getifaddrs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 12.27.2 freeifaddrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

12.28 Glibc <libintl.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 12.28.1 bind_textdomain_codeset . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 12.28.2 bindtextdomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 12.28.3 dcgettext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 12.28.4 dcngettext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 12.28.5 dgettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 12.28.6 dngettext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 12.28.7 gettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 12.28.8 ngettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 12.28.9 textdomain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

12.29 Glibc <link.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

12.29.1 dl_iterate_phdr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 12.30 Glibc <malloc.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

12.30.1 mallinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 12.30.2 malloc_get_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 12.30.3 malloc_set_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 12.30.4 malloc_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 12.30.5 malloc_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 12.30.6 malloc_trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 12.30.7 malloc_usable_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 12.30.8 mallopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 12.30.9 memalign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 12.30.10 pvalloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

12.31 Glibc Extensions to <math.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 12.31.1 drem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 12.31.2 dremf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 12.31.3 dreml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 12.31.4 exp10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 12.31.5 exp10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 12.31.6 exp10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 12.31.7 finite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.31.8 finitef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.31.9 finitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.31.10 gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.31.11 gammaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.31.12 gammal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 12.31.13 isinff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 12.31.14 isinfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 12.31.15 isnanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 12.31.16 isnanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 12.31.17 j0f. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 12.31.18 j0l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 12.31.19 j1f. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 12.31.20 j1l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 12.31.21 jnf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 12.31.22 jnl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 12.31.23 lgamma_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 12.31.24 lgammaf_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 12.31.25 lgammal_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 12.31.26 matherr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 12.31.27 pow10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 12.31.28 pow10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 12.31.29 pow10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 12.31.30 scalbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 12.31.31 scalbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 12.31.32 significand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 12.31.33 significandf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.31.34 significandl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.31.35 sincos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.31.36 sincosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.31.37 sincosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 12.31.38 y0f. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 12.31.39 y0l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 12.31.40 y1f. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 12.31.41 y1l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 12.31.42 ynf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 12.31.43 ynl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474

12.32 Glibc <mcheck.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 12.32.1 mcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 12.32.2 mcheck_check_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 12.32.3 mcheck_pedantic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 12.32.4 mprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 12.32.5 mtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.32.6 muntrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

12.33 Glibc <mntent.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.33.1 addmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.33.2 endmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.33.3 getmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 12.33.4 getmntent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.33.5 hasmntopt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.33.6 setmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476

12.34 Glibc Extensions to <netdb.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.34.1 endnetgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.34.2 gethostbyaddr_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 12.34.3 gethostbyname2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 12.34.4 gethostbyname2_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 12.34.5 gethostbyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 12.34.6 gethostent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 12.34.7 getnetbyaddr_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 12.34.8 getnetbyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 12.34.9 getnetent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 12.34.10 getnetgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 12.34.11 getnetgrent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 12.34.12 getprotobyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 12.34.13 getprotobynumber_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 12.34.14 getprotoent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 12.34.15 getservbyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 12.34.16 getservbyport_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 12.34.17 getservent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 12.34.18 herror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 12.34.19 hstrerror. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 12.34.20 innetgr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 12.34.21 rcmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 12.34.22 rcmd_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 12.34.23 rexec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 12.34.24 rexec_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 12.34.25 rresvport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 12.34.26 rresvport_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 12.34.27 ruserok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 12.34.28 ruserok_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 12.34.29 setnetgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

12.35 Glibc <netinet/ether.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 12.35.1 ether_aton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 12.35.2 ether_aton_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 12.35.3 ether_hostton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 12.35.4 ether_line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 12.35.5 ether_ntoa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 12.35.6 ether_ntoa_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 12.35.7 ether_ntohost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

12.36 Glibc Extensions to <netinet/in.h> . . . . . . . . . . . . . . . . . . . . . . 483 12.36.1 bindresvport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 12.36.2 getipv4sourcefilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 12.36.3 getsourcefilter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 12.36.4 in6addr_any . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 12.36.5 in6addr_loopback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 12.36.6 inet6_option_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 12.36.7 inet6_option_append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 12.36.8 inet6_option_find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 12.36.9 inet6_option_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 12.36.10 inet6_option_next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 12.36.11 inet6_option_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.36.12 inet6_opt_append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.36.13 inet6_opt_find. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.36.14 inet6_opt_finish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.36.15 inet6_opt_get_val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 12.36.16 inet6_opt_init. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.36.17 inet6_opt_next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.36.18 inet6_opt_set_val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.36.19 inet6_rth_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.36.20 inet6_rth_getaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 12.36.21 inet6_rth_init. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 12.36.22 inet6_rth_reverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 12.36.23 inet6_rth_segments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 12.36.24 inet6_rth_space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 12.36.25 setipv4sourcefilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 12.36.26 setsourcefilter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488

12.37 Glibc <obstack.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 12.37.1 obstack_alloc_failed_handler . . . . . . . . . . . . . . . . . . . . . 488 12.37.2 obstack_exit_failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 12.37.3 obstack_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 12.37.4 obstack_printf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 12.37.5 obstack_vprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

12.38 Glibc <printf.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 12.38.1 parse_printf_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490 12.38.2 printf_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 12.38.3 printf_size_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 12.38.4 register_printf_function . . . . . . . . . . . . . . . . . . . . . . . . . . 491 12.38.5 register_printf_modifier . . . . . . . . . . . . . . . . . . . . . . . . . . 491 12.38.6 register_printf_specifier . . . . . . . . . . . . . . . . . . . . . . . . . 491 12.38.7 register_printf_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

12.39 Glibc Extensions to <pthread.h> . . . . . . . . . . . . . . . . . . . . . . . . . . 492 12.39.1 pthread_attr_getaffinity_np . . . . . . . . . . . . . . . . . . . . . . 492 12.39.2 pthread_attr_setaffinity_np . . . . . . . . . . . . . . . . . . . . . . 492 12.39.3 pthread_getaffinity_np . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492 12.39.4 pthread_getattr_np . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 12.39.5 pthread_getname_np . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493 12.39.6 pthread_kill_other_threads_np . . . . . . . . . . . . . . . . . . . . 493 12.39.7 pthread_mutex_consistent_np . . . . . . . . . . . . . . . . . . . . . . 493

12.39.8 pthread_mutexattr_getrobust_np . . . . . . . . . . . . . . . . . . . 493
12.39.9 pthread_mutexattr_setrobust_np . . . . . . . . . . . . . . . . . . . 494

12.39.10 pthread_rwlockattr_getkind_np . . . . . . . . . . . . . . . . . . . 494 12.39.11 pthread_rwlockattr_setkind_np . . . . . . . . . . . . . . . . . . . 494 12.39.12 pthread_setaffinity_np . . . . . . . . . . . . . . . . . . . . . . . . . . . 494 12.39.13 pthread_setname_np . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 12.39.14 pthread_sigqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 12.39.15 pthread_timedjoin_np. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 12.39.16 pthread_tryjoin_np . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 12.39.17 pthread_yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495

12.40 Glibc <pty.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 12.40.1 forkpty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 12.40.2 openpty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496

12.41 Glibc Extensions to <pwd.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 12.41.1 fgetpwent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 12.41.2 fgetpwent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 12.41.3 getpw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 12.41.4 getpwent_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 12.41.5 putpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497

12.42 Glibc Extensions to <regex.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.42.1 re_comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.42.2 re_compile_fastmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.42.3 re_compile_pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.42.4 re_exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.42.5 re_match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498 12.42.6 re_match_2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.42.7 re_search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.42.8 re_search_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.42.9 re_set_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.42.10 re_set_syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 12.42.11 re_syntax_options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500

12.43 Glibc <regexp.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.43.1 advance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.43.2 loc1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.43.3 loc2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.43.4 locs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 12.43.5 step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501

12.44 Glibc <resolv.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 12.44.1 dn_expand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 12.44.2 res_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 12.44.3 res_mkquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 12.44.4 res_query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 12.44.5 res_querydomain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 12.44.6 res_search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502

12.45 Glibc <rpc/auth.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 12.45.1 authdes_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 12.45.2 authdes_pk_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 12.45.3 authnone_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 12.45.4 authunix_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.45.5 authunix_create_default . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.45.6 getnetname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.45.7 host2netname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.45.8 key_decryptsession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.45.9 key_decryptsession_pk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 12.45.10 key_encryptsession . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.45.11 key_encryptsession_pk . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.45.12 key_gendes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.45.13 key_get_conv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.45.14 key_secretkey_is_set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 12.45.15 key_setsecret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 12.45.16 netname2host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 12.45.17 netname2user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 12.45.18 user2netname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 12.45.19 xdr_des_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 12.45.20 xdr_opaque_auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505

12.46 Glibc <rpc/auth_des.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 12.46.1 authdes_getucred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 12.46.2 getpublickey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 12.46.3 getsecretkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 12.46.4 rtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

12.47 Glibc <rpc/auth_unix.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506

12.47.1 xdr_authunix_parms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 12.48 Glibc <rpc/clnt.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507

12.48.1 callrpc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12.48.2 clnt_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12.48.3 clnt_pcreateerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12.48.4 clnt_perrno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12.48.5 clnt_perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12.48.6 clnt_spcreateerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 12.48.7 clnt_sperrno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.48.8 clnt_sperror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.48.9 clntraw_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.48.10 clnttcp_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.48.11 clntudp_bufcreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.48.12 clntudp_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 12.48.13 clntunix_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 12.48.14 get_myaddress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 12.48.15 getrpcport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 12.48.16 rpc_createerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509

12.49 Glibc <rpc/des_crypt.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 12.49.1 cbc_crypt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 12.49.2 des_setparity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 12.49.3 ecb_crypt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510

12.50 Glibc <rpc/key_prot.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 12.50.1 xdr_cryptkeyarg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 12.50.2 xdr_cryptkeyarg2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 12.50.3 xdr_cryptkeyres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 12.50.4 xdr_getcredres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 12.50.5 xdr_key_netstarg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 12.50.6 xdr_key_netstres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 12.50.7 xdr_keybuf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 12.50.8 xdr_keystatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 12.50.9 xdr_netnamestr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 12.50.10 xdr_unixcred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512

12.51 Glibc <rpc/netdb.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.51.1 endrpcent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.51.2 getrpcbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.51.3 getrpcbyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.51.4 getrpcbynumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 12.51.5 getrpcbynumber_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 12.51.6 getrpcent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 12.51.7 getrpcent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 12.51.8 setrpcent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513

12.52 Glibc <rpc/pmap_clnt.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 12.52.1 clnt_broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 12.52.2 pmap_getmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.52.3 pmap_getport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.52.4 pmap_rmtcall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.52.5 pmap_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.52.6 pmap_unset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514

12.53 Glibc <rpc/pmap_prot.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 12.53.1 xdr_pmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 12.53.2 xdr_pmaplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

12.54 Glibc <rpc/pmap_rmt.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 12.54.1 xdr_rmtcall_args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 12.54.2 xdr_rmtcallres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515

12.55 Glibc <rpc/rpc_msg.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 12.55.1 xdr_callhdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 12.55.2 xdr_callmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 12.55.3 xdr_replymsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516

12.56 Glibc <rpc/svc.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 12.56.1 svc_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 12.56.2 svc_fdset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 12.56.3 svc_getreq. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 12.56.4 svc_getreq_common . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.56.5 svc_getreq_poll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.56.6 svc_getreqset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.56.7 svc_max_pollfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.56.8 svc_pollfd. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 12.56.9 svc_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.56.10 svc_run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.56.11 svc_sendreply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.56.12 svc_unregister. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.56.13 svcerr_auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.56.14 svcerr_decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 12.56.15 svcerr_noproc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.56.16 svcerr_noprog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.56.17 svcerr_progvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.56.18 svcerr_systemerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.56.19 svcerr_weakauth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.56.20 svcraw_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 12.56.21 svctcp_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 12.56.22 svcudp_bufcreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 12.56.23 svcudp_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 12.56.24 svcunix_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 12.56.25 xprt_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 12.56.26 xprt_unregister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520

12.57 Glibc <rpc/xdr.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.57.1 xdr_array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.57.2 xdr_bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.57.3 xdr_bytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.57.4 xdr_char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.57.5 xdr_double. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 12.57.6 xdr_enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.57.7 xdr_float. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.57.8 xdr_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.57.9 xdr_hyper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.57.10 xdr_int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.57.11 xdr_int16_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 12.57.12 xdr_int32_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 12.57.13 xdr_int64_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 12.57.14 xdr_int8_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 12.57.15 xdr_long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 12.57.16 xdr_longlong_t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 12.57.17 xdr_netobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.57.18 xdr_opaque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.57.19 xdr_pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.57.20 xdr_quad_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.57.21 xdr_reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.57.22 xdr_short. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 12.57.23 xdr_sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.57.24 xdr_string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.57.25 xdr_u_char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.57.26 xdr_u_hyper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.57.27 xdr_u_int. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.57.28 xdr_u_long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 12.57.29 xdr_u_longlong_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 12.57.30 xdr_u_quad_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 12.57.31 xdr_u_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 12.57.32 xdr_uint16_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 12.57.33 xdr_uint32_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 12.57.34 xdr_uint64_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 12.57.35 xdr_uint8_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 12.57.36 xdr_union. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 12.57.37 xdr_vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 12.57.38 xdr_void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 12.57.39 xdr_wrapstring. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.57.40 xdrmem_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.57.41 xdrrec_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.57.42 xdrrec_endofrecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.57.43 xdrrec_eof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.57.44 xdrrec_skiprecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 12.57.45 xdrstdio_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

12.58 Glibc <rpcsvc/nislib.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 12.58.1 nis_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 12.58.2 nis_add_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 12.58.3 nis_addmember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 12.58.4 nis_checkpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 12.58.5 nis_clone_object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 12.58.6 nis_creategroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 12.58.7 nis_destroy_object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 12.58.8 nis_destroygroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 12.58.9 nis_dir_cmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 12.58.10 nis_domain_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.58.11 nis_domain_of_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.58.12 nis_first_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.58.13 nis_freenames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.58.14 nis_freeresult. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 12.58.15 nis_freeservlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 12.58.16 nis_freetags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 12.58.17 nis_getnames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 12.58.18 nis_getservlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 12.58.19 nis_ismember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 12.58.20 nis_leaf_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 12.58.21 nis_leaf_of_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 12.58.22 nis_lerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 12.58.23 nis_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 12.58.24 nis_local_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 12.58.25 nis_local_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 12.58.26 nis_local_host. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 12.58.27 nis_local_principal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 12.58.28 nis_lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 12.58.29 nis_mkdir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 12.58.30 nis_modify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 12.58.31 nis_modify_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 12.58.32 nis_name_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 12.58.33 nis_name_of_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 12.58.34 nis_next_entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 12.58.35 nis_perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 12.58.36 nis_ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 12.58.37 nis_print_directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 12.58.38 nis_print_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 12.58.39 nis_print_group . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 12.58.40 nis_print_group_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.58.41 nis_print_link. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.58.42 nis_print_object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.58.43 nis_print_result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.58.44 nis_print_rights . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 12.58.45 nis_print_table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 12.58.46 nis_remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 12.58.47 nis_remove_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 12.58.48 nis_removemember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 12.58.49 nis_rmdir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 12.58.50 nis_servstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 12.58.51 nis_sperrno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 12.58.52 nis_sperror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 12.58.53 nis_sperror_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 12.58.54 nis_stats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 12.58.55 nis_verifygroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540

12.59 Glibc <rpcsvc/nis_callback.h> . . . . . . . . . . . . . . . . . . . . . . . . . . 540 12.59.1 xdr_cback_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 12.59.2 xdr_obj_p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540

12.60 Glibc <rpcsvc/yp.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 12.60.1 xdr_domainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 12.60.2 xdr_keydat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 12.60.3 xdr_mapname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 12.60.4 xdr_peername . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 12.60.5 xdr_valdat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 12.60.6 xdr_ypbind_binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 12.60.7 xdr_ypbind_resp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 12.60.8 xdr_ypbind_resptype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.60.9 xdr_ypbind_setdom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.60.10 xdr_ypmap_parms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.60.11 xdr_ypmaplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.60.12 xdr_yppush_status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.60.13 xdr_yppushresp_xfr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 12.60.14 xdr_ypreq_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.60.15 xdr_ypreq_nokey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.60.16 xdr_ypreq_xfr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.60.17 xdr_ypresp_all. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.60.18 xdr_ypresp_key_val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.60.19 xdr_ypresp_maplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 12.60.20 xdr_ypresp_master . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 12.60.21 xdr_ypresp_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 12.60.22 xdr_ypresp_val. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 12.60.23 xdr_ypresp_xfr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 12.60.24 xdr_ypstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 12.60.25 xdr_ypxfrstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545

12.61 Glibc <rpcsvc/yp_prot.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545

12.61.1 xdr_ypall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 12.62 Glibc <rpcsvc/ypclnt.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545

12.62.1 yp_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 12.62.2 yp_bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 12.62.3 yp_first . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 12.62.4 yp_get_default_domain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.62.5 yp_master. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.62.6 yp_match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.62.7 yp_next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.62.8 yp_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.62.9 yp_unbind. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 12.62.10 yp_update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 12.62.11 ypbinderr_string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 12.62.12 yperr_string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 12.62.13 ypprot_err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547

12.63 Glibc <rpcsvc/ypupd.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 12.63.1 xdr_yp_buf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 12.63.2 xdr_ypdelete_args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 12.63.3 xdr_ypupdate_args . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548

12.64 Glibc Extensions to <sched.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 12.64.1 clone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 12.64.2 sched_getaffinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 12.64.3 sched_setaffinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 12.64.4 setns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

12.65 Glibc Extensions to <search.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 12.65.1 hcreate_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 12.65.2 hdestroy_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 12.65.3 hsearch_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 12.65.4 tdestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

12.66 Glibc Extensions to <selinux/selinux.h>. . . . . . . . . . . . . . . . . 550 12.66.1 fgetfilecon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 12.66.2 getfilecon. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 12.66.3 lgetfilecon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550

12.67 Glibc <shadow.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 12.67.1 endspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 12.67.2 fgetspent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 12.67.3 fgetspent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 12.67.4 getspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 12.67.5 getspent_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 12.67.6 getspnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 12.67.7 getspnam_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 12.67.8 lckpwdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 12.67.9 putspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 12.67.10 setspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 12.67.11 sgetspent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 12.67.12 sgetspent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 12.67.13 ulckpwdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553

12.68 Glibc Extensions to <signal.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 12.68.1 gsignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 12.68.2 sigandset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12.68.3 sigblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12.68.4 siggetmask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12.68.5 sigisemptyset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12.68.6 sigorset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 12.68.7 sigreturn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 12.68.8 sigsetmask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 12.68.9 sigstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 12.68.10 sigvec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 12.68.11 ssignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 12.68.12 sys_siglist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 12.68.13 sysv_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

12.69 Glibc Extensions to <stdio.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 12.69.1 asprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 12.69.2 cuserid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 12.69.3 clearerr_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 12.69.4 fcloseall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 12.69.5 feof_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 12.69.6 ferror_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 12.69.7 fflush_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 12.69.8 fgetc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 12.69.9 fgets_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 12.69.10 fileno_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 12.69.11 fopencookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 12.69.12 fputc_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 12.69.13 fputs_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 12.69.14 fread_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 12.69.15 fwrite_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 12.69.16 getw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 12.69.17 putw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 12.69.18 setbuffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 12.69.19 setlinebuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 12.69.20 sys_errlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 12.69.21 sys_nerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 12.69.22 tmpnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 12.69.23 vasprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561

12.70 Glibc Extensions to <stdlib.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 12.70.1 canonicalize_file_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 12.70.2 cfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 12.70.3 clearenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 12.70.4 drand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 12.70.5 ecvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 12.70.6 erand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 12.70.7 fcvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 12.70.8 getloadavg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 12.70.9 getpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 12.70.10 initstate_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 12.70.11 jrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 12.70.12 lcong48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 12.70.13 lrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 12.70.14 mkostemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 12.70.15 mkostemps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 12.70.16 mrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 12.70.17 mkstemps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 12.70.18 nrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 12.70.19 on_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 12.70.20 ptsname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 12.70.21 qecvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 12.70.22 qecvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 12.70.23 qfcvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 12.70.24 qfcvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 12.70.25 qgcvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 12.70.26 qsort_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 12.70.27 random_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 12.70.28 rpmatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 12.70.29 secure_getenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 12.70.30 seed48_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 12.70.31 setstate_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 12.70.32 srand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 12.70.33 srandom_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 12.70.34 strtod_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 12.70.35 strtof_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 12.70.36 strtol_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 12.70.37 strtold_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 12.70.38 strtoll_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 12.70.39 strtoq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 12.70.40 strtoul_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 12.70.41 strtoull_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 12.70.42 strtouq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 12.70.43 valloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570

12.71 Glibc Extensions to <string.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 12.71.1 ffsl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 12.71.2 ffsll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 12.71.3 memfrob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 12.71.4 memmem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 12.71.5 mempcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 12.71.6 memrchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 12.71.7 rawmemchr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 12.71.8 strcasestr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 12.71.9 strchrnul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 12.71.10 strfry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 12.71.11 strsep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 12.71.12 strverscmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573

12.72 Glibc <sys/capability.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 12.72.1 capget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 12.72.2 capset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573

12.73 Glibc <sys/epoll.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 12.73.1 epoll_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 12.73.2 epoll_ctl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 12.73.3 epoll_wait. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574

12.74 Glibc <sys/fanotify.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 12.74.1 fanotify_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 12.74.2 fanotify_mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574

12.75 Glibc <sys/file.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

12.75.1 flock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 12.76 Glibc <sys/fsuid.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

12.76.1 setfsgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 12.76.2 setfsuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

12.77 Glibc <sys/gmon.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575

12.77.1 monstartup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 12.78 Glibc <sys/io.h>, <sys/perm.h> . . . . . . . . . . . . . . . . . . . . . . . . . . 576

12.78.1 ioperm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 12.78.2 iopl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

12.79 Glibc <sys/kdaemon.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

12.79.1 bdflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 12.80 Glibc <sys/klog.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

12.80.1 klogctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 12.81 Glibc Extensions to <sys/mman.h> . . . . . . . . . . . . . . . . . . . . . . . . . 577

12.81.1 madvise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 12.81.2 mincore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 12.81.3 mremap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 12.81.4 remap_file_pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 12.82 Glibc <sys/mount.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577

12.82.1 mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 12.82.2 umount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 12.82.3 umount2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578

12.83 Glibc <sys/personality.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578

12.83.1 personality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 12.84 Glibc <sys/prctl.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578

12.84.1 prctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 12.85 Glibc <sys/profil.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578

12.85.1 sprofil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 12.86 Glibc <sys/ptrace.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

12.86.1 ptrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 12.87 Glibc <sys/quota.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

12.87.1 quotactl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 12.88 Glibc <sys/reboot.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579

12.88.1 reboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 12.89 Glibc Extensions to <sys/resource.h> . . . . . . . . . . . . . . . . . . . . 579

12.89.1 prlimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 12.90 Glibc Extensions to <sys/sem.h> . . . . . . . . . . . . . . . . . . . . . . . . . . 580

12.90.1 semtimedop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 12.91 Glibc <sys/sendfile.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580

12.91.1 sendfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 12.92 Glibc Extensions to <sys/socket.h> . . . . . . . . . . . . . . . . . . . . . . 580

12.92.1 accept4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 12.92.2 isfdtype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 12.92.3 recvmmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 12.92.4 sendmmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581

12.93 Glibc Extensions to <sys/stat.h> . . . . . . . . . . . . . . . . . . . . . . . . . 581

12.93.1 lchmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 12.94 Glibc <sys/statfs.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581

12.94.1 fstatfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 12.94.2 statfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582

12.95 Glibc <sys/swap.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 12.95.1 swapoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 12.95.2 swapon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582

12.96 Glibc <sys/sysctl.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582

12.96.1 sysctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 12.97 Glibc <sys/sysinfo.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582

12.97.1 get_avphys_pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 12.97.2 get_nprocs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 12.97.3 get_nprocs_conf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 12.97.4 get_phys_pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 12.97.5 sysinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583

12.98 Glibc <sys/syslog.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

12.98.1 vsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 12.99 Glibc <sys/sysmacros.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

12.99.1 gnu_dev_major . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 12.99.2 gnu_dev_makedev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584

12.99.3 gnu_dev_minor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 12.100 Glibc Extensions to <sys/time.h>. . . . . . . . . . . . . . . . . . . . . . . . 584

12.100.1 adjtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 12.100.2 futimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 12.100.3 futimesat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 12.100.4 lutimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 12.100.5 settimeofday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585

12.101 Glibc <sys/timex.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 12.101.1 adjtimex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 12.101.2 ntp_adjtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 12.101.3 ntp_gettime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 12.101.4 ntp_gettimex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586

12.102 Glibc Extensions to <sys/uio.h> . . . . . . . . . . . . . . . . . . . . . . . . . 586 12.102.1 preadv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 12.102.2 process_vm_readv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 12.102.3 process_vm_writev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 12.102.4 pwritev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587

12.103 Glibc <sys/ustat.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587

12.103.1 ustat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 12.104 Glibc <sys/vlimit.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588

12.104.1 vlimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 12.105 Glibc <sys/vm86.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588

12.105.1 vm86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 12.106 Glibc <sys/vtimes.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588

12.106.1 vtimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 12.107 Glibc Extensions to <sys/wait.h>. . . . . . . . . . . . . . . . . . . . . . . . 588

12.107.1 wait3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 12.107.2 wait4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589

12.108 Glibc <sys/xattr.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 12.108.1 fgetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 12.108.2 flistxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 12.108.3 fremovexattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 12.108.4 fsetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 12.108.5 getxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 12.108.6 lgetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 12.108.7 listxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 12.108.8 llistxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 12.108.9 lremovexattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 12.108.10 lsetxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 12.108.11 removexattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 12.108.12 setxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591

12.109 Glibc Extensions to <termios.h> . . . . . . . . . . . . . . . . . . . . . . . . . 591 12.109.1 cfmakeraw. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 12.109.2 cfsetspeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591

12.110 Glibc Extensions to <time.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 12.110.1 clock_adjtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 12.110.2 dysize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 12.110.3 getdate_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 12.110.4 stime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 12.110.5 strptime_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 12.110.6 timegm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 12.110.7 timelocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 12.110.8 timespec_get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593

12.111 Glibc <ttyent.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 12.111.1 endttyent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 12.111.2 getttyent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 12.111.3 getttynam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 12.111.4 setttyent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594

12.112 Glibc Extensions to <unistd.h> . . . . . . . . . . . . . . . . . . . . . . . . . . 594 12.112.1 acct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 12.112.2 brk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 12.112.3 chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 12.112.4 daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 12.112.5 dup3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 12.112.6 endusershell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 12.112.7 euidaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 12.112.8 execvpe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 12.112.9 get_current_dir_name. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 12.112.10 getdomainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 12.112.11 getdtablesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 12.112.12 getpagesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 12.112.13 getpass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 12.112.14 getresgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 12.112.15 getresuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 12.112.16 getusershell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 12.112.17 group_member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 12.112.18 pipe2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 12.112.19 profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 12.112.20 revoke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 12.112.21 sbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 12.112.22 setlogin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 12.112.23 setdomainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 12.112.24 sethostid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 12.112.25 sethostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 12.112.26 setresgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 12.112.27 setresuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 12.112.28 setusershell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 12.112.29 syncfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 12.112.30 syscall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 12.112.31 ttyslot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 12.112.32 vhangup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

12.113 Glibc <utmp.h>. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 12.113.1 endutent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 12.113.2 getutent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 12.113.3 getutent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 12.113.4 getutid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 12.113.5 getutid_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 12.113.6 getutline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 12.113.7 getutline_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 12.113.8 pututline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 12.113.9 setutent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 12.113.10 updwtmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 12.113.11 utmpname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 12.113.12 login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 12.113.13 login_tty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

12.114 Glibc Extensions to <utmpx.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 12.114.1 getutmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 12.114.2 getutmpx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 12.114.3 updwtmpx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 12.114.4 utmpxname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604

12.115 Glibc Extensions to <wchar.h> . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 12.115.1 fgetwc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 12.115.2 fgetws_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 12.115.3 fputwc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 12.115.4 fputws_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 12.115.5 getwc_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 12.115.6 getwchar_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 12.115.7 putwc_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 12.115.8 putwchar_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 12.115.9 wcschrnul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 12.115.10 wcsftime_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 12.115.11 wcstod_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 12.115.12 wcstof_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 12.115.13 wcstol_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 12.115.14 wcstold_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 12.115.15 wcstoll_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 12.115.16 wcstoq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 12.115.17 wcstoul_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 12.115.18 wcstoull_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 12.115.19 wcstouq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 12.115.20 wmempcpy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609

13 Particular Modules . . . . . . . . . . . . . . . . . . . . . . . . . 610

13.1 alloca. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 13.2 alloca-opt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 13.3 Safe Allocation Macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 13.4 Compile-time Assertions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 13.5 Integer Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613

13.5.1 Arithmetic Type Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 13.5.2 Integer Bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 13.5.3 Wraparound Arithmetic with Signed Integers . . . . . . . . . . . 615 13.5.4 Integer Type Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 13.5.5 Integer Range Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618

13.6 Extern inline functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 13.7 Character and String Functions in C Locale . . . . . . . . . . . . . . . . . 621

13.7.1 c-ctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 13.7.2 c-strcase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621 13.7.3 c-strcaseeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.7.4 c-strcasestr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.7.5 c-strstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.7.6 c-strtod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622 13.7.7 c-strtold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623

13.8 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 13.9 error and progname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 13.10 gcd: greatest common divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 13.11 Searching for Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624

Simple Library Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 Locating Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624

Example of using AC_LIB_LINKFLAGS. . . . . . . . . . . . . . . . . . . . . . . . 625 Dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 Static vs. shared . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 CPPFLAGS vs. LDFLAGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 Bi-arch systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626

13.12 Controlling the Exported Symbols of Shared Libraries . . . . . . 627 13.13 LD Version Scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629 13.14 Visual Studio Compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 13.15 Supporting Relocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631 13.16 func . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633 13.17 configmake . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 13.18 warnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634 13.19 manywarnings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635 13.20 Running self-tests under valgrind . . . . . . . . . . . . . . . . . . . . . . . . . . 636 13.21 stat-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636

14 Regular expressions. . . . . . . . . . . . . . . . . . . . . . . . . 637

14.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 14.2 Regular Expression Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637

14.2.1 Syntax Bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 14.2.2 Predefined Syntaxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 14.2.3 Collating Elements vs. Characters . . . . . . . . . . . . . . . . . . . . . . 642 14.2.4 The Backslash Character. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642

14.3 Common Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 14.3.1 The Match-self Operator (ordinary character) . . . . . . . . . . 643 14.3.2 The Match-any-character Operator (.) . . . . . . . . . . . . . . . . . 643 14.3.3 The Concatenation Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . 643 14.3.4 Repetition Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644

14.3.4.1 The Match-zero-or-more Operator (*) . . . . . . . . . . . . . 644 14.3.4.2 The Match-one-or-more Operator (+ or \+) . . . . . . . . 644 14.3.4.3 The Match-zero-or-one Operator (? or \?) . . . . . . . . . 644 14.3.4.4 Interval Operators ({ … } or \{ … \}). . . . . . . . . . 645

14.3.5 The Alternation Operator (| or \|) . . . . . . . . . . . . . . . . . . . . 645 14.3.6 List Operators ([ …] and [^…]) . . . . . . . . . . . . . . . . . . 646 14.3.6.1 Collating Symbol Operators ([. . . . .]) . . . . . . . . . . . 647 14.3.6.2 Equivalence Class Operators ([= … =]) . . . . . . . . . . 647 14.3.6.3 Character Class Operators ([: …:]) . . . . . . . . . . . . 647 14.3.6.4 The Range Operator (-) . . . . . . . . . . . . . . . . . . . . . . . . . . 648

14.3.7 Grouping Operators (( …) or \( … \)) . . . . . . . . . . . . . 648 14.3.8 The Back-reference Operator (\digit). . . . . . . . . . . . . . . . . . . 649 14.3.9 Anchoring Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650

14.3.9.1 The Match-beginning-of-line Operator (^) . . . . . . . . . 650 14.3.9.2 The Match-end-of-line Operator ($) . . . . . . . . . . . . . . . 650

14.4 GNU Operators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650

14.4.1 Word Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 14.4.1.1 Non-Emacs Syntax Tables . . . . . . . . . . . . . . . . . . . . . . . . . 650 14.4.1.2 The Match-word-boundary Operator (\b) . . . . . . . . . 651 14.4.1.3 The Match-within-word Operator (\B). . . . . . . . . . . . . 651 14.4.1.4 The Match-beginning-of-word Operator (\<) . . . . . . . 651 14.4.1.5 The Match-end-of-word Operator (\>) . . . . . . . . . . . . . 651 14.4.1.6 The Match-word-constituent Operator (\w) . . . . . . . . 651 14.4.1.7 The Match-non-word-constituent Operator (\W)…. 651

14.4.2 Buffer Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 14.4.2.1 The Match-beginning-of-buffer Operator (\`) . . . . . . 651 14.4.2.2 The Match-end-of-buffer Operator (\') . . . . . . . . . . . . 651

14.5 GNU Emacs Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651

14.5.1 Syntactic Class Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 14.5.1.1 Emacs Syntax Tables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 14.5.1.2 The Match-syntactic-class Operator (\sclass) . . . . . . 652 14.5.1.3 The Match-not-syntactic-class Operator (\Sclass) . . 652

14.6 What Gets Matched? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 14.7 Programming with Regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652

14.7.1 GNU Regex Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 14.7.1.1 GNU Pattern Buffers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653 14.7.1.2 GNU Regular Expression Compiling . . . . . . . . . . . . . . . 653 14.7.1.3 GNU Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 14.7.1.4 GNU Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654 14.7.1.5 Matching and Searching with Split Data . . . . . . . . . . . 655 14.7.1.6 Searching with Fastmaps . . . . . . . . . . . . . . . . . . . . . . . . . . 656 14.7.1.7 GNU Translate Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 14.7.1.8 Using Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 14.7.1.9 Freeing GNU Pattern Buffers. . . . . . . . . . . . . . . . . . . . . . 659

14.7.2 BSD Regex Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 659 14.7.2.1 BSD Regular Expression Compiling . . . . . . . . . . . . . . . 660 14.7.2.2 BSD Searching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660

14.8 Regular expression syntaxes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660 14.8.1 ‘awk’ regular expression syntax . . . . . . . . . . . . . . . . . . . . . . . . . 660 14.8.2 ‘egrep’ regular expression syntax. . . . . . . . . . . . . . . . . . . . . . . 661 14.8.3 ‘ed’ regular expression syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 662 14.8.4 ‘emacs’ regular expression syntax. . . . . . . . . . . . . . . . . . . . . . . 663 14.8.5 ‘gnu-awk’ regular expression syntax . . . . . . . . . . . . . . . . . . . . 664 14.8.6 ‘grep’ regular expression syntax . . . . . . . . . . . . . . . . . . . . . . . . 665 14.8.7 ‘posix-awk’ regular expression syntax . . . . . . . . . . . . . . . . . . 666 14.8.8 ‘posix-basic’ regular expression syntax. . . . . . . . . . . . . . . . 667 14.8.9 ‘posix-egrep’ regular expression syntax. . . . . . . . . . . . . . . . 667 14.8.10 ‘posix-extended’ regular expression syntax . . . . . . . . . . . 668 14.8.11 ‘posix-minimal-basic’ regular expression syntax . . . . . 669 14.8.12 ‘sed’ regular expression syntax . . . . . . . . . . . . . . . . . . . . . . . . 670

Appendix A GNU Free Documentation License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671

Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 679

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 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 Checkout

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.

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.

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 instructions.

• For Emacs: Add these lines to your Emacs initialization file ($HOME/.emacs or similar):

     ;; 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” checkbox.

2. Under “C/C++|Code Style”, select a code style profile that has the “Indentation|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 documentation 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.

• 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 variability 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 currently 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:

• 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 613. Some Gnulib modules contain explicit support for the other signed integer representations 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 S and T represented as size_t values, then S + T cannot overflow.

• A pointer P points within an object O if and only if (char *) &O <= (char *) P

        && (char *) P < (char *) (&O + 1).

• If an existing object has size S, and if T is sufficiently small (e.g., 8 KiB), then S + T cannot overflow. Overflow in this case would mean that the rest of your program fits into T bytes, 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 A of 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.

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 implement POSIX.

• Maintainability: When a package uses modules from Gnulib instead of code written specifically for that package, the maintainer has less code to maintain.

• Security: Gnulib provides functions that are immune against vulnerabilities that plague the uses of the corresponding commonplace functions. For example, asprintf, canonicalize_file_name are not affected by buffer sizing problems that affect sprintf, realpath. openat does not have the race conditions that open has. Etc.

• Reliability: Gnulib provides functions that combine a call to a system function with a check of the result. Examples are xalloc, xprintf, xstrtod, xgetcwd.

• Structure: Gnulib offers a way to structure code into modules, typically one include file, one source code file, and one autoconf macro for each functionality. Modularity helps maintainability.

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 fragmentation of the user community into disjoint user communities according to the operating system, and instead allow synergies between users on different operating systems.

Another goal of Gnulib is to provide application code that can be shared between several applications. Some people wonder: "What? glibc doesn’t have a function to copy a file?" Indeed, the scope of a system’s libc is to implement the relevant standards (ISO 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.

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 availability, or—for proprietary operating systems—as long as the vendor provides commercial support for it. Already existing Gnulib code for older operating systems is usually left in place for longer than these three years. So it comes that programs that use Gnulib run pretty well also on these older operating systems.

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

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

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

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

• glibc systems. With glibc 2.8 or newer, they are frequently tested. With glibc 2.3 or newer, they are occasionally tested.

• 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.

• 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. Only the latest version of mingw is tested; older versions are not supported.

• 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:

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 implementation under the same name. Examples are the ‘snprintf’ and ‘readlink’ modules.

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

      #if !HAVE_WORKING_FOO
      # define foo rpl_foo
      #endif

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

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

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 extracting 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.

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 \begin{matrix}c \\ ◯ \end{matrix} 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 copyright notice and this notice are preserved.

m4/ Autoconf macro files are under this copyright:

Copyright \begin{matrix}c \\ ◯ \end{matrix} 20XX–20YY Free Software Foundation, Inc.

This file is free software; the Free Software Foundation gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved.

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

doc/ Documentation files are under this copyright:

Copyright \begin{matrix}c \\ ◯ \end{matrix} 2004–20YY Free Software Foundation, Inc.

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

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

‘--lgpl=2’ to gnulib-tool.

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

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.

• 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 32).

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.ams 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 39 and Chapter 9 [Function Substitutes], page 68. For headers and functions that are provided by Glibc but not standardized by POSIX, look in the chapters Chapter 11 [Glibc Header File Substitutes], page 424 and Chapter 12 [Glibc Function Substitutes], page 435.

• 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).

~/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 over-

ride 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 direc-

tory specified by ‘AC_CONFIG_AUX_DIR’ in configure.ac or by the --aux-dir=DIRECTORY

option. If neither is specified, the current directory is assumed.

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

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

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

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

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

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

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

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

     ACLOCAL_AMFLAGS = -I m4

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

     ...
     AC_PROG_CC
     gl_EARLY
     ...

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

     ...
     AC_PROG_CC
     AC_PROG_CC_STDC

     gl_EARLY
     ...

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

     ...
     # For gnulib.
     gl_INIT
     ...

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

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

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

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

     SUBDIRS = lib

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

     SUBDIRS += lib

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

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

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

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

Finally, note that you cannot use AC_LIBOBJ or AC_REPLACE_FUNCS in your configure.ac and expect the resulting object files to be automatically added to

lib/libgnu.a. This is because your AC_LIBOBJ and AC_REPLACE_FUNCS invocations

from configure.ac augment a variable @LIBOBJS@ (and/or @LTLIBOBJS@ if using Libtool), whereas lib/libgnu.a is built from the contents of a different variable, usually

@gl_LIBOBJS@ (or @gl_LTLIBOBJS@ if using Libtool).

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 including dependencies.

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

gl_SOURCE_BASE

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

gl_M4_BASE

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

    gl_TESTS_BASE

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

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

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

    gl_LIBTOOL

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

    gl_MACRO_PREFIX

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

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 systems with deficient header files in /usr/include/, it may create files named string.h, stdlib.h, stdint.h or similar in the build directory. In the other source directories of your package you will usually pass ‘-I’ options to the compiler, so that these Gnulib substitutes are visible and take precedence over the files in /usr/include/.

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

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

3.6 Using Gnulib for both a library and a binary

Your project might build both a library and some accompanying binaries in the same source tree. In that case you might want to use different modules for the library than for the binaries. Typically the binaries might want to make use of getopt-posix or version-etc, while the library wants to stay clear of these modules for technical or licensing reasons.

Let’s assume that your project contains a lib directory where the source of the library resides and a src directory for the sources of the binaries as follows.

.
|-- configure.ac
|-- lib
|   |-- foo.c
|   `-- Makefile.am
|-- Makefile.am
`-- src
    |-- bar.c
    `-- Makefile.am

You can now add two instances of Gnulib to your project in separate source trees:

~/src/libfoo$ gnulib-tool --import --lib=libgnu --source-base=gnulib \
              --m4-base=gnulib/m4 --macro-prefix=gl strndup
~/src/libfoo$ gnulib-tool --import --lib=libgnutools \
              --source-base=src/gnulib --m4-base=src/gnulib/m4 \
              --macro-prefix=gl_tools getopt-gnu

The first one will import the module strndup in gnulib and the second one will import getopt-gnu in src/gnulib and you will end up with the following source tree (many files omitted in the interest of brevity):

.
|-- configure.ac
|-- gnulib
|   |-- m4
|   |-- strndup.c
|-- lib
|   |-- foo.c
|   `-- Makefile.am
|-- Makefile.am
`-- src
    |-- bar.c
    |-- gnulib
    |   |-- getopt.c
    |   |-- getopt.in.h
    |   |-- m4
    `-- Makefile.am

Integration with your code is basically the same as outlined in Section 3.2 [Initial import], page 13 with the one exception that you have to add both the macro gl_EARLY and the macro gl_tools_EARLY to your configure.ac (and of course also both macros gl_INIT and gl_tools_INIT). Obviously the name of the second macro is dependent on the value of the --macro-prefix option in your gnulib-tool invocation.

...
AC_PROG_CC
gl_EARLY
gl_tools_EARLY
...
# For gnulib.
gl_INIT
gl_tools_INIT
...

Also as outlined in Section 3.2 [Initial import], page 13 you will have to add compiler and linker flags. For the library you might have to add something along the line of the following to your Makefile.am:

...
AM_CPPFLAGS = -I$(top_srcdir)/gnulib -I$(top_builddir)/gnulib
...
libfoo_la_LIBADD = $(top_builddir)/gnulib/libgnu.la
...

Correspondingly for the binary you will have to add something along the lines of to the following:

...
AM_CPPFLAGS = -I$(top_srcdir)/src/gnulib -I$(top_builddir)/src/gnulib
...
LIBADD = $(top_builddir)/src/gnulib/libgnutools.la
...

The name of the library that you have pass in the linker option depends on the --lib option in gnulib-tool invocation.

3.7 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/ directory (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

3.8 Handling Gnulib’s own message translations

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

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

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

For these reasons, a new method was designed and is now recommended. If you pass

the --po-base=directory and --po-domain=domain options to gnulib-tool, then

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

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

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

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

       bindtextdomain (PACKAGE "-gnulib", LOCALEDIR);

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

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

3.9 Issues with Version Control Systems

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

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

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

1. In projects which commit all source files, whether generated or not, into their VCS, the gnulib-tool generated files should all be committed. In this case, you should pass the option ‘--no-vc-files’ to gnulib-tool, which avoids alteration of VCS-related files such as .gitignore. Gnulib also contains files generated by make (and removed by make clean), using information determined by configure. For a Gnulib source file of the form lib/foo.in.h, the corresponding lib/foo.h is such a make-generated file. These should not be checked into the VCS, but instead added to .gitignore or equivalent.

2. In projects which customarily omit from their VCS all files that are generated from other source files, none of these files and directories are added into the VCS. As described in 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 submodule containing the precise commit of the gnulib repository, so that each developer running bootstrap will get the same version of all gnulib-provided files. The location of the submodule can be chosen to fit the package’s needs; here’s how to initially create the submodule in the directory .gnulib:

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

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

      git submodule update --init $dir

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

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

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

3.10 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.11 Avoiding unnecessary checks and compilations

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

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

For example, the timegm module needs, on platforms where the system’s timegm function is missing or buggy, a replacement that is based on a function mktime_internal. The module mktime-internal that provides this function provides it on all platforms. So, by default, the file mktime-internal.c will be compiled on all platforms, even on glibc and BSD systems which have a working timegm function. When the option

‘--conditional-dependencies’ is given, on the other hand, and if mktime-internal was

not explicitly required on the command line, the file mktime-internal.c will only be compiled on the platforms where the timegm needs them.

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

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

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

configure.ac file.

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 32), 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"

     {
     # 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?

• What are the arguments?

• What is the return value?

• What happens in case of failure? (Exit? A specific return value? Errno set?)

• Memory allocation policy: If pointers to memory are returned, are they freshly allocated and supposed to be freed by the caller?

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

• The specification can be as comments in the header file, just above the function declaration.

• The specification can be as comments in the implementation file, just above the function definition.

• The specification can be in texinfo format, so that it gets included in the gnulib manual.

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

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

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

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

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

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 documentation generator will automatically convert the first part to a hyperlink when it has this form.

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

          below) text like ‘This module is obsolete.’

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

Applicability This field is either empty/absent, or contains the word ‘all’. It describes to which Makefile.am the module is applied. By default, a normal module is

applied to source_base/Makefile.am (normally lib/Makefile.am), whereas

a module ending in -tests is applied to tests_base/Makefile.am (normally tests/Makefile.am). If this field is ‘all’, it is applied to both Makefile.ams. This is useful for modules which provide Makefile.am macros rather than compiled source code.

Files This field contains a newline separated list of the files that are part of the module. gnulib-tool copies these files into the package that uses the module. This list is typically ordered by importance: First comes the header file, then the implementation files, then other files. It is possible to have the same file mentioned in multiple modules. That is, if the maintainers of that module agree on the purpose and future of said file.

Depends-on This field contains a newline separated list of the modules that are required for the proper working of this module. gnulib-tool includes each required module automatically, unless it is specified with option --avoid or it is marked as obsolete and the option --with-obsolete is not given. A test modules foo-tests implicitly depends on the corresponding non-test module foo. foo implicitly depends on foo-tests if the latter exists and if the option --with-tests has been given. Tests modules can depend on non-tests modules. Non-tests modules should not depend on tests modules. (Recall that tests modules are built in a separate directory.) Each listed required module may be declared a conditional dependency. This is indicated by placing the condition for the dependency on the same line, enclosed in brackets, after the name of the required module. The condition is a shell expression that is run after the module’s configure.ac statements. For example:

      strtoull   [test $ac_cv_func_strtoumax = no]

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

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

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

It is forbidden to add items to the CPPFLAGS variable here, other than temporarily, as these could affect the results of other Autoconf macros. We avoid adding items to the LIBS variable, other than temporarily. Instead, the module can export an Autoconf-substituted variable that contains link options. The user of the module can then decide to which executables to apply which link options. Recall that a package can build executables of different kinds and purposes; having all executables link against all libraries is inappropriate. If the statements in this section grow larger than a couple of lines, we recommend moving them to a .m4 file of their own.

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

      lib_SOURCES += foo.c

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

      "foo.h"

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

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

License This field specifies the license that governs the source code parts of this module. See 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.

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. Including it here verifies that said header file is self-contained.

• Then come other includes. In particular, the file macros.h is often used here. It contains a convenient ASSERT macro.

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

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

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

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

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

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

• A test indicates success by exiting with exit code 0. It should normally not produce output in this case. (Output to temporary files that are cleaned up at the end of the test are possible, of course.)

• A test indicates failure by exiting with an exit code different from 0 and 77, typically 1. It is useful to print a message about the failure in this case. The ASSERT macro already does so.

• A test indicates "skip", that is, that most of its interesting functionality could not be performed, through a return code of 77. A test should also print a message to stdout or stderr about the reason for skipping. For example:

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

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

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.

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 directory whenever it reads a file from the Gnulib directory. Suppose gnulib-tool is looking for file. Then:

• If directory/file exists, then ‘gnulib-tool’ uses it instead of the file included in Gnulib.

• Otherwise, if directory/file.diff exists, then gnulib-tool uses the file from Gnulib after applying the diff using the patch program.

• Otherwise, gnulib-tool uses the file included in Gnulib.

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

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

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

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

     extern void (*xalloc_die) (void);

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

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.

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 be defined in the namespace specified by the identifier instead of the global namespace. For example, after you have defined

      #define GNULIB_NAMESPACE gnulib

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

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

The benefits of this namespace mode are:

• Gnulib defines fewer symbols as preprocessor macros. For example, on a platform where open has to be overridden, Gnulib normally does #define open rpl_open. If your package has a class with a member open, for example a class foo with a method foo::open, then if you define this member in a compilation unit that includes <fcntl.h> and use it in a compilation unit that does not include <fcntl.h>, or vice versa, you will get a link error. Worse: You will not notice this problem on the platform where the system’s open function works fine. This problem goes away in namespace mode.

• It provides a safety check whether the set of modules your package requests from Gnulib is sufficient. For example, if you use the function gnulib::open in your code, and you forgot to request the module ‘open’ from Gnulib, you will get a compilation error (regardless of the platform).

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

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

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’ module, add to config.h through a AC DEFINE something like:

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

The stringprep_check_version function will thus be implemented by the check_

version module.

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

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

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

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

Typical uses look like:

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

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:

 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 platform, you may perform these steps:

1. Create gnulib directory On a machine with recent automake, autoconf, m4 installed and with a gnulib git 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/*

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).

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

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 without including <assert.h>. The Gnulib substitutes are macros that require including

 <assert.h>.

• The C11 static_assert and _Static_assert can also be used within a struct or

union specifier, in place of an ordinary declaration of a member of the struct or union. The Gnulib substitute can be used only as an ordinary declaration.

• In C99, assert can be applied to any scalar expression. In C89, the argument to

 assert is of type int.
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.

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 platforms: OpenBSD 4.0, mingw, MSVC 9.

• The macro ESTALE is not defined on some platforms: mingw, MSVC 9, Interix 3.5.

• The macro EDQUOT is not defined on some platforms: NonStop Kernel, mingw, MSVC 9.

• The macros ENETRESET, ECONNABORTED are not defined on some platforms: Minix 3.1.8, mingw, MSVC 9.

• The macros EWOULDBLOCK, ETXTBSY, ELOOP, ENOTSOCK, EDESTADDRREQ, EMSGSIZE,
EPROTOTYPE, ENOPROTOOPT, EPROTONOSUPPORT, EOPNOTSUPP, EAFNOSUPPORT,
EADDRINUSE, EADDRNOTAVAIL, ENETDOWN, ENETUNREACH, ECONNRESET, ENOBUFS,
EISCONN, ENOTCONN, ETIMEDOUT, ECONNREFUSED, EHOSTUNREACH, EALREADY,

EINPROGRESS are not defined on some platforms: mingw, MSVC 9.

• 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:

• 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_CLOEXEC’, ‘O_NOFOLLOW’, and ‘O_TTY_INIT’ are defined to values that are too large for an int on some platforms: AIX 7.1 with XL C 12.1.

• ‘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:

• 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.

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.

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.

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.

The Gnulib module dirname provides similar API, with functions base_name and dir_ name that also work with Windows file names.

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:

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, Android.

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.

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 platforms: 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:

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: pthread Portability problems fixed by Gnulib:

• This header pollutes the namespace with some broken macro implementations for various functions such as strtok_r and gmtime_r: mingw 3.0. Portability problems not fixed by Gnulib:

• This header file is missing on some platforms; the replacement does not offer threads, so much as lightweight stubs that make conditional compilation easier for fallbacks to single-threaded programs. Minix 3.1.8, mingw 2.x, MSVC 9, BeOS.

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.

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.

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:

• In ISO C11, the operand of alignof/_Alignof must be a parenthesized type. Recent versions of GCC support an extension in which the operand can also be a unary expression, as with sizeof. The Gnulib substitute does not support this extension.

• In ISO C11, the operand of alignof/_Alignof must be a complete type. Recent versions of GCC support an extension in which the operand can also be structure type containing a flexible array member. The Gnulib substitute does not support this extension.

• _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.9 and later, and MSVC 7.0 and later.

• Some compilers do not support alignment via alignas/_Alignas of auto variables (i.e., variables on the stack). They diagnose and ignore the alignment: Sun C 5.11.

• Some linkers do not support operands of _Alignas/alignas that are greater than 8: mingw.

• Some compilers require the operand of _Alignas/alignas to be a single integer constant, not an expression: MSVC 7.0 through at least 10.0.

• The Sun C 5.11 compiler sometimes mishandles the alignment of multiple external variables that are declared close together with _Alignas/alignas. This compiler bug causes the Gnulib module stdalign-tests to fail. The Sun Studio Developer Bug Report Review Team assigned the internal review ID 2125432 (dated 2011-11-01) to this issue.

• <stdalign.h> must be #included before _Alignas and _Alignof can be used.

• You cannot assume that _Alignas and _Alignof are reserved words; they might be macros.

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 platforms fail to provide max_align_t, which was added in C11.

• Some old platforms fail to provide wchar_t.

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

Portability problems not fixed by Gnulib:

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

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.

• {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:
 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 platforms. Mac OS X 10.5.

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 _Noreturn.

• 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

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.

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.

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> already be included: FreeBSD 5.0.

Portability problems not fixed by Gnulib:

• On some platforms, this header does not define some or all of the symbolic constants required by POSIX. For example, Android does not define RLIM_SAVED_CUR or RLIM_

 SAVED_MAX.

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.

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.

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 platforms.

• The functions lstat and mkdir are not declared on some platforms: mingw, MSVC 9.

• The macros UTIME_NOW and UTIME_OMIT are missing on some platforms.

• On some platforms, struct stat does not include st_atim, st_mtim, or st_ctim members. Use the gnulib module ‘stat-time’ for accessors to portably get at subsecond resolution.

Portability problems not fixed by Gnulib:

• The macro S_IFBLK is missing on some platforms: MSVC 9.

• On Windows platforms (excluding Cygwin), st_ino is always 0.

• On OpenVMS, st_ino is an array of three ino_t values, not a single value.

• To partially work around the previous two problems, you can test for nonzero st_ ino and use the Gnulib same-inode module to compare nonzero values. For example,

(a.st_ino && SAME_INODE (a, b)) is true if the struct stat values a and b are known

to represent the same file, (a.st_ino && !SAME_INODE (a, b)) is true if they are known to represent different files, and !a.st_ino is true if it is not known whether they represent different files.

• On some platforms, two different files may have the same st_dev and st_ino values, even when st_ino is nonzero:

• GNU/Linux NFS servers that export all local file systems as a single NFS file system, if a local st_dev exceeds 255, or if a local st_ino exceeds 16777215.

• Network Appliance NFS servers in snapshot directories; see Network Appliance bug #195.

• ClearCase MVFS; see bug id ATRia04618.

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

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

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:

• ‘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.

• 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.

• This header requires <code>sys/socket.h</code> to be included first on some platforms: Cygwin 1.7.18.

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 platforms. 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.

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 platforms: 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

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.

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.

• 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 • 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 Desktop Toolkit C, BSD/OS 4.0.1.

• The type wint_t and macro WEOF are missing on some platforms: IRIX 5.3.

• The type wint_t is incorrect on some platforms: MSVC 9.

• The functions isw* are missing on some platforms: FreeBSD 4.11.

• The function iswblank is declared but not defined on some platforms: IRIX 6.5.30.

• The functions isw* are actually defined as macros that don’t work, on IRIX 5.3.

• This header file defines some identifiers, such as multibyte, as macros on some platforms: Solaris 2.6. Portability problems not fixed by Gnulib:

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.

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 providing a substitute for the function. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this function important enough to contribute a substitute for it. If you need this particular

function, you may write to <bug-gnulib at gnu dot org>.
9.1 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:

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).

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.

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 *’.

• On some platforms, this function’s third argument type is ‘void *’, not ‘socklen_t *’: Solaris 10.

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.

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:

• 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.

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:

• 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 has no impact if <code>SIGALRM</code> is inherited as ignored; programs should use <code>signal (SIGALRM, SIG DFL)</code> if it is important to ensure the alarm will fire.

• Use of this function in multi-threaded applications is not advised.

• This function is missing on some platforms: mingw (2011), MSVC 9.

• This function is conditionally declared in the non-standard <io.h> header on some platforms: mingw (2012 or newer).

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:

• 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:

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:

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:

• 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.

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.

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:

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.

The Gnulib module dirname provides similar API, with function base_name, that also works with Windows file names.

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 accommodate 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.

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.

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.

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 implementation 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.

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.

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.

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.

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.

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:

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.

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.

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.

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.

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.

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:

9.111 cimag

POSIX specification:

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

Gnulib module: — Portability problems 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:

9.115 clock

POSIX specification:

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

Gnulib module: —

Portability problems 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.

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.

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.

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.

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:

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:

• 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: 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.

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.

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 platforms: glibc (at least 2.11–2.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.

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.

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.

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.

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.

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.

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.

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.)

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, with functions dir_name and mdir_ name, 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.

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:

• 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, floatingpoint and pointer output on some platforms: AIX 7.1. Portability problems not fixed by Gnulib:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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 crashes when invoked with valid arguments on some platforms: Cygwin 1.7.25.

• This function fails with EINVAL when duplicating an fd to itself: Android.

• 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 large targets, which interferes with using dup2(fd,fd)==fd) as the minimal EBADF filter: AIX 7.1, 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:

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 platforms: glibc (at least 2.11–2.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.

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.

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.

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.

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.

• On Windows platforms (excluding Cygwin), this function operates by spawning and then by exiting the current process, which means the current process’s parent may incorrectly proceed as if its child had exited.

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.

• On Windows platforms (excluding Cygwin), this function operates by spawning and then by exiting the current process, which means the current process’s parent may incorrectly proceed as if its child had exited.

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.

• On Windows platforms (excluding Cygwin), this function operates by spawning and then by exiting the current process, which means the current process’s parent may incorrectly proceed as if its child had exited.

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.

• On Windows platforms (excluding Cygwin), this function operates by spawning and then by exiting the current process, which means the current process’s parent may incorrectly proceed as if its child had exited.

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.

• On Windows platforms (excluding Cygwin), this function operates by spawning and then by exiting the current process, which means the current process’s parent may incorrectly proceed as if its child had exited.

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.

• On Windows platforms (excluding Cygwin), this function operates by spawning and then by exiting the current process, which means the current process’s parent may incorrectly proceed as if its child had exited.

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 55. 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.

• 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:

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 returns NaN for small operands: OpenBSD 5.4.

• 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:

• 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:

• 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 multithreadsafe.

• 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.

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:

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 7.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: AIX 7.1, 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:

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.

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.

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.

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:

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:

• 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 clo-

sed, 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:

• 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 clo-

sed, 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.

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 accommodate 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 accommodate 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.

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:

• 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.

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.

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. 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:

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: 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.

• 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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• Attempting to write to a read-only stream fails with EOF but does not set the error flag for ferror on some platforms: glibc 2.13, cygwin 1.7.9.

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.

• This function crashes if the stream’s file descriptor has already been clo-

sed, 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 accommodate 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 accommodate all Unicode characters.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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 clo-

 sed, 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:

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.

• 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/PowerPC, 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.

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, z size 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.

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 60, 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:

• See Section 8.63 [sys/stat.h], page 60, 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:

• If the argument is a read-only file descriptor, this function fails with EBADF on some platforms: AIX 7.1.

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.

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:

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.

• 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, Solaris 11.1.

• Passing AT_FDCWD as the fd argument does not properly fail with EBADF on some systems: glibc 2.11, Solaris 11.

Portability problems not fixed by Gnulib:

• Some platforms lack the ability to change the timestamps of a file descriptor, so the replacement can fail with ENOSYS; the gnulib module ‘utimens’ provides a more reliable interface fdutimens.

• The mere act of using stat modifies the access time of directories on some platforms, so utimensat can only effectively change directory modification time: Cygwin 1.5.x.

9.319 fwide

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/fwide.html

Gnulib module: — 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, Cygwin 1.5.x, MSVC 9, Interix 3.5, BeOS.

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

• fwide is not guaranteed to be able to change a file stream’s mode to a different mode than the current one.

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 accommodate all Unicode characters.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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 clo-

sed, 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 accommodate 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:

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.

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.

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.

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.

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.

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:

• This function is unsafe to call between fork and exec if the parent process is multithreaded.

• 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.

The Gnulib module mgetgroups provides a similar API.

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:

• 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:

• 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:

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 optio-

nal 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 platforms: 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.

• The function getopt does not obey the ‘-’ flag in the options string when POSIXLY_ CORRECT is set on some platforms: Cygwin 1.7.0.

• The function getopt does not support options with optional arguments on some platforms: 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 disambiguations 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 rechecking for POSIXLY_CORRECT, by setting optind to 0. Several BSD implementations provide optreset, causing a reset by setting it non-zero, although it does not necessarily re-read POSIXLY_CORRECT. Solaris getopt does not support either reset method, but does not maintain state that needs the extra level of reset.

• On some platforms, this function does not set the stream error indicator on attempts to write to a read-only stream: glibc 2.13, Cygwin 1.7.9.

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:

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.

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.

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 unsafe to call between fork and exec if the parent process is multithreaded. Instead, use getpwuid_r prior to forking.

• 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 unsafe to call between fork and exec if the parent process is multithreaded. Use it prior to forking.

• This function is missing on some platforms: OpenBSD 3.8, Minix 3.1.8, mingw, MSVC 9, BeOS.

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.

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 *’.

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.

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.

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 accommodate 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 accommodate 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:

• 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.

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:

• 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.

• 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:

• 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, although an indirect conversion from A through UTF-8 to B is possible. This occurs on some platforms: Solaris 11 2010-11. Gnulib provides a higher-level facility striconveh (a wrapper around iconv) that deals with this problem.

• The set of supported encodings and conversions is system dependent.

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.

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:

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’.

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 platforms: 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:

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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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_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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isalpha

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswalpha This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isalpha

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_alpha

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-alpha’.

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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isblank

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswblank This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isblank

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_blank

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-blank’.

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:

• 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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_iscntrl

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswcntrl This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_iscntrl

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_cntrl

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-cntrl’.

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: ctype

Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isdigit

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswdigit This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isdigit

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_digit

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-digit’.

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).

Portability problems not fixed by Gnulib:

• It is implementation-dependent whether isfinite raises an exception given a signaling NaN operand.

• This macro returns an unspecified result when given noncanonical values such as unnormalized numbers, pseudo-denormals, pseudo-NaNs, pseudo-Infinities, and pseudozeroes.

9.434 isgraph

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/isgraph.html

Gnulib module: ctype

Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isgraph

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswgraph This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isgraph

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_graph

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-graph’.

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: 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. Portability problems not fixed by Gnulib:

• This macro returns an unspecified result when given noncanonical values such as unnormalized numbers, pseudo-denormals, pseudo-NaNs, pseudo-Infinities, and pseudozeroes.

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.

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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

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.

Portability problems not fixed by Gnulib:

• This macro returns an unspecified result when given noncanonical values such as unnormalized numbers, pseudo-denormals, pseudo-NaNs, pseudo-Infinities, and pseudozeroes.

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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isprint

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswprint This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isprint

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_print

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-print’.

9.447 isprint_l

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/isprint_l.html

Gnulib module: — Portability problems 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: ctype

Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_ispunct

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswpunct This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_ispunct

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_punct

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-punct’.

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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isspace

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswspace This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isspace

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_space

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-space’.

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.

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: ctype

Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isupper

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswupper This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isupper

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_upper

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-upper’.

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.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

9.458 iswalpha_l

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/iswalpha_l.html

Gnulib module: —

Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

• This function is missing on many platforms: 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 accommodate 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 accommodate 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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

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

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 accommodate all Unicode characters.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

9.468 iswgraph_l

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/iswgraph_l.html

Gnulib module: — Portability problems fixed by Gnulib: Portability problems not fixed by Gnulib:

• This function is missing on many platforms: 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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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:

• 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate all Unicode characters.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

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

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 accommodate all Unicode characters.

9.481 isxdigit

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/isxdigit.html

Gnulib module: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

Note: This function’s behaviour depends on the locale, but does not support the multibyte characters that occur in strings in locales with MB_CUR_MAX > 1 (this includes all the common UTF-8 locales). There are four alternative APIs:

c_isxdigit

This function operates in a locale independent way and returns true only for ASCII characters. It is provided by the Gnulib module ‘c-ctype’.

iswxdigit

This function operates in a locale dependent way, on wide characters. In order to use it, you first have to convert from multibyte to wide characters, using the mbrtowc function. It is provided by the Gnulib module ‘wctype’.

mb_isxdigit

This function operates in a locale dependent way, on multibyte characters. It is provided by the Gnulib module ‘mbchar’.

uc_is_xdigit

This function operates in a locale independent way, on Unicode characters. It is provided by the Gnulib module ‘unictype/ctype-xdigit’.

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.

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:

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:

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.

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:

• This function is missing on some platforms: glibc 2.3.6, Mac OS X < 10.10, FreeBSD 6.0, 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 directly hardlink symlinks on some platforms: Mac OS X 10.10.

• This function fails to reject trailing slashes on non-directories on some platforms: AIX 7.1, Solaris 11 2011-11, Mac OS X 10.10.

• 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.

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.

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.

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:

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:

• 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.

• 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. 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:

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:

• 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: Portability problems not fixed by Gnulib:

• The effects of this call are system and compiler optimization dependent, since it restores the contents of register-allocated variables but not the contents of stack-allocated variables.

• When longjumping out of a signal handler that was being executed on an alternate stack (installed through sigaltstack), on FreeBSD, NetBSD, OpenBSD, you need to clear the SS_ONSTACK flag in the stack_t structure managed by the kernel.

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:

• 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.

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 60, 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:

• Upon failure, the function does not set errno to ENOMEM on some platforms: mingw, MSVC 9. Portability problems not fixed by Gnulib:

• malloc (0) always returns a NULL pointer on some platforms: AIX 5.1, OSF/1 5.1.

Extension: Gnulib provides a module ‘malloc-gnu’ that substitutes a malloc implementation that behaves more like the glibc implementation, regarding the result of malloc

(0).
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 returns 0 instead of (size_t) -2 when the input is empty: glibc 2.19.

• This function returns (size_t) -1 instead of (size_t) -2 when the input is empty: AIX 5.1.

• 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.

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 returns 0 instead of (size_t) -2 when the input is empty: glibc 2.19.

• This function returns (size_t) -1 instead of (size_t) -2 when the input is empty: AIX 5.1.

• This function does not put the state into non-initial state when parsing an incomplete multibyte character on some platforms: AIX 5.1, OSF/1 5.1.

• This function does not produce correct results in the zh CN.GB18030 locale on some platforms: Solaris 8.

• This function fails if the pwc argument is NULL on some platforms: Solaris 7.

• This function does not ignore the pwc argument if the string argument is NULL on some platforms: OSF/1 5.1.

• This function returns the total number of bytes that make up the multibyte character, not the number of bytes that were needed to complete the multibyte character, on some platforms: HP-UX 11.11, Solaris 11 2010-11, mingw, possibly MSVC 9.

• This function may not return 0 when parsing the NUL character on some platforms: Solaris 9.

Portability problems not fixed by Gnulib:

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

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:

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 accommodate all Unicode characters.

• The specification is not clear about whether this function should update the conversion state when the first argument (the destination pointer) is NULL. The glibc, 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 accommodate all Unicode characters.

• The specification is not clear about whether this function should update the conversion state when the first argument (the destination pointer) is NULL. The glibc implementation does not update the state in this case; the 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:

Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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: Cygwin 1.5.x, mingw, MSVC 9.

• On Windows platforms (excluding Cygwin), this function is called _mkdir and takes

only one argument. The fix (without Gnulib) is to define a macro like this:

        #define mkdir ((int (*)()) _mkdir)

or

        #define mkdir(path,mode) _mkdir (path)

Portability problems not fixed by Gnulib:

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.

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:

• If the argument exists and is a directory, this function fails with EISDIR instead of the correct EEXIST: HP-UX 11.11.

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.

• If the argument exists and is a directory, the gnulib replacement function fails with EISDIR instead of the correct EEXIST: HP-UX 11.11.

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 superuser privileges and knowledge of supported device numbers.

• If the argument exists and is a directory, this function fails with EISDIR instead of the correct EEXIST: HP-UX 11.11.

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.

• If the argument exists and is a directory, the gnulib replacement function fails with EISDIR instead of the correct EEXIST: HP-UX 11.11.

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.

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:

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.

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.

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.

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.

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.

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.

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 platforms: Linux 64-bit, Solaris 64-bit.

• This function cannot sleep longer than 49.7 days on some platforms: Cygwin 1.5.x. Portability problems not fixed by Gnulib:

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.

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.

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.

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 suppor-

ted on some platforms: OpenBSD 3.8.

• The constants T_FMT_AMPM, YESEXPR, NOEXPR are not supported on some platforms: IRIX 5.3.

• The constants YESEXPR and NOEXPR do not return a valid string on some platforms: Irix 6.5. Portability problems not fixed by Gnulib:

• On Cygwin 1.5.x, which doesn’t have locales, nl_langinfo(CODESET) always returns

 "US-ASCII".

• On Cygwin 1.7.0, only the charset portion of a locale designation is honored.

• On NetBSD 5.0, in some locales, nl_langinfo(CRNCYSTR) returns the empty string, although the local currency symbol, as returned by localeconv()->currency_symbol, is non-empty.

• On NetBSD 5.1, in the "C" locale, the results of nl_langinfo(ABMON_1) ... nl_ langinfo(ABMON_12) are full month names, not abbreviated month names.

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.

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:

• open ("symlink", O_NOFOLLOW ...) fails with errno set to EMLINK instead of the

POSIX-required ELOOP on some platforms: FreeBSD 10.1.

• open ("symlink", O_NOFOLLOW ...) fails with errno set to EFTYPE instead of the

POSIX-required ELOOP on some platforms: NetBSD 6.1.

• 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.)

• 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:

• openat (fd, "symlink", O_NOFOLLOW ...) fails with errno set to EMLINK instead of

the POSIX-required ELOOP on some platforms: FreeBSD 10.1.

• openat (fd, "symlink", O_NOFOLLOW ...) fails with errno set to EFTYPE instead of

the POSIX-required ELOOP on some platforms: NetBSD 6.1.

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:

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 accommodate 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.

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:

• POSIX requires that this function set the stream error bit (detected by ferror) on write failure, but not all platforms do this: glibc 2.13, cygwin 1.7.9.

• POSIX requires that this function not alter stream orientation, but the gnulib replacement locks in byte orientation and fails on wide character streams.

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:

• On native Windows platforms, this functions terminates the current process with exit code 127 if the environment variable COMSPEC is not set.

• Some platforms mistakenly set the close-on-exec bit, then if it is cleared by the application, the platform then leaks file descriptors from earlier popen calls into subsequent popen children: Cygwin 1.5.x.

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.

• POSIX specifies that EINVAL should be returned when the file system doesn’t support the allocation operation directly. glibc however emulates the file system allocation with writes where unsupported, and apps have depended on that long term implementation. This is both inefficient, and as of glibc 2.21 at least, buggy on certain NFS setups.

• 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.

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.

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.

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 circumstances), 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:

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.

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:

• 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:

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.

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:

• 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:

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.

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.

• When this function fails, it causes the stdio buffer contents to be output twice on some platforms: AIX 6.1.

Portability problems not fixed by Gnulib:

• This function does not work on some platforms: AIX 6.1 (under particular circumstances), mingw.

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.

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:

• 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.

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:

• 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.

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:

• 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.

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:

• 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.

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:

• 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.

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:

• 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.

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:

• 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.

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:

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.

• 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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• Attempting to write to a read-only stream fails with EOF but does not set the error flag for ferror on some platforms: glibc 2.13, cygwin 1.7.9.

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: 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:

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:

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:

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:

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:

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.

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.

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.

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.

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.

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:

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:

• 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.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:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

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:

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 accommodate all Unicode characters.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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 accommodate all Unicode characters.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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.

• 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:

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.)

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, Mac OS X 10.10.

• On some platforms, readlink returns int instead of ssize_t: glibc 2.4, FreeBSD 6.0, OpenBSD 3.8, Cygwin 1.5.x, AIX 7.1.

• 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.

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.10, FreeBSD 6.0, 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 mistakenly succeed on readlink("link/",buf,len): Mac OS X 10.10.

• On some platforms, readlinkat returns int instead of ssize_t: AIX 7.1. •

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 NULL then p is still valid. Among implementations that obey C99, behavior varies on whether realloc (p, 0) always fails and leaves p valid, or usually succeeds and returns a unique zero-size object; either way, a program not suspecting these semantics will leak memory (either the still-valid p, or the non-NULL return value). Meanwhile, several implementations violate C99, by always calling free (p) but returning NULL: glibc, Cygwin

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

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:

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:

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:

• 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 platforms: 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.

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.

• This function ignores trailing slashes on symlinks on some platforms, such that

rename("link/","new") corrupts link: Solaris 9.

• This function incorrectly reduces the link count when comparing two spellings of a hard link on some platforms: NetBSD 1.6, Cygwin 1.5.x.

• This function will not always replace an existing destination on some platforms: Cygwin 1.5.x, mingw, MSVC 9. However, the replacement is not atomic for directories, and may end up losing the empty destination if the source could not be renamed.

• This function mistakenly allows names ending in ‘.’ or ‘..’ on some platforms: Cygwin 1.5.x, mingw, MSVC 9.

• This function does not reject attempts to rename existing directories and non-directories onto one another on some platforms: Cygwin 1.5.x, mingw, MSVC 9.

• This function does not allow trailing slashes on source directories on older platforms,

as in ‘rename("dir/","new")’: SunOS 4.1.

Portability problems not fixed by Gnulib:

• POSIX requires that rename("symlink-to-dir/","dir2") rename dir and leave
symlink-to-dir dangling; likewise, it requires that rename("dir","dangling/")

rename dir so that dangling is no longer a dangling symlink. This behavior is counter-intuitive, so on some systems, rename fails with ENOTDIR if either argument is a symlink with a trailing slash: glibc, OpenBSD, Cygwin 1.7.

• After renaming a non-empty directory over an existing empty directory, the old directory name is still visible through the stat function for 30 seconds after the rename, on NFS file systems, on some platforms: Linux 2.6.18.

• This function will not rename a source that is currently opened by any process: mingw, MSVC 9.

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:

• 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 directory name is still visible through the stat function for 30 seconds after the rename, on NFS file systems, on some platforms: Linux 2.6.18.

• This function will not rename a source that is currently opened by any process: mingw, MSVC 9.

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:

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 platforms: Cygwin 1.5.x.

• This function fails with EINVAL instead of the expected ENOTDIR for rmdir("file/") on some platforms: mingw, MSVC 9.

Portability problems not fixed by Gnulib:

• When rmdir fails because the specified directory is not empty, the errno value is system dependent.

• POSIX requires that rmdir("link-to-empty/") remove empty and leave link-to-

empty as a dangling symlink. This is counter-intuitive, so some systems fail with ENOTDIR instead: glibc

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/2 − 2^{−}54 on some platforms: NetBSD 3.0, AIX 7.1.

Portability problems fixed by Gnulib module round-ieee:

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

• This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

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/2 − 2^{−}25 on some platforms: mingw.

Portability problems fixed by Gnulib module roundf-ieee:

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

• This function returns a positive zero for a minus zero argument on some platforms: OSF/1 5.1.

Portability problems not fixed by Gnulib:

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:

• 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.

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.

• 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, z size 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.

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.

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).

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:

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.

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.

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:

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.

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: Cygwin 1.5.x. Portability problems not fixed by Gnulib:

• Older versions of POSIX required that setenv(NULL,"",0) gracefully fail with EINVAL, but not all implementations guarantee this, and the requirement was removed.

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.

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 (and/or _DEFAULT_ SOURCE on glibc >= 2.19) 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 platforms: glibc (at least 2.11–2.13).

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.

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.

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.

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.

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.

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:

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 missing on some platforms: mingw, MSVC 9.

• Support for SA RESETHAND is missing on some platforms: NonStop.

• Support for SA RESTART is missing on some platforms: mingw, MSVC 9, NonStop.

• In spite of having SA SIGACTION, struct sigaction lacks the sa sigaction member on some platforms: Irix 5.3.

• The symbolic value SIG_IGN for the SIGCHLD signal is equivalent to a signal handler

        void handle_child (int sigchld)
        {
          while (waitpid (-1, NULL, WNOHANG) > 0)

            ;
        }

except that SIG_IGN for SIGCHLD has the effect that the children execution times are not accounted in the times function. On some platforms (BSD? SystemV? Linux?), you need to use the sigaction flag SA_NOCLDWAIT in order to obtain this behavior.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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:

• 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

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 • 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.

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.

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.

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:

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:

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.

• 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 platforms: Solaris 11 2011-11.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators 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.

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.

• 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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators 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:

• 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:

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, z size 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 60, 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.

• 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:

• 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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.

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: string

Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

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: 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: string Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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:

• 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

      char *s = (strerror_r (err, buf, buflen) == 0 ? buf : NULL);

is essentially equivalent to this code using the glibc function:

      char *s = strerror_r (err, buf, buflen);

• This function clobbers the strerror buffer on some platforms: Cygwin 1.7.9.

• This function is sometimes not declared in <string.h> on some platforms: glibc 2.8, OSF/1 5.1.

• The third argument is of type int instead of size_t on some platforms: AIX 5.1, OSF/1 5.1.

• When this function fails, it returns −1 and sets errno, instead of returning the error number, on some platforms: glibc 2.12 with -D_POSIX_C_SOURCE=200112L, AIX 6.1, OSF/1 5.1.

• When this function fails, it corrupts errno, on some platforms: Solaris 10.

• This function does not support the error values that are specified by POSIX but not defined by the system, on some platforms: OpenBSD 4.0, OSF/1 5.1, NonStop Kernel, Cygwin 1.5.x.

• This function reports failure for strerror_r(0, buf, len), although POSIX requires this to succeed, on some platforms: FreeBSD 8.2.

• This function produces a different string for 0 than strerror on some platforms: 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.

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:

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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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:

9.1018 strncpy

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/strncpy.html

Gnulib module: string Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. 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.

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.

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.

• 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.

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.

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.

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 accommodate all Unicode characters.

• On Windows, this function does not take a buffer size as second argument.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

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 accommodate 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:

• On some systems, symlinkat(value, fd, "name/") mistakenly creates a symlink: AIX 7.1.

• 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.

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.

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:

• 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:

• 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.

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:

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.

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.

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.

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.

9.1081 toascii

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/toascii.html

Gnulib module: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

9.1082 tolower

POSIX specification:

http://www.opengroup.org/onlinepubs/9699919799/functions/tolower.html

Gnulib module: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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: ctype Portability problems fixed by Gnulib:

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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 accommodate 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.

• This function returns values of which the upper 16 bits are incorrect on some platforms: mingw.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8. Portability problems not fixed by Gnulib:

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

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 accommodate 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.

• This function cannot be called from plain inline or extern inline functions on some platforms: OS X 10.8.

Portability problems not fixed by Gnulib:

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

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 accommodate all Unicode characters.

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:

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 • 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:

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:

• This function is missing on some platforms: Minix 3.1.8, IRIX 5.3, Solaris 2.5.1, Cygwin 1.5.x, BeOS.

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

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.10, 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.

• On Mac OS X 10.10, in a writable HFS mount, unlinkat(fd, "..", 0) succeeds without doing anything.

• Some systems mistakenly succeed on unlinkat(fd,"file/",flag): GNU/Hurd, Solaris 9.

• Some platforms declare this function in fcntl.h instead of unistd.h: Cygwin 1.7.1.

Portability problems not fixed by Gnulib:

• When unlinkat(fd,name,AT_REMOVEDIR) fails because the specified directory is not empty, the errno value is system dependent.

• POSIX requires that unlinkdir(fd,"link-to-empty/",AT_REMOVEDIR) remove

empty and leave link-to-empty as a dangling symlink. This is counter-intuitive, so some systems fail with ENOTDIR instead: glibc

• Some systems allow a superuser to unlink directories, even though this can cause file system corruption. The error given if a process is not permitted to unlink directories varies across implementations; it is not always the POSIX value of EPERM. Meanwhile, if a process has the ability to unlink directories, POSIX requires that

unlinkat(fd,"symlink-to-dir/",0) remove dir and leave symlink-to-dir dan-

gling; 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.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 variable, not all of them, on some platforms: Solaris 11 2011-11, Haiku.

Portability problems not fixed by Gnulib:

• Older versions of POSIX required that unsetenv(NULL) gracefully fail with EINVAL, but not all implementations guarantee this, and the requirement was removed.

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.

• 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, Solaris 11.1.

• Out-of-range values of tv_nsec do not lead to a failure on some platforms: Linux kernel 2.6.22.19 on hppa.

Portability problems not fixed by Gnulib:

• On some platforms, timestamps of symbolic links cannot be modified, so the replacement fails with ENOSYS if passed the flag AT_SYMLINK_NOFOLLOW on a symlink.

• The mere act of using lstat modifies the access time of symlinks on some platforms, so utimensat with AT_SYMLINK_NOFOLLOW can only effectively change modification time: Cygwin.

• The mere act of using stat modifies the access time of directories on some platforms, so utimensat can only effectively change directory modification time: Cygwin 1.5.x.

The gnulib module fdutimensat provides a similar interface.

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 incorrectly round rather than truncate. Use utimensat(AT_FDCWD,file,times,0), or the gnulib module utimens, instead.

• On some platforms, utimes (file, NULL) fails to set the file’s timestamp to the current time: glibc 2.3.3.

• On some platforms, utimes failed on read-only files when utime worked fine. glibc 2.2.5.

Extension: Gnulib provides a module ‘utimens’ that works around these problems and allows to set the time with nanosecond resolution (as far as supported by the file system).

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:

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.

• 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, floatingpoint and pointer output on some platforms: AIX 7.1, BeOS.

Portability problems not fixed by Gnulib:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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:

• 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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• Attempting to write to a read-only stream fails with EOF but does not set the error flag for ferror on some platforms: glibc 2.13, cygwin 1.7.9.

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, z size 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 accommodate all Unicode characters.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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 accommodate 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.

• 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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• Attempting to write to a read-only stream fails with EOF but does not set the error flag for ferror on some platforms: glibc 2.13, cygwin 1.7.9.

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, z size specifiers.

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.

• 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 platforms: Solaris 11 2011-11.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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: HP-UX 11, OSF/1 5.1.

Portability problems not fixed by Gnulib:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators 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.

• 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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• Formatting noncanonical ‘long double’ numbers produces nonmeaningful results on some platforms: glibc and others, on x86, x86 64, IA-64 CPUs.

• When formatting an integer with grouping flag, this function inserts thousands separators 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, z size 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 accommodate all Unicode characters.

• On Windows, this function does not take a buffer size as second argument.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

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 accommodate 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 accommodate all Unicode characters.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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 accommodate all Unicode characters.

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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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.

Portability problems not fixed by Gnulib:

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

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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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.

Portability problems not fixed by Gnulib:

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

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 accommodate 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 destination string on some platforms: OSF/1 5.1.

• This function does not ignore the length argument if the destination argument is NULL on some platforms: mingw.

• This function updates the source pointer also if the destination argument is NULL on some platforms: HP-UX 11, OSF/1 5.1. Portability problems not fixed by Gnulib:

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

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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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:

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

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

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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 platforms: 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 accommodate 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 accommodate 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:

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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 platforms: 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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:

• 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 accommodate all Unicode characters.

• When formatting an integer with grouping flag, this function inserts thousands separators even in the "C" locale on some platforms: NetBSD 5.1.

• On some platforms, this function does not set errno or the stream error indicator on attempts to write to a read-only stream: Cygwin 1.7.9.

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.

• 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 accommodate 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.

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.

10 Past POSIX Function Substitutes

This chapter describes which functions and function-like macros specified by older versions 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 providing a substitute for the function. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this function important enough to contribute a substitute for it. If you need this particular

function, you may write to <bug-gnulib at gnu dot org>.
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.

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.

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.

• 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.

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.

• The effects of this call are system and compiler optimization dependent, since it restores the contents of register-allocated variables but not the contents of stack-allocated variables.

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.

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 accommodate all Unicode characters.

• This function is marked as “legacy” in POSIX. Better use wcsstr instead.

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

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:

• 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:

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.

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:

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.

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.

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
declares the functions gettext, dgettext, dcgettext, ngettext, dngettext, dcngettext,
textdomain, bindtextdomain, bind_textdomain_codeset.

Documentation:

• http://www.gnu.org/software/libc/manual/html_node/Message-catalogs-with-gettext.
 html,
• http://www.gnu.org/software/gettext/manual/html_node/gettext.html.

Gnulib module: gettext

Portability problems fixed by Gnulib, if GNU gettext is installed:

• This header file is missing on some platforms: 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.

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:

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.

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.

• 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.

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 providing a substitute for the function. When the list “Portability problems not fixed by Gnulib” is empty, such a module is not needed: No portability problems are known. Otherwise, it indicates that such a module would be useful but is not available: No one so far found this function important enough to contribute a substitute for it. If you need this particular

function, you may write to <bug-gnulib at gnu dot org>.

This list of functions is sorted according to the header that declares them.

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.

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.

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.

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:

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.

• 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:

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.

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.

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.

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.

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>

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.

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.

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.

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.

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: error 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: error 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: error 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.5 error_print_progname

Gnulib module: error 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:

• 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.

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.

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.

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.

• 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>

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.

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 takes int instead of gid_t parameters on some platforms: OS X 10.11.

• 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. The Gnulib module getugroups provides a similar API.

12.25.5 initgroups

Gnulib module: — Portability problems fixed by Gnulib: Portability problems not fixed by Gnulib:

• This function is unsafe to call between fork and exec if the parent process is multi-threaded. Instead, use getgroups or getgrouplist (or use the gnulib module mgetgroups) before forking, and setgroups in the child.

• 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).

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.

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.

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.

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.

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:

• 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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.

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 platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, mingw, MSVC 9, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24, mingw, MSVC 9.

• This function behaves incorrectly when a ‘-’ flag and a negative width are specified together, on some platforms: HP-UX 10.20.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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:

• 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.

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.

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.

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.

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:

• 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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>

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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, Cygwin 1.5.x, BeOS.

• This function does not support the ‘ls’ directive on some platforms: OpenBSD 4.0, Cygwin 1.5.x, Haiku.

• This function does not support precisions in the ‘ls’ directive correctly on some platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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.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.

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.

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.

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.

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, Cygwin 1.5.x, BeOS.

• This function does not support the ‘ls’ directive on some platforms: OpenBSD 4.0, Cygwin 1.5.x, Haiku.

• This function does not support precisions in the ‘ls’ directive correctly on some platforms: Solaris 11 2011-11.

• This function does not support format directives that access arguments in an arbitrary order, such as "%2$s", on some platforms: NetBSD 3.0, BeOS.

• This function doesn’t support the ' flag on some platforms: NetBSD 3.0, Cygwin 1.5.24.

• printf "%010f" of NaN and Infinity yields an incorrect result (padded with zeroes) on some platforms: 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, floatingpoint 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.

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.

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.

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.

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.

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.

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:

• This function has an incompatible API on some platforms: FreeBSD 10.

• 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. Portability problems not fixed by Gnulib:

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 secure_getenv

Gnulib module: secure getenv Portability problems fixed by Gnulib:

• This function is missing on some platforms: glibc 2.16, OS X 10.8, FreeBSD 9.1, NetBSD 6.0.1, OpenBSD 5.2, Minix 3.2.0, AIX 7.1, HP-UX 11, IRIX 6.5, Solaris 11, Cygwin, mingw, MSVC 9, Interix 6.1, BeOS. Portability problems not fixed by Gnulib:

• On platforms other than glibc 2.0 and later, the Gnulib replacement function always returns a null pointer, even when invoked in a non-setuid program.

12.70.30 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.

12.70.31 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.32 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.33 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.34 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.35 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.

12.70.36 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.37 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.38 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.39 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.40 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.

12.70.41 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.42 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.43 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:

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. 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.

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.

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:

• 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.

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:

• 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.

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.

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.

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 replacement function is not atomic; this matters in multi-threaded programs that spawn child processes.

Portability problems not fixed by Gnulib:

• SOCK CLOEXEC and SOCK NONBLOCK may not be defined as they’re also significant to the socket() function.

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.

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.

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:

• 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.

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.

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.

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.

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.

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>
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.

• This function has extra offset and options parameters: Mac OS X 10.4

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.

• This function has extra offset and options parameters: Mac OS X 10.4

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.

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.

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:

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.

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.

• This function can crash on some platforms: Cygwin 1.7.25.

Portability problems not fixed by Gnulib:

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.

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: Android LP64, mingw, MSVC 9.

• This function is not declared on some platforms: Android LP32.

• This function does not represent the true RLIMIT_NOFILE soft limit on some platforms: Android LP32, Cygwin 1.7.25. 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:

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 replacement function is not atomic; this matters in multi-threaded programs that spawn child processes. Portability problems not fixed by Gnulib:

• This function crashes rather than failing with EMFILE if no resources are left on some platforms: Cygwin 1.7.9. Note: This function portably supports the O_NONBLOCK flag only if the gnulib module

nonblocking is also used.

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.

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:

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.

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.

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.

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.

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 accommodate 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 accommodate all Unicode characters.

12.115.3 fputwc_unlocked

Gnulib module: — Portability problems fixed by Gnulib:

Portability problems not fixed by Gnulib:

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

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

12.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 accommodate 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 accommodate 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 accommodate 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.

• On AIX and Windows platforms, wchar_t is a 16-bit type and therefore cannot accommodate 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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate 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 accommodate 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 accommodate 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 accommodate all Unicode characters.

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 accommodate all Unicode characters.

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

13.3 Safe Allocation Macros

The standard C library malloc/realloc/calloc/free APIs are prone to a number of common coding errors. The safe-alloc module provides macros that make it easier to avoid many of them. It still uses the standard C allocation functions behind the scenes.

Some of the memory allocation mistakes that are commonly made are

• passing the incorrect number of bytes to malloc, especially when allocating an array,

• fail to check the return value of malloc and realloc for errors,

• forget to fully initialize memory just allocated with malloc,

• duplicate calls to free by forgetting to set the pointer variable to NULL,

• leaking memory in calls to realloc when that call fails.

The safe-alloc module addresses these problems in the following way:

• It defines macros that wrap around the standard C allocation functions. That makes it possible to use the compiler’s knowledge of the size of objects for allocation; it also allows setting pointers passed in as arguments when appropriate.

• It uses return values only for a success/failure error condition flag, and annotates them

with GCC’s __warn_unused_result__attribute.

• It uses calloc instead of malloc.

[Macro] int ALLOC (ptr)

Allocate sizeof(*ptr) bytes of memory and store the address of allocated memory in ptr. Fill the newly allocated memory with zeros.

Returns −1 on failure, 0 on success.

[Macro] int ALLOC N (ptr, count)

Allocate an array of count elements, each sizeof(*ptr) bytes long, and store the address of allocated memory in ptr. Fill the newly allocated memory with zeros.

Returns −1 on failure, 0 on success.

[Macro] int ALLOC N UNINITIALIZED (ptr, count)

Allocate an array of count elements, each sizeof(*ptr) bytes long, and store the address of allocated memory in ptr. The allocated memory is not initialized.

Returns −1 on failure, 0 on success.

[Macro] int REALLOC N (ptr, count)

Reallocate the memory pointed to by ptr to be big enough to hold at least count elements, each sizeof(*ptr) bytes long, and store the address of allocated memory in ptr. If reallocation fails, the ptr variable is not modified.

Returns −1 on failure, 0 on success.

[Macro] void FREE (ptr)

Free the memory stored in ptr and set ptr to NULL.

13.4 Compile-time Assertions

This module provides a header file verify.h that defines macros related to compile-time verification.

Two of these macros are verify (V) and verify_expr (V, EXPR). Both accept an integer constant expression argument V and verify that it is nonzero. If not, a compiletime error results.

These two macros implement 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.

verify (V); is a declaration; it can occur outside of functions. In contrast, verify_expr (V, EXPR) is an expression that returns the value of EXPR; it can be used in macros that expand to expressions. If EXPR is an integer constant expression, then verify_expr (V, EXPR) is also an integer constant expression. Although EXPR and verify_expr (V, EXPR) are guaranteed to have the same side effects and value and type (after integer promotion), they need not have the same type if EXPR’s type is an integer that is narrower than int

or unsigned int.

V should be an integer constant expression in the sense of the C standard. Its leaf operands should be integer, enumeration, or character constants; or sizeof expressions that return constants; or floating constants that are the immediate operands of casts. Outside a sizeof subexpression, V should not contain any assignments, function calls, comma operators, casts to non-integer types, or subexpressions whose values are outside the representable ranges for their types. If V is not an integer constant expression, then a compiler might reject a usage like ‘verify (V);’ even when V is nonzero.

Although the standard assert macro is a runtime test, C11 specifies a builtin _Static_

assert (V, STRING-LITERAL), its assert.h header has a similar macro named static_

assert, and C++11 has a similar static_assert builtin. These builtins and macros differ from verify in two major ways. First, they can also be used within a struct or union specifier, in place of an ordinary member declaration. Second, they require the programmer to specify a compile-time diagnostic as a string literal.

The verify.h header defines one more macro, assume (E), which expands to an expression of type void that causes the compiler to assume that E yields a nonzero value. E should be a scalar expression, and should not have side effects; it may or may not be evaluated. The behavior is undefined if E would yield zero. The main use of assume is optimization, as the compiler may be able to generate better code if it assumes E. For best results, E should be simple enough that a compiler can determine that it has no side effects: if E calls an external function or accesses volatile storage the compiler may not be able to optimize E away and assume (E) may therefore slow down the program.

Here are some example uses of these macros.

     #include <verify.h>
     #include <limits.h>
     #include <time.h>
     /* Verify that time_t is an integer type.  */
     verify ((time_t) 1.5 == 1);

/* Verify that time_t is no smaller than int.  */
verify (sizeof (int) <= sizeof (time_t));
/* Verify that time_t is signed.  */
verify ((time_t) -1 < 0);
/* Verify that time_t uses two's complement representation.  */
verify (~ (time_t) -1 == 0);
/* Return the maximum value of the integer type T,
   verifying that T is an unsigned integer type.
   The cast to (T) is outside the call to verify_expr
   so that the result is of type T
   even when T is narrower than unsigned int.  */
#define MAX_UNSIGNED_VAL(t) \
   ((T) verify_expr (0 < (T) -1, -1))
/* Return T divided by CHAR_MAX + 1, where behavior is
   undefined if T < 0.  In the common case where CHAR_MAX
   is 127 the compiler can therefore implement the division
   by shifting T right 7 bits, an optimization that would
   not be valid if T were negative.  */
time_t
time_index (time_t t)
{
  assume (0 <= t);
  return t / (CHAR_MAX + 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 precondition testing, wraparound behavior where signed integer arithmetic is guaranteed to be modular, saturation semantics where overflow reliably yields an extreme value, undefined behavior sanitizers where overflow is guaranteed to trap, and various static analysis techniques.

Gnulib supports wraparound arithmetic and precondition testing, as these are relatively easy to support portably and efficiently. There are two families of precondition tests: the first, for integer types, is easier to use, while the second, for integer ranges, has a simple and straightforward portable implementation.

13.5.1 Arithmetic Type Properties

TYPE_IS_INTEGER (t) is an arithmetic constant expression that is 1 if the arithmetic type t is an integer type. _Bool counts as an integer type.

TYPE_SIGNED (t) is an arithmetic constant expression that is 1 if the real type t is a signed integer type or a floating type. If t is an integer type, TYPE_SIGNED (t) is an integer constant expression.

EXPR_SIGNED (e) is 1 if the real expression e has a signed integer type or a floating type. If e is an integer constant expression or an arithmetic constant expression, EXPR_SIGNED (e) is likewise. Although e is evaluated, if e is free of side effects then EXPR_SIGNED (e) is typically optimized to a constant.

Example usage:

     #include <intprops.h>
     #include <time.h>
     enum
     {
       time_t_is_signed_integer =
         TYPE_IS_INTEGER (time_t) && TYPE_SIGNED (time_t)
     };
     int
     CLOCKS_PER_SEC_is_signed (void)
     {
       return EXPR_SIGNED (CLOCKS_PER_SEC);
     }

13.5.2 Integer Bounds

INT_BUFSIZE_BOUND (t) is an integer constant expression that is a bound on the size of the string representing an integer type or expression t in decimal notation, including the terminating null character and any leading - character. For example, if INT_STRLEN_BOUND (int) is 12, any value of type int can be represented in 12 bytes or less, including the terminating null. The bound is not necessarily tight.

Example usage:

     #include <intprops.h>
     #include <stdio.h>
     int
     int_strlen (int i)
     {
       char buf[INT_BUFSIZE_BOUND (int)];
       return sprintf (buf, "%d", i);

     }

INT_STRLEN_BOUND (t) is an integer constant expression that is a bound on the length of the string representing an integer type or expression t in decimal notation, including any leading - character. This is one less than INT_BUFSIZE_BOUND (t).

TYPE_MINIMUM (t) and TYPE_MAXIMUM (t) are integer constant expressions equal to the minimum and maximum values of the integer type t. These expressions are of the type t (or more precisely, the type t after integer promotions).

Example usage:

     #include <stdint.h>
     #include <sys/types.h>
     #include <intprops.h>
     int
     in_off_t_range (intmax_t a)
     {
       return TYPE_MINIMUM (off_t) <= a && a <= TYPE_MAXIMUM (off_t);
     }

13.5.3 Wraparound Arithmetic with Signed Integers

Signed integer arithmetic has undefined behavior on overflow in C. Although almost all modern computers use two’s complement signed arithmetic that is well-defined to wrap around, C compilers routinely optimize assuming that signed integer overflow cannot occur, which means that a C program cannot easily get at the underlying machine arithmetic. For example, on a typical machine with 32-bit two’s complement int the expression INT_MAX + 1 does not necessarily yield INT_MIN, because the compiler may do calculations with a 64-bit register, or may generate code that traps on signed integer overflow.

The following macros work around this problem by storing the wraparound value, i.e., the low-order bits of the correct answer, and by returning an overflow indication. For example,

if i is of type int, INT_ADD_WRAPV (INT_MAX, 1, &i) sets i to INT_MIN and returns 1 on a

two’s complement machine. On newer platforms, these macros are typically more efficient than the overflow-checking macros. See Section 13.5.4 [Integer Type Overflow], page 616.

Example usage:

     #include <intprops.h>
     #include <stdio.h>
     /* Print the low order bits of A * B,
        reporting whether overflow occurred.  */
     void
     print_product (long int a, long int b)
     {
       long int r;
       int overflow = INT_MULTIPLY_WRAPV (a, b, &r);
       printf ("result is %ld (%s)\n", r,
               (overflow
                ? "after overflow"
                : "no overflow"));

     }

These macros have the following restrictions:

• Their first two arguments must be integer expressions.

• Their last argument must be a non-null pointer to a signed integer. To calculate a wraparound unsigned integer you can use ordinary C arithmetic; to tell whether it overflowed, you can use the overflow-checking macros.

• They may evaluate their arguments zero or multiple times, so the arguments should not have side effects.

• They are not necessarily constant expressions, even if all their arguments are constant expressions.

INT_ADD_WRAPV (a, b, r)

Store the low-order bits of the sum of a and b into *r. Return true if overflow occurred, false if the low-order bits are the mathematically-correct sum. See above for restrictions.

INT_SUBTRACT_WRAPV (a, b, r)

Store the low-order bits of the difference between a and b into *r. Return true if overflow occurred, false if the low-order bits are the mathematically-correct difference. See above for restrictions.

INT_MULTIPLY_WRAPV (a, b, r)

Store the low-order bits of the product of a and b into *r. Return true if overflow occurred, false if the low-order bits are the mathematically-correct product. See above for restrictions.

13.5.4 Integer Type Overflow

Although unsigned integer arithmetic wraps around modulo a power of two, signed integer arithmetic has undefined behavior on overflow in C. Almost all modern computers use two’s complement signed arithmetic that is well-defined to wrap around, but C compilers routinely optimize based on the assumption that signed integer overflow cannot occur, which means that a C program cannot easily get at the underlying machine behavior. For example, the signed integer expression (a + b < b) != (a < 0) is not a reliable test for whether a + b overflows, because a compiler can assume that signed overflow cannot occur and treat the entire expression as if it were false.

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 are integer constant expressions if their arguments are. They are typically easier to use than the integer range overflow macros (see Section 13.5.5 [Integer Range Overflow], page 618), and they support more operations and evaluation contexts than the wraparound macros (see Section 13.5.3 [Wraparound Arithmetic], page 615).

Example usage:

     #include <intprops.h>
     #include <limits.h>
     #include <stdio.h>

/* Print A * B if in range, an overflow
indicator otherwise.  */
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);
}
/* Does the product of two ints always fit
in a long int?  */
enum {
INT_PRODUCTS_FIT_IN_LONG
= ! (INT_MULTIPLY_OVERFLOW
    ((long int) INT_MIN, INT_MIN))
};

These macros have the following restrictions:

• Their arguments must be integer expressions.

• They may evaluate their arguments zero or multiple times, so the arguments should not have side effects.

These macros are tuned for their last argument being a constant.

INT_ADD_OVERFLOW (a, b)

Yield 1 if a + b would overflow. See above for restrictions.

INT_SUBTRACT_OVERFLOW (a, b)

Yield 1 if a - b would overflow. See above for restrictions.

INT_NEGATE_OVERFLOW (a)

Yields 1 if -a would overflow. See above for restrictions.

INT_MULTIPLY_OVERFLOW (a, b)

Yield 1 if a * b would overflow. See above for restrictions.

INT_DIVIDE_OVERFLOW (a, b)

Yields 1 if a / b would overflow. See above for restrictions. Division overflow can happen on two’s complement hosts when dividing the most negative integer by −1. This macro does not check for division by zero.

INT_REMAINDER_OVERFLOW (a, b)

Yield 1 if a % b would overflow. See above for restrictions. Remainder overflow can happen on two’s complement hosts when dividing the most negative integer by −1; although the mathematical result is always 0, in practice some implementations trap, so this counts as an overflow. This macro does not check for division by zero.

INT_LEFT_SHIFT_OVERFLOW (a, b)

Yield 1 if a << b would overflow. See above for restrictions. The C standard says that behavior is undefined for shifts unless 0≤b<w where w is a’s word width, and that when a is negative then a << b has undefined behavior, but this macro does not check these other restrictions.

13.5.5 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 implementationdefined behavior. They are 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 616.

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

(https: / / www . securecoding . cert . org / confluence / display / seccode /
INT30-C   .   +Ensure+that+unsigned+integer+operations+do+not+wrap)”  and

“INT32-C. Ensure that operations on signed integers do not result in overflow

(https://www.securecoding.cert.org/confluence/display/seccode/INT32-C.
+Ensure+that+operations+on+signed+integers+do+not+result+in+overflow)”,

Gnulib’s implementation was derived independently of CERT’s suggestions.

Example usage:

     #include <intprops.h>
     #include <limits.h>
     #include <stdio.h>
     void
     print_product (long int a, long int b)
     {
       if (INT_MULTIPLY_RANGE_OVERFLOW (a, b, LONG_MIN, LONG_MAX))
         printf ("multiply would overflow");
       else
         printf ("product is %ld", a * b);
     }
     /* Does the product of two ints always fit
        in a long int?  */
     enum {
       INT_PRODUCTS_FIT_IN_LONG
         = ! (INT_MULTIPLY_RANGE_OVERFLOW
              ((long int) INT_MIN, (long int) INT_MIN,
               LONG_MIN, LONG_MAX))
     };

These macros have the following restrictions:

• Their arguments must be integer expressions.

• They may evaluate their arguments zero or multiple times, so the arguments should not have side effects.

• The arithmetic arguments (including the min and max arguments) must be of the same integer type after the usual arithmetic conversions, and the type must have minimum value min and maximum max. Unsigned values should use a zero min of the proper type, for example, (unsigned int) 0.

These macros are tuned for constant min and max. For commutative operations such as a + b, they are also tuned for constant b.

INT_ADD_RANGE_OVERFLOW (a, b, min, max)

Yield 1 if a + b would overflow in [min,max] integer arithmetic. See above for restrictions.

INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max)

Yield 1 if a - b would overflow in [min,max] integer arithmetic. See above for restrictions.

INT_NEGATE_RANGE_OVERFLOW (a, min, max)

Yield 1 if -a would overflow in [min,max] integer arithmetic. See above for restrictions.

INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max)

Yield 1 if a * b would overflow in [min,max] integer arithmetic. See above for restrictions.

INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)

Yield 1 if a / b would overflow in [min,max] integer arithmetic. See above for restrictions. Division overflow can happen on two’s complement hosts when dividing the most negative integer by −1. This macro does not check for division by zero.

INT_REMAINDER_RANGE_OVERFLOW (a, b, min, max)

Yield 1 if a % b would overflow in [min,max] integer arithmetic. See above for restrictions. Remainder overflow can happen on two’s complement hosts when dividing the most negative integer by −1; although the mathematical result is always 0, in practice some implementations trap, so this counts as an overflow. This macro does not check for division by zero.

INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, min, max)

Yield 1 if a << b would overflow in [min,max] integer arithmetic. See above for restrictions. Here, min and max are for a only, and b need not be of the same type as the other arguments. The C standard says that behavior is undefined for shifts unless 0≤b<w where w is a’s word width, and that when a is negative then a << b has undefined behavior, but this macro does not check these other restrictions.

13.6 Extern inline functions

The extern-inline module supports the use of C99-style extern inline functions so that the code still runs on pre-C99 compilers.

C code ordinarily should not use inline. Typically it is better to let the compiler figure out whether to inline, as compilers are pretty good about optimization nowadays. In this sense, inline is like register, another keyword that is typically no longer needed.

Functions defined (not merely declared) in headers are an exception, as avoiding inline would commonly cause problems for these functions. Suppose aaa.h defines the function aaa_fun, and aaa.c, bbb.c and ccc.c all include aaa.h. If code is intended to portable to pre-C99 compilers, aaa_fun cannot be declared with the C99 inline keyword. This problem cannot be worked around by making aaa_fun an ordinary function, as it would be defined three times with external linkage and the definitions would clash. Although aaa_fun could be a static function, with separate compilation if aaa_fun is not inlined its code will appear in the executable three times.

To avoid this code bloat, aaa.h can do this:

/* aaa.h */
/* #include any other headers here */
#ifndef _GL_INLINE_HEADER_BEGIN
 #error "Please include config.h first."
#endif
_GL_INLINE_HEADER_BEGIN
#ifndef AAA_INLINE
# define AAA_INLINE _GL_INLINE
#endif
...
AAA_INLINE int
aaa_fun (int i)
{
  return i + 1;
}
...
_GL_INLINE_HEADER_END

and aaa.c can do this:

/* aaa.c */
#include <config.h>
#define AAA_INLINE _GL_EXTERN_INLINE
#include <aaa.h>

whereas bbb.c and ccc.c can include aaa.h in the usual way. C99 compilers expand AAA_

INLINE to C99-style inline usage, where aaa_fun is declared extern inline in aaa.c

and plain inline in other modules. Pre-C99 compilers that are compatible with GCC use GCC-specific syntax to accomplish the same ends. Other pre-C99 compilers use static inline so they suffer from code bloat, but they are not mainline platforms and will die out eventually.

_GL_INLINE is a portable alternative to C99 plain inline.

_GL_EXTERN_INLINE is a portable alternative to C99 extern inline.

Invoke _GL_INLINE_HEADER_BEGIN before all uses of _GL_INLINE in an include file. This suppresses some bogus warnings in GCC versions before 5.1. If an include file includes other files, it is better to invoke this macro after including the other files.

Invoke _GL_INLINE_HEADER_END after all uses of _GL_INLINE in an include file.

13.7 Character and String Functions in C Locale

The functions in this section are similar to the generic string functions from the standard C library, except that

• They behave as if the locale was set to the "C" locale, even when the locale is different, and/or

• They are specially optimized for the case where all characters are plain ASCII characters.

13.7.1 c-ctype

The c-ctype module contains functions operating on single-byte characters, like the functions in <ctype.h>, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The functions are:

      extern bool c_isascii (int c);
      extern bool c_isalnum (int c);
      extern bool c_isalpha (int c);
      extern bool c_isblank (int c);
      extern bool c_iscntrl (int c);
      extern bool c_isdigit (int c);
      extern bool c_islower (int c);
      extern bool c_isgraph (int c);
      extern bool c_isprint (int c);
      extern bool c_ispunct (int c);
      extern bool c_isspace (int c);
      extern bool c_isupper (int c);
      extern bool c_isxdigit (int c);
      extern int c_tolower (int c);
      extern int c_toupper (int c);

These functions assign properties only to ASCII characters.

The c argument can be a char or unsigned char value, whereas the corresponding functions in <ctype.h> take an argument that is actually an unsigned char value.

The c_is* functions return ‘bool’, where the corresponding functions in <ctype.h> return ‘int’ for historical reasons.

Note: The <ctype.h> functions support only unibyte locales.

13.7.2 c-strcase

The c-strcase module contains case-insensitive string comparison functions operating on single-byte character strings, like the functions in <strings.h>, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The functions are:

      extern int c_strcasecmp (const char *s1, const char *s2);
      extern int c_strncasecmp (const char *s1, const char *s2, size_t n);

For case conversion here, only ASCII characters are considered to be upper case or lower case.

Note: The functions strcasecmp, strncasecmp from <strings.h> support only unibyte locales; for multibyte locales, you need the functions mbscasecmp, mbsncasecmp,

mbspcasecmp.

13.7.3 c-strcaseeq

The c-strcaseeq module contains an optimized case-insensitive string comparison function operating on single-byte character strings, that operate as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The functions is actually implemented as a macro:

      extern int STRCASEEQ (const char *s1, const char *s2,
                            int s20, int s21, int s22, int s23, int s24, int s25,
                            int s26, int s27, int s28);

s2 should be a short literal ASCII string, and s20, s21, ... the individual characters of s2.

For case conversion here, only ASCII characters are considered to be upper case or lower case.

13.7.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.7.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.

13.7.6 c-strtod

The c-strtod module contains a string to number (‘double’) conversion function operating on single-byte character strings, that operates as if the locale encoding was ASCII. (The "C" locale on many systems has the locale encoding "ASCII".)

The function is:

      extern double c_strtod (const char *string, char **endp);

In particular, only a period ‘.’ is accepted as decimal point, even when the current locale’s notion of decimal point is a comma ‘,’, and no characters outside the basic character set are accepted.

On platforms without strtod_l, this function is not safe for use in multi-threaded applications since it calls setlocale.

13.7.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.8 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.9 error and progname

The error function uses the program_name variable, but does not depend on the progname module. Why? Because error is released under the LGPL, whereas progname is GPL. RMS does not want additional baggage accompanying the error module, so an LGPL user must provide their own replacement program_name, and a GPL user should manually specify using the progname module.

Additionally, using the progname module is not something that can be done implicitly. It requires that every main function be modified to set program_name as one of its first actions.

13.10 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 si-

gned ‘long’.

13.11 Searching for Libraries

The following macros check for the presence or location of certain C, C++, or Fortran library archive files.

Simple Library Tests

The macros AC_CHECK_LIB, AC_SEARCH_LIBS from GNU Autoconf check for the presence of certain C, C++, or Fortran library archive files. The libraries are looked up in the default linker path—a system dependent list of directories, that usually contains the /usr/lib directory—and those directories given by -L options in the LDFLAGS variable.

Locating Libraries

The following macros, defined in the Gnulib module havelib, search for the location of certain C, C++, or Fortran library archive files and make the found location available to the compilation process and to further Autoconf tests.

[Macro] AC_LIB_LINKFLAGS(name, [dependencies])

Searches for lib<name> and the libraries corresponding to explicit and implicit dependencies. Sets and AC SUBSTs the LIB<NAME> and LTLIB<NAME> variables (with <NAME> in upper case) and augments the CPPFLAGS variable by -I options. This macro should be used when lib<name> is expected to be found.

[Macro] AC_LIB_HAVE_LINKFLAGS(name, [dependencies], [includes],
    [testcode], [missing-message])

Searches for lib<name> and the libraries corresponding to explicit and implicit dependencies, together with the specified include files and the ability to compile and link the specified testcode. The missing-message defaults to no and may contain additional hints for the user. If found, it sets and AC SUBSTs HAVE_LIB<NAME>=yes and the LIB<NAME> and LTLIB<NAME> variables (with <NAME> in upper case) and augments the CPPFLAGS variable by -I options, and #defines HAVE_LIB<NAME> to 1. Otherwise,

 it sets and AC SUBSTs HAVE_LIB<NAME>=no and LIB<NAME> and LTLIB<NAME> to

empty.

These macros assume that when a library is installed in some_directory/lib, its include

files are installed in some_directory/include.
The complexities that AC_LIB_LINKFLAGS and AC_LIB_HAVE_LINKFLAGS deal with are

the following:

• The library is not necessarily already in the search path (CPPFLAGS for the include file search path, LDFLAGS for the library search path). The macro provides a ‘--with-lib<name>’ option. The user of the ‘configure’ script can use this option to indicate the location of the library and its include files. If not provided, the --prefix directory is searched as well.

• The library is not necessarily already in the run time library search path. To avoid the need for setting an environment variable like LD_LIBRARY_PATH, the macro adds the appropriate run time search path options to the LIB<NAME> variable. This works on most systems. It can also be inhibited: The user of ‘configure’ can use the --disable-rpath option to force an installation that doesn’t contain hardcoded library search paths but instead may require the use of an environment variable like LD_LIBRARY_

PATH.

The macros also set a variable LTLIB<NAME>, that should be used when linking with libtool. Both LTLIB<NAME> and LIB<NAME> contain essentially the same option, but where LIB<NAME> contains platform dependent flags like ‘-Wl,-rpath’, LTLIB<NAME> contains platform independent flags like ‘-R’.

Example of using AC_LIB_LINKFLAGS

Suppose you want to use libz, the compression library.

1. In configure.ac you add the line

        AC_CONFIG_AUX_DIR([build-aux])
        AC_LIB_LINKFLAGS([z])

Note that since the AC_LIB_LINKFLAGS invocation modifies the CPPFLAGS, it should precede all tests that check for header files, declarations, structures or types.

2. To the package’s build-aux directory you add the file config.rpath, also part of the Gnulib havelib module. (gnulib-tool will usually do this for you automatically.)

3. In Makefile.in you add @LIBZ@ to the link command line of your program. Or, if you are using Automake, you add $(LIBZ) to the LDADD variable that corresponds to your program.

Dependencies

The dependencies list is a space separated list of library names that libname is known to depend upon. Example: If libfooy depends on libfoox, and libfooz depends on libfoox and libfooy, you can write:

      AC_LIB_LINKFLAGS([foox])
      AC_LIB_LINKFLAGS([fooy], [foox])
      AC_LIB_LINKFLAGS([fooz], [foox fooy])

Explicit dependencies are necessary if you cannot assume that a .la file, created by libtool, is installed. If you can assume that libfooy.la is installed by libtool (and has not been omitted by the package distributor!), you can omit the explicit dependency and just write

      AC_LIB_LINKFLAGS([fooy])

This way, you don’t need to know in advance which libraries the needed library depends upon.

Static vs. shared

The macros find the libraries regardless whether they are installed as shared or static libraries.

CPPFLAGS vs. LDFLAGS

The macros determine the directories that should be added to the compiler preprocessor’s search path and to the linker’s search path. For the compiler preprocessor, -I options with the necessary directories are added to the CPPFLAGS variable, for use by the whole package. For the linker, appropriate options are added to the LIB<NAME> and LTLIB<NAME> variables, for use during linking by those programs and libraries that need the dependency on lib<name>. You need to use the value of LIB<NAME> or LTLIB<NAME> in the Makefiles. LTLIB<NAME> is for use with libtool, whereas LIB<NAME> is for when libtool is not involved in linking.

The macros do not check whether the include files and the library found match. If you want to verify this at configure time, one technique is to have a version number in the include files and a version number in the library, like this:

        #define LIBNAME_VERSION 10203
        extern int libname_version; /* initialized to LIBNAME_VERSION */

and use a test like

        AC_TRY_RUN([int main () { return libname_version != LIBNAME_VERSION; }])

Bi-arch systems

A bi-arch system is one where

• the processor has a 32-bit execution mode and a 64-bit execution mode (for example, x86 64, ia64, sparc64, powerpc64), and

• 32-bit mode libraries and executables and 64-bit mode libraries are both installed, and • 32-bit mode libraries and object files cannot be mixed with 64-bit mode ones.

On several types of such systems, for historical reasons, the 32-bit libraries are installed in prefix/lib, whereas the 64-bit libraries are installed in

• prefix/lib64 on many glibc systems, • prefix/lib/64 on Solaris systems.

On such systems, in 64-bit mode, configure will search for the libraries in prefix/lib64 or prefix/lib/64, respectively, not in prefix/lib. A user can adhere to these systemwide conventions by using the ‘--libdir’ option when installing packages. When a user has already installed packages in 64-bit mode using the GNU default ‘--libdir=prefix/lib’, he can make this directory adhere to the system-wide convention by placing a symbolic link:

On glibc systems:

      ln -s lib prefix/lib64

On Solaris systems:

      ln -s . prefix/lib/64

13.12 Controlling the Exported Symbols of Shared Libraries

The lib-symbol-visibility module allows precise control of the symbols exported by a shared library. This is useful because

• It prevents abuse of undocumented APIs of your library. Symbols that are not exported from the library cannot be used. This eliminates the problem that when the maintainer of the library changes internals of the library, maintainers of other projects cry “breakage”. Instead, these maintainers are forced to negotiate the desired API from the maintainer of the library.

• It reduces the risk of symbol collision between your library and other libraries. For example, the symbol ‘readline’ is defined in several libraries, most of which don’t have the same semantics and the same calling convention as the GNU readline library.

• It reduces the startup time of programs linked to the library. This is because the dynamic loader has less symbols to process.

• It allows the compiler to generate better code. Within a shared library, a call to a function that is a global symbol costs a “call” instruction to a code location in the socalled PLT (procedure linkage table) which contains a “jump” instruction to the actual function’s code. (This is needed so that the function can be overridden, for example by a function with the same name in the executable or in a shared library interposed with LD_PRELOAD.) Whereas a call to a function for which the compiler can assume that it is in the same shared library is just a direct “call” instructions. Similarly for variables: A reference to a global variable fetches a pointer in the so-called GOT (global offset table); this is a pointer to the variable’s memory. So the code to access it is two memory load instructions. Whereas for a variable which is known to reside in the same shared library, it is just a direct memory access: one memory load instruction.

There are traditionally three ways to specify the exported symbols of a shared library.

• The programmer specifies the list of symbols to be exported when the shared library is created. Usually a command-line option is passed to the linker, with the name of a file containing the symbols. The upside of this approach is flexibility: it allows the same code to be used in different libraries with different export lists. The downsides are: 1. it’s a lot of maintenance overhead when the symbol list is platform dependent, 2. it doesn’t work well with C++, due to name mangling.

• The programmer specifies a “hidden” attribute for every variable and function that shall not be exported. The drawbacks of this approach are: Symbols are still exported from the library by default. It’s a lot of maintenance work to mark every non- exported variable and function. But usually the exported API is quite small, compared to the internal API of the library. And it’s the wrong paradigm: It doesn’t force thinking when introducing new exported API.

• The programmer specifies a “hidden” attribute for all files that make up the shared library, and an “exported” attribute for those symbols in these files that shall be exported. This is perfect: It burdens the maintainer only for exported API, not for library-internal API. And it keeps the annotations in the source code.

GNU libtool’s -export-symbols option implements the first approach. This gnulib module implements the third approach. For this it relies on GNU GCC 4.0

or newer, namely on its ‘-fvisibility=hidden’ command-line option and the “visibility” attribute. (The “visibility” attribute was already supported in GCC 3.4, but without the command line option, introduced in GCC 4.0, the third approach could not be used.)

More explanations on this subject can be found in http://gcc.gnu.org/wiki/ Visibility, which contains more details on the GCC features and additional advice for C++

libraries, and in Ulrich Drepper’s paper http://people.redhat.com/drepper/dsohowto.

pdf, which also explains other tricks for reducing the startup time impact of shared libraries.

The gnulib autoconf macro gl_VISIBILITY tests for GCC 4.0 or newer. It defines a Makefile variable @CFLAG_VISIBILITY@ containing ‘-fvisibility=hidden’ or nothing. It also defines as a C macro and as a substituted variable: @HAVE VISIBILITY@. Its value is 1 when symbol visibility control is supported, and 0 otherwise.

To use this module in a library, say libfoo, you will do these steps:

1. Add @CFLAG_VISIBILITY@ or (in a Makefile.am) $(CFLAG_VISIBILITY) to the

CFLAGS for the compilation of the sources that make up the library.

2. Add a C macro definition, say ‘-DBUILDING_LIBFOO’, to the CPPFLAGS for the compilation of the sources that make up the library.

3. Define a macro specific to your library like this.

      #if BUILDING_LIBFOO && HAVE_VISIBILITY
      #define LIBFOO_DLL_EXPORTED __attribute__((__visibility__("default")))
      #else
      #define LIBFOO_DLL_EXPORTED
      #endif

This macro should be enabled in all public header files of your library.

4. Annotate all variable, function and class declarations in all public header files of your library with ‘LIBFOO_DLL_EXPORTED’. This annotation can occur at different locations: between the ‘extern’ and the type or return type, or just before the entity being declared, or after the entire declarator. My preference is to put it right after ‘extern’, so that the declarations in the header files remain halfway readable.

Note that the precise control of the exported symbols will not work with other compilers than GCC >= 4.0, and will not work on systems where the assembler or linker lack the support of “hidden” visibility. Therefore, it’s good if, in order to reduce the risk of collisions with symbols in other libraries, you continue to use a prefix specific to your library for all non-static variables and functions and for all C++ classes in your library.

Note about other compilers: MSVC support can be added easily, by extending the definition of the macro mentioned above, to something like this:

      #if BUILDING_LIBFOO && HAVE_VISIBILITY
      #define LIBFOO_DLL_EXPORTED __attribute__((__visibility__("default")))
      #elif BUILDING_LIBFOO && defined _MSC_VER
      #define LIBFOO_DLL_EXPORTED __declspec(dllexport)
      #elif defined _MSC_VER
      #define LIBFOO_DLL_EXPORTED __declspec(dllimport)
      #else
      #define LIBFOO_DLL_EXPORTED
      #endif

13.13 LD Version Scripts

The lib-symbol-versions module can be used to add shared library versioning support. Currently, only GNU LD and the Solaris linker supports this.

Version scripts provides information that can be used by GNU/Linux distribution packaging tools. For example, Debian has a tool dpkg-shlibdeps that can determine the minimal required version of each dependency (by looking at the symbol list) and stuff the information into the Debian specific packaging files.

For more information and other uses of version scripts, see Ulrich Drepper’s paper

http://people.redhat.com/drepper/dsohowto.pdf

You use the module by importing it to your library, and then add the following lines to the Makefile.am that builds the library:

      if HAVE_LD_VERSION_SCRIPT
      libfoo_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libfoo.map
      endif

The version script file format is documented in the GNU LD manual, but a small example would be:

      LIBFOO_1.0 {
        global:
          libfoo_init; libfoo_doit; libfoo_done;
        local:
          *;
      };

If you target platforms that do not support linker scripts (i.e., all platforms that doesn’t use GNU LD) you may want to consider a more portable but less powerful alternative: libtool -export-symbols. It will hide internal symbols from your library, but will not add ELF versioning symbols. Your usage would then be something like:

      if HAVE_LD_VERSION_SCRIPT
      libfoo_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libfoo.map
      else
      libfoo_la_LDFLAGS += -export-symbols $(srcdir)/libfoo.sym
      endif

See the Libtool manual for the file syntax, but a small example would be:

      libfoo_init
      libfoo_doit
      libfoo_done

To avoid the need for a *.sym file if your symbols are easily expressed using a regular

expression, you may use -export-symbols-regex:
      if HAVE_LD_VERSION_SCRIPT
      libfoo_la_LDFLAGS += -Wl,--version-script=$(srcdir)/libfoo.map
      else
      libfoo_la_LDFLAGS += -export-symbols-regex '^libfoo_.*'
      endif

For more discussions about symbol visibility, rather than shared library versioning, see the visibility module (see Section 13.12 [Exported Symbols of Shared Libraries], page 627).

13.14 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. Ho-

wever, it is not part of a standard Visual Studio installation. Further, it is documented as being an unreliable process.

• Use DLLTOOL. The dlltool is part of the MinGW suite, and thus not part of a standard Visual Studio installation. The documentation for the IMPDEF tool claims that DLLTOOL is the wrong tool for this job. Finally, DLLTOOL does not generate DEF files directly, so it requires post-processing of the output.

If you are using libtool to build your shared library, here is how to use this module. Import lib-msvc-compat to your project, and then add the following lines to the Makefile.am that builds the library:

      if HAVE_LD_OUTPUT_DEF
      libfoo_la_LDFLAGS += -Wl,--output-def,libfoo-$(DLL_VERSION).def
      defexecdir = $(bindir)
      defexec_DATA = libfoo-$(DLL_VERSION).def
      DISTCLEANFILES += $(defexec_DATA)
      endif

The DLL_VERSION variable needs to be defined. It should be the shared library version number used in the DLL filename. For Windows targets you compute this value from the values you pass to Libtool’s -version-info. Assuming you have variables LT_CURRENT and LT_AGE defined for the CURRENT and AGE libtool version integers, you compute DLL_VERSION as follows:

      DLL_VERSION=`expr ${LT_CURRENT} - ${LT_AGE}`
      AC_SUBST(DLL_VERSION)

13.15 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 other binary distributions solve the “ease of installation” problem, but they hardwire path names, usually to /usr or /usr/local. This means that users need root privileges to install a binary package, and prevents installing two different versions of the same binary package.

A relocatable program can be moved or copied to a different location on the file system. It is possible to make symlinks to the installed and moved programs, and invoke them through the symlink. It is possible to do the same thing with a hard link only if the hard link file is in the same directory as the real program.

The relocatable-prog module aims to ease the process of making a GNU program relocatable. It helps overcome two obstacles. First, it aids with relocating the hard-coded references to absolute file names that GNU programs often contain. These references must be fixed up at runtime if a program is to be successfully relocated. The relocatable-prog module provides a function relocate that does this job.

Second, the loader must be able to find shared libraries linked to relocatable executables or referenced by other shared libraries linked to relocatable executables. The relocatable-prog module helps out here in a platform-specific way:

• On GNU/Linux, it adds a linker option (-rpath) that causes the dynamic linker to search for libraries in a directory relative to the location of the invoked executable.

• On other Unix systems, it installs a wrapper executable. The wrapper sets the environment variable that controls shared library searching (usually LD_LIBRARY_PATH) and then invokes the real executable. This approach does not always work. On OpenBSD and OpenServer, prereleases of Libtool 1.5 put absolute file names of libraries in executables, which prevents searching any other locations.

• On Windows, the executable’s own directory is searched for libraries, so installing shared libraries into the executable’s directory is sufficient.

You can make your program relocatable by following these steps:

1. Import the relocatable-prog module.

2. In every program, add to main as the first statement (even before setting the locale or

doing anything related to libintl):

         set_program_name (argv[0]);

The prototype for this function is in progname.h.

3. Everywhere where you use a constant pathname from installation-time, wrap it in

relocate so it gets translated to the run-time situation. Example:

     bindtextdomain (PACKAGE, LOCALEDIR);

becomes:

     bindtextdomain (PACKAGE, relocate (LOCALEDIR));

The prototype for this function is in relocatable.h.

4. The set_program_name function can also configure some additional libraries to relocate files that they access, by defining corresponding C preprocessor symbols to 1. The libraries for which this is supported and the corresponding preprocessor symbols are:

libcharset DEPENDS_ON_LIBCHARSET
libiconv DEPENDS_ON_LIBICONV
libintl  DEPENDS_ON_LIBINTL

Defining the symbol for a library makes every program in the package depend on that library, whether the program really uses the library or not, so this feature should be used with some caution.

5. If your package installs shell scripts, also import the relocatable-script module. Then, near the beginning of each shell script that your package installs, add the following:

     @relocatable_sh@
     if test "@RELOCATABLE@" = yes; then
       exec_prefix="@exec_prefix@"
       bindir="@bindir@"
       orig_installdir="$bindir" # see Makefile.am's *_SCRIPTS variables
       func_find_curr_installdir # determine curr_installdir
       func_find_prefixes
       relocate () {
         echo "$1/" \
         | sed -e "s%^${orig_installprefix}/%${curr_installprefix}/%" \
         | sed -e 's,/$,,'
       }
     else
       relocate () {
         echo "$1"
       }
     fi
     # Get some relocated directory names.
     sysconfdir=`relocate "@sysconfdir@"`
     some_datadir=`relocate "@datadir@/something"`

You must adapt the definition of orig_installdir, depending on where the script gets installed. Also, at the end, instead of sysconfdir and some_datadir, transform those variables that you need.

6. If your package installs Perl scripts, also import the relocatable-perl module. Then, near the beginning of each Perl script that your package installs, add the following:

@relocatable_pl@
if ("@RELOCATABLE@" eq "yes") {
  my $exec_prefix = "@exec_prefix@";
  my $orig_installdir = "@bindir@"; # see Makefile.am's *_SCRIPTS variables
  my ($orig_installprefix, $curr_installprefix) = find_prefixes($orig_installdir, find_curr_installdir());
  sub relocate { # the subroutine is defined whether or not the enclosing block is executed
    my ($dir) = @_;
    if ("@RELOCATABLE@" eq "yes") {
      $dir =~ s%^$orig_installprefix/%$curr_installprefix/%;
      $dir =~ s,/$,,;
    }
    return $dir;
  }
}
# Get some relocated directory names.
$sysconfdir = relocate("@sysconfdir@");
$some_datadir = relocate(@datadir@/something");

You must adapt the definition of $orig_installdir, depending on where the script gets installed. Also, at the end, instead of sysconfdir and some_datadir, transform those variables that you need.

7. In your Makefile.am, for every program foo that gets installed in, say, $(bindir),

you add:

foo_CPPFLAGS = -DINSTALLDIR=\"$(bindir)\"
if RELOCATABLE_VIA_LD
foo_LDFLAGS = `$(RELOCATABLE_LDFLAGS) $(bindir)`
endif

8. 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 RELOCATA-BLE 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 RELOCATA-BLE CONFIG H DIR to its directory, e.g.

RELOCATABLE_CONFIG_H_DIR='$(top_builddir)/src'

13.16 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.17 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.

13.18 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.19 manywarnings

The manywarnings module allows you to enable as many GCC warnings as possible for your package. The purpose is to protect against introducing new code that triggers warnings that weren’t already triggered by the existing code base.

An example use of the module is as follows:

      gl_MANYWARN_ALL_GCC([warnings])
      # Set up the list of the pointless, undesired warnings.
      nw=
      nw="$nw -Wsystem-headers"       # Don't let system headers trigger warnings
      nw="$nw -Wundef"                # All compiler preprocessors support #if UNDEF
      nw="$nw -Wtraditional"          # All compilers nowadays support ANSI C
      nw="$nw -Wconversion"           # These warnings usually don't point to mistakes.
      nw="$nw -Wsign-conversion"      # Likewise.
      # Enable all GCC warnings not in this list.
      gl_MANYWARN_COMPLEMENT([warnings], [$warnings], [$nw])
      for w in $warnings; do
        gl_WARN_ADD([$w])
      done

This module is meant to be used by developers who are not very experienced regarding the various GCC warning options. In the beginning you will set the list of undesired warnings (‘nw’ in the example above) to empty, and compile the package with all possible warnings enabled. The GCC option -fdiagnostics-show-option, available in GCC 4.1 or newer, helps understanding which warnings originated from which option. Then you will go through the list of warnings. You will likely deactivate warnings that occur often and don’t point to mistakes in the code, by adding them to the ‘nw’ variable, then reconfiguring and recompiling. When warnings point to real mistakes and bugs in the code, you will of course not disable them.

There are also many GCC warning options which usually don’t point to mistakes in the code; these warnings enforce a certain programming style. It is a project management decision whether you want your code to follow any of these styles. Note that some of these programming styles are conflicting. You cannot have them all; you have to choose among them.

When a new version of GCC is released, you can add the new warning options that it introduces into the gl_MANYWARN_ALL_GCC macro (and submit your modification to the Gnulib maintainers :-)), and enjoy the benefits of the new warnings, while adding the undesired ones to the ‘nw’ variable.

13.20 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.

13.21 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.

14 Regular expressions

14.1 Overview

A regular expression (or regexp, or pattern) is a text string that describes some (mathematical) set of strings. A regexp r matches a string s if s is in the set of strings described by r.

Using the Regex library, you can:

• see if a string matches a specified pattern as a whole, and

• search within a string for a substring matching a specified pattern.

Some regular expressions match only one string, i.e., the set they describe has only one member. For example, the regular expression ‘foo’ matches the string ‘foo’ and no others. Other regular expressions match more than one string, i.e., the set they describe has more than one member. For example, the regular expression ‘f*’ matches the set of strings made up of any number (including zero) of ‘f’s. As you can see, some characters in regular expressions match themselves (such as ‘f’) and some don’t (such as ‘*’); the ones that don’t match themselves instead let you specify patterns that describe many different strings.

To either match or search for a regular expression with the Regex library functions, you must first compile it with a Regex pattern compiling function. A compiled pattern is a regular expression converted to the internal format used by the library functions. Once you’ve compiled a pattern, you can use it for matching or searching any number of times.

The Regex library is used by including regex.h. Regex provides three groups of functions with which you can operate on regular expressions. One group—the GNU group—is more powerful but not completely compatible with the other two, namely the POSIX and Berkeley Unix groups; its interface was designed specifically for GNU.

We wrote this chapter with programmers in mind, not users of programs—such as Emacs—that use Regex. We describe the Regex library in its entirety, not how to write regular expressions that a particular program understands.

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 themselves; we call these characters ordinary. Other characters represent either all or parts of fancier operators; e.g., ‘.’ represents what we call the match-any-character operator (which, no surprise, matches (almost) any character); we call these characters special. Two different things determine what characters represent what operators:

1. the regular expression syntax your program has told the Regex library to recognize, and

2. the context of the character in the regular expression.

In the following sections, we describe these things in more detail.

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 653, for more information on pattern buffers. See Section 14.7.1.2 [GNU Regular Expression Compiling], page 653, and Section 14.7.2.1 [BSD Regular Expression Compiling], page 660, 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 Operators], page 643, Section 14.4 [GNU Operators], page 650, and Section 14.5 [GNU Emacs Operators], page 651.

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 646 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 642, for what ‘\’ does outside of lists.)

RE_BK_PLUS_QM

If this bit is set, then ‘\+’ represents the match-one-or-more operator and ‘\?’ represents the match-zero-or-more operator; if this bit isn’t set, then ‘+’ represents the match-one-or-more operator and ‘?’ represents the match-zero-or-one operator. This bit is irrelevant if RE_LIMITED_OPS is set.

RE_CHAR_CLASSES

If this bit is set, then you can use character classes in lists; if this bit isn’t set, then you can’t.

RE_CONTEXT_INDEP_ANCHORS

If this bit is set, then ‘^’ and ‘$’ are special anywhere outside a list; if this bit isn’t set, then these characters are special only in certain contexts. See Section 14.3.9.1 [Match-beginning-of-line Operator], page 650, and Section 14.3.9.2 [Match-end-of-line Operator], page 650.

RE_CONTEXT_INDEP_OPS

If this bit is set, then certain characters are special anywhere outside a list; if this bit isn’t set, then those characters are special only in some contexts and are ordinary elsewhere. Specifically, if this bit isn’t set then ‘*’, and (if the syntax bit RE_LIMITED_OPS isn’t set) ‘+’ and ‘?’ (or ‘\+’ and ‘\?’, depending on the syntax bit RE_BK_PLUS_QM) represent repetition operators only if they’re not first in a regular expression or just after an open-group or alternation operator. The same holds for ‘{’ (or ‘\{’, depending on the syntax bit RE_NO_BK_BRACES) if it is the beginning of a valid interval and the syntax bit RE_INTERVALS is set.

RE_CONTEXT_INVALID_DUP

If this bit is set, then an open-interval operator cannot occur at the start of a regular expression, or immediately after an alternation, open-group or closeinterval 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 matchbeginning-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, matchzero-or-one or alternation operators; if this bit isn’t set, then it does.

RE_NEWLINE_ALT

If this bit is set, then newline represents the alternation operator; if this bit isn’t set, then newline is ordinary.

RE_NO_BK_BRACES

If this bit is set, then ‘{’ represents the open-interval operator and ‘}’ represents the close-interval operator; if this bit isn’t set, then ‘\{’ represents the openinterval 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 652 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 653) syntax either to an arbitrary combination of syntax bits (see Section 14.2.1 [Syntax Bits], page 638) 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 641

#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)

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 638). 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 646) if the syntax bit RE_BACKSLASH_ESCAPE_IN_LISTS is not set. For example, ‘[\]’ would match ‘\’.

2. It quotes (makes ordinary, if it’s special) the next character when you use it either: • outside a list,^{1} or

• inside a list and the syntax bit RE_BACKSLASH_ESCAPE_IN_LISTS is set.

3. It introduces an operator when followed by certain ordinary characters—sometimes only when certain syntax bits are set. See the cases RE_BK_PLUS_QM, RE_NO_BK_BRACES, RE_ NO_BK_VAR, RE_NO_BK_PARENS, RE_NO_BK_REF in Section 14.2.1 [Syntax Bits], page 638. Also:

• ‘\b’ represents the match-word-boundary operator (see Section 14.4.1.2 [Matchword-boundary Operator], page 651).

• ‘\B’ represents the match-within-word operator (see Section 14.4.1.3 [Match-within-word Operator], page 651).

• ‘\<’ represents the match-beginning-of-word operator (see Section 14.4.1.4 [Match-beginning-of-word Operator], page 651).

• ‘\>’ represents the match-end-of-word operator (see Section 14.4.1.5 [Match-end-of-word Operator], page 651).

• ‘\w’ represents the match-word-constituent operator (see Section 14.4.1.6 [Matchword-constituent Operator], page 651).

1 Sometimes you don’t have to explicitly quote special characters to make them ordinary. For instance,

most characters lose any special meaning inside a list (see Section 14.3.6 [List Operators], page 646). 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.

• ‘\W’ represents the match-non-word-constituent operator (see Section 14.4.1.7 [Match-non-word-constituent Operator], page 651).

• ‘\`’ represents the match-beginning-of-buffer operator and ‘\'’ represents the match-end-of-buffer operator (see Section 14.4.2 [Buffer Operators], page 651).

• 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 652).

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 637, 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 646).

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 637) 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 a and b. No character represents this operator; you simply put b after a. The result is a regular expression that will match a string if a matches its first part and b matches the rest. For example, ‘xy’ (two match-self operators) matches ‘xy’.

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 repetitions of the smallest preceding regular expression as it can. Then it continues to match the rest of the pattern.

If it can’t match the rest of the pattern, it backtracks (as many times as necessary), each time discarding one of the matches until it can either match the entire pattern or be certain that it cannot get a match. For example, when matching ‘ca*ar’ against ‘caaar’, the matcher first matches all three ‘a’s of the string with the ‘a*’ of the regular expression. However, it cannot then match the final ‘ar’ of the regular expression against the final ‘r’ of the string. So it backtracks, discarding the match of the last ‘a’ in the string. It can then match the remaining ‘ar’.

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 Operator], page 644, 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.

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 644, 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; otherwise, ‘\|’ does.

Alternatives match one of a choice of regular expressions: if you put the character(s) representing the alternation operator between any two regular expressions a and b, the result matches the union of the strings that a and b match. For example, supposing that ‘|’ is the alternation operator, then ‘foo|bar|quux’ would match any of ‘foo’, ‘bar’ or ‘quux’.

The alternation operator operates on the largest possible surrounding regular expressions. (Put another way, it has the lowest precedence of any regular expression operator.) Thus, the only way you can delimit its arguments is to use grouping. For example, if ‘(’ and ‘)’ are the open and close-group operators, then ‘fo(o|b)ar’ would match either ‘fooar’ or ‘fobar’. (‘foo|bar’ would match ‘foo’ or ‘bar’.)

The matcher usually tries all combinations of alternatives so as to match the longest possible string. For example, when matching ‘(fooq|foo)*(qbarquux|bar)’ against ‘fooqbarquux’, it cannot take, say, the first (“depth-first”) combination it could match, since then it would be content to match just ‘fooqbar’.

Note that since the default behavior is to return the leftmost longest match, when more than one of a series of alternatives matches the actual match will be the longest matching alternative, not necessarily the first in the list.

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.

A matching list matches a single character represented by one of the list items. You form a matching list by enclosing one or more items within an open-matching-list operator (represented by ‘[’) and a close-list operator (represented by ‘]’).

For example, ‘[ab]’ matches either ‘a’ or ‘b’. ‘[ad]*’ matches the empty string and any string composed of just ‘a’s and ‘d’s in any order. Regex considers invalid a regular expression with a ‘[’ but no matching ‘]’.

Nonmatching lists are similar to matching lists except that they match a single character not represented by one of the list items. You use an open-nonmatching-list operator (represented by ‘[^’^{2}) instead of an open-matching-list operator to start a nonmatching list.

For example, ‘[^ab]’ matches any character except ‘a’ or ‘b’.

If the syntax bit RE_HAT_LISTS_NOT_NEWLINE is set, then nonmatching lists do not match a newline.

Most characters lose any special meaning inside a list. The special characters inside a list follow.

‘]’ ends the list if it’s not the first list item. So, if you want to make the ‘]’ character a list item, you must put it first.

‘\’ quotes the next character if the syntax bit RE_BACKSLASH_ESCAPE_IN_LISTS is set.

‘[.’ represents the open-collating-symbol operator (see Section 14.3.6.1 [Collating Symbol Operators], page 647).

‘.]’ represents the close-collating-symbol operator.

‘[=’ represents the open-equivalence-class operator (see Section 14.3.6.2 [Equivalence Class Operators], page 647).

‘=]’ represents the close-equivalence-class operator.

2 Regex therefore doesn’t consider the ‘^’ to be the first character in the list. If you put a ‘^’ character

first in (what you think is) a matching list, you’ll turn it into a nonmatching list.

‘[:’ represents the open-character-class operator (see Section 14.3.6.3 [Character Class Operators], page 647) 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 648) 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 closecollating-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 expressions inside lists. A character class expression matches one character from a given class. You form a character class expression by putting a character class name between an opencharacter-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 punct neither control nor alphanumeric characters

space space, carriage return, newline, vertical tab, and form feed

upper uppercase letters

xdigit hexadecimal digits: 0–9, a–f, A–F

These correspond to the definitions in the C library’s <ctype.h> facility. For example, ‘[:alpha:]’ corresponds to the standard facility isalpha. Regex recognizes character class expressions only inside of lists; so ‘[[:alpha:]]’ matches any letter, but ‘[:alpha:]’ outside of a bracket expression and not followed by a repetition operator matches just itself.

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 \( … \))

A group, also known as a subexpression, consists of an open-group operator, any number of other operators, and a close-group operator. Regex treats this sequence as a unit, just as mathematics and programming languages treat a parenthesized expression as a unit.

Therefore, using groups, you can:

3 You can’t use a character class for the starting or ending point of a range, since a character class is not

a single character.

• delimit the argument(s) to an alternation operator (see Section 14.3.5 [Alternation Operator], page 645) or a repetition operator (see Section 14.3.4 [Repetition Operators], page 644).

• keep track of the indices of the substring that matched a given group. See Sec-

tion 14.7.1.8 [Using Registers], page 657, for a precise explanation. This lets you:

• use the back-reference operator (see Section 14.3.8 [Back-reference Operator], page 649).

• use registers (see Section 14.7.1.8 [Using Registers], page 657).

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 648).

digit must be between ‘1’ and ‘9’. The matcher assigns numbers 1 through 9 to the first nine groups it encounters. By using one of ‘\1’ through ‘\9’ after the corresponding group’s close-group operator, you can match a substring identical to the one that the group does.

Back references match according to the following (in all examples below, ‘(’ represents the open-group, ‘)’ the close-group, ‘{’ the open-interval and ‘}’ the close-interval operator):

• If the group matches a substring, the back reference matches an identical substring. For

example, ‘(a)\1’ matches ‘aa’ and ‘(bana)na\1bo\1’ matches ‘bananabanabobana’.

Likewise, ‘(.*)\1’ matches any (newline-free if the syntax bit RE_DOT_NEWLINE isn’t set) string that is composed of two identical halves; the ‘(.*)’ matches the first half and the ‘\1’ matches the second half.

• If the group matches more than once (as it might if followed by, e.g., a repetition operator), then the back reference matches the substring the group last matched. For example, ‘((a*)b)*\1\2’ matches ‘aabababa’; first group 1 (the outer one) matches ‘aab’ and group 2 (the inner one) matches ‘aa’. Then group 1 matches ‘ab’ and group 2 matches ‘a’. So, ‘\1’ matches ‘ab’ and ‘\2’ matches ‘a’.

• If the group doesn’t participate in a match, i.e., it is part of an alternative not taken or a repetition operator allows zero repetitions of it, then the back reference makes the whole match fail. For example, ‘(one()|two())-and-(three\2|four\3)’ matches

‘one-and-three’ and ‘two-and-four’, but not ‘one-and-four’ or ‘two-and-three’.

For example, if the pattern matches ‘one-and-’, then its group 2 matches the empty string and its group 3 doesn’t participate in the match. So, if it then matches ‘four’, then when it tries to back reference group 3—which it will attempt to do because ‘\3’ follows the ‘four’—the match will fail because group 3 didn’t participate in the match.

You can use a back reference as an argument to a repetition operator. For example, ‘(a(b))\2*’ matches ‘a’ followed by two or more ‘b’s. Similarly, ‘(a(b))\2{3}’ matches

‘abbbb’.

If there is no preceding digit-th subexpression, the regular expression is invalid.

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 expression.

• It follows an open-group or alternation operator, as in ‘a\(^b\)’ and ‘a\|^b’. See Section 14.3.7 [Grouping Operators], page 648, and Section 14.3.5 [Alternation Operator], page 645.

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 653), 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

A syntax table is an array indexed by the characters in your character set. In the ASCII encoding, therefore, a syntax table has 256 elements. Regex always uses a char * variable re_syntax_table as its syntax table. In some cases, it initializes this variable and in others it expects you to initialize it.

• If Regex is compiled with the preprocessor symbols emacs and SYNTAX_TABLE both undefined, then Regex allocates re_syntax_table and initializes an element i either to Sword (which it defines) if i is a letter, number, or ‘_’, or to zero if it’s not.

• If Regex is compiled with emacs undefined but SYNTAX_TABLE defined, then Regex expects you to define a char * variable re_syntax_table to be a valid syntax table.

• See Section 14.5.1.1 [Emacs Syntax Tables], page 652, 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 example, ‘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.

14.5.1 Syntactic Class Operators

The operators in this section require Regex to recognize the syntactic classes of characters. Regex uses a syntax table to determine this.

14.5.1.1 Emacs Syntax Tables

A syntax table is an array indexed by the characters in your character set. In the ASCII encoding, therefore, a syntax table has 256 elements.

If Regex is compiled with the preprocessor symbol emacs defined, then Regex expects you to define and initialize the variable re_syntax_table to be an Emacs syntax table. Emacs’ syntax tables are more complicated than Regex’s own (see Section 14.4.1.1 [Non-Emacs Syntax Tables], page 650). 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 interface is not documented here; see the documentation of GNU libc, or the POSIX man pages. The Berkeley Unix interface is documented here for convenience, since its documentation is not otherwise readily available on GNU systems.

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.

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 653).

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 638, and Section 14.2.2 [Predefined Syntaxes], page 640.

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 657.

fastmap Initialize this to nonzero if you want a fastmap, or to zero if you don’t.

buffer
allocated

If you want re_compile_pattern to allocate memory for the compiled pattern, set both of these to zero. If you have an existing block of memory (allocated with malloc) you want Regex to use, set buffer to its address and allocated to its size (in bytes). re_compile_pattern uses realloc to extend the space for the compiled pattern as necessary.

4 Regular expressions are also referred to as “patterns,” hence the name “pattern buffer.”

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 653), 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 657, 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 653, 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.

Before calling re_search, you must compile your regular expression. See Section 14.7.1.2 [GNU Regular Expression Compiling], page 653.

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 654) 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 656.

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 654) except that you pass two data strings and sizes, and an index stop beyond which you don’t want the matcher to try matching. As with re_match, if it succeeds, re_match_2 returns how many characters of string it matched. Regard string1 and string2 as concatenated when you set the arguments start and stop and use the contents of regs; re_match_2 never returns a value larger than size1 + size2.

The function:

     int
     re_search_2 (struct re_pattern_buffer *buffer,

                  const char *string1, const int size1,
                  const char *string2, const int size2,
                  const int start, const int range,
                  struct re_registers *regs,
                  const int stop)

is similarly related to re_search.

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 buffer’s fastmap field before calling re_compile_pattern, you can reuse a buffer data structure across multiple searches with different patterns, and allocate the fastmap only once. Nonetheless, the fastmap must be recompiled each time the buffer has a new pattern compiled into it.

To compile a fastmap yourself, use:

     int
     re_compile_fastmap (struct re_pattern_buffer *pattern_buffer)

pattern buffer is the address of a pattern buffer. If the character c could start a match

for the pattern, re_compile_fastmap makes pattern_buffer->fastmap[c] nonzero. It

returns 0 if it can compile a fastmap and −2 if there is an internal error. For example, if ‘|’ is the alternation operator and pattern buffer holds the compiled pattern for ‘a|b’, then

re_compile_fastmap sets fastmap['a'] and fastmap['b'] (and no others).

re_search uses a fastmap as it moves along in the string: it checks the string’s characters until it finds one that’s in the fastmap. Then it tries matching at that character. If the match fails, it repeats the process. So, by using a fastmap, re_search doesn’t waste time trying to match at positions in the string that couldn’t start a match.

If you don’t want re_search to use a fastmap, store zero in the fastmap field of the pattern buffer before calling re_search.

Once you’ve initialized a pattern buffer’s fastmap field, you need never do so again—even if you compile a new pattern in it—provided the way the field is set still reflects whether or not you want a fastmap. re_search will still either do nothing if fastmap is null or, if it isn’t, compile a new fastmap for the new pattern.

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.

A translate table is an array indexed by the characters in your character set. Under the ASCII encoding, therefore, a translate table has 256 elements. The array’s elements are also characters in your character set. When the Regex functions see a character c, they use translate[c] in its place, with one exception: the character after a ‘\’ is not translated. (This ensures that, the operators, e.g., ‘\B’ and ‘\b’, are always distinguishable.)

For example, a table that maps all lowercase letters to the corresponding uppercase ones would cause the matcher to ignore differences in case.^{5} Such a table would map all characters except lowercase letters to themselves, and lowercase letters to the corresponding uppercase ones. Under the ASCII encoding, here’s how you could initialize such a table (we’ll call it case_fold):

     for (i = 0; i < 256; i++)
       case_fold[i] = i;
     for (i = 'a'; i <= 'z'; i++)
       case_fold[i] = i - ('a' - 'A');

You tell Regex to use a translate table on a given pattern buffer by assigning that table’s address to the translate field of that buffer. If you don’t want Regex to do any translation, put zero into this field. You’ll get weird results if you change the table’s contents anytime between compiling the pattern buffer, compiling its fastmap, and matching or searching with the pattern buffer.

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 654 and Section 14.7.1.4 [GNU Searching], page 654), i.e., the address of a structure of this type, as defined in

regex.h:
     struct re_registers
     {
       unsigned num_regs;
       regoff_t *start;
       regoff_t *end;
     };

Except for (possibly) the num regs’th element (see below), the ith element of the start and end arrays records information about the ith group in the pattern. (They’re declared as C pointers, but this is only because not all C compilers accept zero-length arrays; conceptually, it is simplest to think of them as arrays.)

5 A table that maps all uppercase letters to the corresponding lowercase ones would work just as well for

this purpose.

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 653). The extra element is set to −1. Then on subsequent calls with the same pattern buffer and regs arguments, the matcher reallocates more space if necessary.

The function:

     void
     re_set_registers (struct re_pattern_buffer *buffer,
           struct re_registers *regs,
           size_t num_regs,
           regoff_t *starts, regoff_t *ends)

sets regs to hold num regs registers, storing them in starts and ends. Subsequent matches using buffer and regs will use this memory for recording register information. starts and ends must be allocated with malloc, and must each be at least num regs∗sizeof(regoff_t) bytes long.

If num regs is zero, then subsequent matches should allocate their own register data. Unless this function is called, the first search or match using buffer will allocate its own

register data, without freeing the old data.

The following examples illustrate the information recorded in the re_registers structure. (In all of them, ‘(’ represents the open-group and ‘)’ the close-group operator. The first character in the string string is at index 0.)

• If the regular expression has an i-th group that matches a substring of string, then the function sets regs->start[i] to the index in string where the substring matched by the i-th group begins, and regs->end[i] to the index just beyond that substring’s end. The function sets regs->start[0] and regs->end[0] to analogous information about the entire pattern. For example, when you match ‘((a)(b))’ against ‘ab’, you get:

     • 0 in regs->start[0] and 2 in regs->end[0]
     • 0 in regs->start[1] and 2 in regs->end[1]
     • 0 in regs->start[2] and 1 in regs->end[2]
     • 1 in regs->start[3] and 2 in regs->end[3]

• If a group matches more than once (as it might if followed by, e.g., a repetition operator), then the function reports the information about what the group last matched. For example, when you match the pattern ‘(a)*’ against the string ‘aa’, you get:

     • 0 in regs->start[0] and 2 in regs->end[0]
     • 1 in regs->start[1] and 2 in regs->end[1]

• If the i-th group does not participate in a successful match, e.g., it is an alternative not taken or a repetition operator allows zero repetitions of it, then the function sets

    regs->start[i] and regs->end[i] to −1.

For example, when you match the pattern ‘(a)*b’ against the string ‘b’, you get:

     • 0 in regs->start[0] and 1 in regs->end[0]

• −1 in regs->start[1] and −1 in regs->end[1]

• If the i-th group matches a zero-length string, then the function sets regs->start[i] and regs->end[i] to the index just beyond that zero-length string. For example, when you match the pattern ‘(a*)b’ against the string ‘b’, you get:

• 0 in regs->start[0] and 1 in regs->end[0]
• 0 in regs->start[1] and 0 in regs->end[1]

• If an i-th group contains a j-th group in turn not contained within any other group within group i and the function reports a match of the i-th group, then it records in regs->start[j] and regs->end[j] the last match (if it matched) of the j-th group. For example, when you match the pattern ‘((a*)b)*’ against the string ‘abb’, group 2 last matches the empty string, so you get what it previously matched:

• 0 in regs->start[0] and 3 in regs->end[0]
• 2 in regs->start[1] and 3 in regs->end[1]
• 2 in regs->start[2] and 2 in regs->end[2]

When you match the pattern ‘((a)*b)*’ against the string ‘abb’, group 2 doesn’t participate in the last match, so you get:

• 0 in regs->start[0] and 3 in regs->end[0]
• 2 in regs->start[1] and 3 in regs->end[1]
• 0 in regs->start[2] and 1 in regs->end[2]

• If an i-th group contains a j-th group in turn not contained within any other group within group i and the function sets regs->start[i] and regs->end[i] to −1, then

it also sets regs->start[j] and regs->end[j] to −1.

For example, when you match the pattern ‘((a)*b)*c’ against the string ‘c’, you get:

• 0 in regs->start[0] and 1 in regs->end[0]
• −1 in regs->start[1] and −1 in regs->end[1]
• −1 in regs->start[2] and −1 in regs->end[2]

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.

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 Expression Syntax], page 637).

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 653).

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 660), 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 656).

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 ‘+’ ‘\?’ 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 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 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 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

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 ‘\(’.

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 ‘(’.

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 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 ‘|’.

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 670

14.8.12 ‘sed’ regular expression syntax

This is a synonym for ed.

Appendix A GNU Free Documentation License

Version 1.3, 3 November 2008

Copyright \begin{matrix}c \\ ◯ \end{matrix} 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 noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of “copyleft”, which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference.

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 under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none.

The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words.

A “Transparent” copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not “Transparent” is called “Opaque”.

Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTEX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only.

The “Title Page” means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, “Title Page” means the text near the most prominent appearance of the work’s title, preceding the beginning of the body of the text.

The “publisher” means any person or entity that distributes copies of the Document to the public.

A section “Entitled XYZ” means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as “Acknowledgements”, “Dedications”, “Endorsements”, or “History”.) To “Preserve the Title” of such a section when you modify the Document means that it remains a section “Entitled XYZ” according to this definition.

The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License.

2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies.

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, 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 Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence.

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 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 various original documents, forming one section Entitled “History”; likewise combine any sections Entitled “Acknowledgements”, and any sections Entitled “Dedications”. You must delete all sections Entitled “Endorsements.”

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 individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document.

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 “History”, 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.

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 published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. “Incorporate” means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is “eligible for relicensing” if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing.

ADDENDUM: How to use this License for your documents

To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page:

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

If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with…Texts.” line with this:

          with the Invariant Sections being list their titles, with
          the Front-Cover Texts being list, and with the Back-Cover Texts
          being list.

If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation.

If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.

Index 679

Index

$

$ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650

(

( . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648

)

) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648

*

‘*’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644

+

‘+’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644

-

‘-’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646

.

‘.’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643

=

‘=]’ in regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647

?

‘?’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644

[

‘[’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 ‘[=’ in regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647 ‘[^’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 ‘[colon’ in regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647

]

‘]’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646

^

‘^’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646, 650

_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 _Exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 _GL_EXTERN_INLINE . . . . . . . . . . . . . . . . . . . . . . . . . . 620 _GL_INLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620

_GL_INLINE_HEADER_BEGIN . . . . . . . . . . . . . . . . . . . 620

_GL_INLINE_HEADER_END . . . . . . . . . . . . . . . . . . . . . . 620 _longjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 _setjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 _tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 _toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

\

\ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642, 646 ‘\'’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 \(. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 \). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 ‘\<’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 ‘\>’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 ‘\`’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 \|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 ‘\{’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 ‘\}’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 ‘\b’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 ‘\B’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 ‘\s’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 ‘\S’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652 ‘\w’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651 ‘\W’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651

|

| . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 ‘{’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 ‘}’. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645

A

a64l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 abort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Aborting execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 abs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

AC_LIB_HAVE_LINKFLAGS(name, [dependencies],
    [includes], [testcode],

[missing-message]) . . . . . . . . . . . . . . . . . . . . . 625

AC_LIB_LINKFLAGS(name, [dependencies]) . . 624

accept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 accept4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 acct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 acos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 acosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 acosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 acoshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 acoshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 acosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 addmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 addseverity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 adjtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 adjtimex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 advance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 aio_cancel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 aio_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 aio_fsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 aio_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 aio_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 aio_return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 aio_suspend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 aio_write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 alarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 aligned_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 ALLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 ALLOC_N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 ALLOC_N_UNINITIALIZED . . . . . . . . . . . . . . . . . . . . . . 611 alloca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610 allocated initialization . . . . . . . . . . . . . . . . . . . . . . 653 alphasort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 alternation operator . . . . . . . . . . . . . . . . . . . . . . . . . . 645 alternation operator and ‘^’. . . . . . . . . . . . . . . . . . . 650 anchoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 anchors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 argp_err_exit_status . . . . . . . . . . . . . . . . . . . . . . . 436 argp_error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 argp_failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 argp_help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 argp_parse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437

argp_program_bug_address . . . . . . . . . . . . . . . . . . 437

argp_program_version . . . . . . . . . . . . . . . . . . . . . . . 438

argp_program_version_hook . . . . . . . . . . . . . . . . . 438

argp_state_help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 argp_usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 argz_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 argz_add_sep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 argz_append . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 argz_count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 argz_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 argz_create_sep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 argz_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 argz_extract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 argz_insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 argz_next. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 argz_replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 argz_stringify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 asctime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 asctime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 asin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 asinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 asinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 asinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 asinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 asinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 asprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556 assert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 assertion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 atan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 atan2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 atan2f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 atan2l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 atanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 atanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 atanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 atanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 atanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 atexit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 atof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 atoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 atol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 atoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 authdes_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 authdes_getucred. . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 authdes_pk_create . . . . . . . . . . . . . . . . . . . . . . . . . . 502 authnone_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 authunix_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503

                                                authunix_create_default . . . . . . . . . . . . . . . . . . . 503

autopoint, caveat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640

B

back references . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649 backtrace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 backtrace_symbols . . . . . . . . . . . . . . . . . . . . . . . . . . 451 backtrace_symbols_fd . . . . . . . . . . . . . . . . . . . . . . . 451 backtracking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644, 646 basename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 bcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 bcopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 bdflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 beginning-of-line operator . . . . . . . . . . . . . . . . . . . . 650 bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

                                                bind_textdomain_codeset . . . . . . . . . . . . . . . . . . . 461

bindresvport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 bindtextdomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 block size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636 bracket expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 brk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 bsd_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 bsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 bswap_16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 bswap_32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 bswap_64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 btowc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

                                                buffer field, set by re_compile_pattern . . . . . 654

buffer initialization . . . . . . . . . . . . . . . . . . . . . . . . . . 653 bzero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

C

c16rtomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 c32rtomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 C++ header files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 C++ tests modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 cabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 cabsf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 cabsl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 cacos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 cacosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 cacosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 cacoshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 cacoshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 cacosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 calloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 callrpc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 canonicalize_file_name. . . . . . . . . . . . . . . . . . . . . 561 capget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 capset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 carg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 cargf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 cargl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 casin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 casinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 casinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 casinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 casinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 casinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 catan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 catanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 catanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 catanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 catanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 catanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 catclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 catgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 catopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 cbc_crypt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 cbrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 cbrtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 cbrtl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ccos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 ccosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ccosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ccoshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ccoshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 ccosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 ceil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 ceilf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 ceill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 cexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 cexpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 cexpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 cfgetispeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 cfgetospeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 cfmakeraw. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 cfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 cfsetispeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 cfsetospeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 cfsetspeed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 character classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647 chdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 chmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 chown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 chroot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 cimag . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 cimagf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 cimagl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 clearenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 clearerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 clearerr_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . 557 clnt_broadcast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 clnt_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 clnt_pcreateerror . . . . . . . . . . . . . . . . . . . . . . . . . . 507 clnt_perrno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 clnt_perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 clnt_spcreateerror . . . . . . . . . . . . . . . . . . . . . . . . . 507 clnt_sperrno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 clnt_sperror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 clntraw_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 clnttcp_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 clntudp_bufcreate . . . . . . . . . . . . . . . . . . . . . . . . . . 508 clntudp_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 clntunix_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 clock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 clock_adjtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 clock_getcpuclockid . . . . . . . . . . . . . . . . . . . . . . . . . 98 clock_getres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 clock_gettime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 clock_nanosleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 clock_settime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 clog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 clog10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 clog10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 clog10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 clogf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 clogl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 clone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548 close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 closedir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 closelog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 ‘colon]’ in regex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647 comments describing functions . . . . . . . . . . . . . . . . . 27 conditional dependencies. . . . . . . . . . . . . . . . . . . . . . . 24 configmake module . . . . . . . . . . . . . . . . . . . . . . . . . . 634 configmake.h, module for updating. . . . . . . . . . . 634 confstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 conj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 conjf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 conjl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 connect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 copysign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 copysignf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 copysignl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 cosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 cosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 coshf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 coshl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 cosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 cpow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 cpowf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 cpowl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 cproj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 cprojf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 cprojl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 creal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 crealf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 creall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 creat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 crypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 crypt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 csin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 csinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 csinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 csinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 csinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 csinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 csqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 csqrtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 csqrtl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 ctan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 ctanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 ctanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 ctanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 ctanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 ctanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 ctermid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ctime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ctime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 cuserid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557

D

daemon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 daylight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 dbm_clearerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 dbm_close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 dbm_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 dbm_error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 dbm_fetch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 dbm_firstkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 dbm_nextkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 dbm_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 dbm_store. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 dcgettext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 dcngettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 DEF files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 des_setparity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 describing functions, locating . . . . . . . . . . . . . . . . . . 27 dgettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 difftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 dirfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 dirname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 div . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 dl_iterate_phdr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 dladdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 dladdr1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 dlclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 dlerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 dlinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 dlmopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 dlopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 dlsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 dlvsym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 dn_expand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 dngettext. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 double inclusion of header files . . . . . . . . . . . . . . . . . 25 dprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 drand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 drand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 drem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 dremf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 dreml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 dup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 dup2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 dup3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 duplocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 dysize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

E

ecb_crypt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 ecvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 ecvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Egrep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 Emacs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 encrypt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 encrypt_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 end in struct re_registers. . . . . . . . . . . . . . . . . . 657 end-of-line operator. . . . . . . . . . . . . . . . . . . . . . . . . . . 650 endaliasent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 endfsent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 endgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 endhostent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 endmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 endnetent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 endnetgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 endprotoent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 endpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 endrpcent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 endservent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 endsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 endspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 endttyent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 endusershell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 endutent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 endutxent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 environ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 envz_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 envz_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 envz_get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 envz_merge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 envz_remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447 envz_strip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 epoll_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 epoll_ctl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 epoll_wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 equivalence class expression in regex . . . . . . . . . . 647 erand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 erand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 erf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 erfc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 erfcf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 erfcl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 erff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 erfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 errno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450, 623 error_at_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 error_message_count . . . . . . . . . . . . . . . . . . . . . . . . 450 error_one_per_line . . . . . . . . . . . . . . . . . . . . . . . . . 450 error_print_progname . . . . . . . . . . . . . . . . . . . . . . . 451 errx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 ether_aton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 ether_aton_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 ether_hostton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 ether_line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 ether_ntoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 ether_ntoa_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 ether_ntohost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 euidaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 execl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 execle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 execlp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 execv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 execve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 execvp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 execvpe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595 exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 exp10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 exp10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 exp10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 exp2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 exp2f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 exp2l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 expf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 expl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 expm1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 expm1f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 expm1l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 EXPR_SIGNED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 extern inline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 Extra tests modules . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

F

fabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 fabsf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 fabsl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 faccessat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 fallocate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 fanotify_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 fanotify_mark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574 fastmap initialization . . . . . . . . . . . . . . . . . . . . . . . . . 653 fastmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 656 fattach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 fchdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 fchmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 fchmodat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 fchown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 fchownat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 fclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 fcloseall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 fcntl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 fcvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 fcvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 FD_CLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 FD_ISSET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 FD_SET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 FD_ZERO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 fdatasync. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 fdetach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 fdim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 fdimf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 fdiml . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 fdopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 fdopendir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 feclearexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 fedisableexcept. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 feenableexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 fegetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 fegetexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 fegetexceptflag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 fegetround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 feholdexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 feof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 feof_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 feraiseexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ferror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 ferror_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557 fesetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 fesetexceptflag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 fesetround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 fetestexcept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 feupdateenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 fexecve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 fflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 fflush_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 ffs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ffsl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 ffsll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 fgetc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 fgetc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 fgetfilecon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 fgetgrent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 fgetgrent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 fgetpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 fgetpwent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 fgetpwent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 fgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 fgets_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 fgetsgent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 fgetsgent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 fgetspent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 fgetspent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551 fgetwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 fgetwc_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 fgetws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 fgetws_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 fgetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 fileno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 fileno_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 Finding modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 finite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 finitef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 finitel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 flistxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 flock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 flockfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 floorf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 floorl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 fma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 fmaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 fmal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 fmax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 fmaxf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 fmaxl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 fmemopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 fmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 fminf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 fminl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 fmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 fmodf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 fmodl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 fmtmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 fnmatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 fopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 fopencookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558 fork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 forkpty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 fpathconf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 fpclassify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 fprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 fputc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 fputc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 fputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 fputs_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 fputwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 fputwc_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 fputws . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 fputws_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 fread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 fread_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 freeaddrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 freeifaddrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 freelocale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 FREE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 fremovexattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 freopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 frexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 frexpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 frexpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 fscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 fseek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 fseeko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 fsetpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 fsetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 fstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 fstatat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 fstatfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 fstatvfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 fsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ftell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 ftello . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 ftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 ftok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ftruncate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 ftrylockfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 fts_children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 fts_close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 fts_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 fts_read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 fts_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 ftw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 funlockfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 futimens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 futimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 futimesat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 fwide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 fwprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 fwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 fwrite_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 fwscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

G

gai_strerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 gamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 gammaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 gammal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467 gcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 624 gcvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 get_avphys_pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 get_current_dir_name . . . . . . . . . . . . . . . . . . . . . . . 596 get_myaddress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 get_nprocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 get_nprocs_conf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 get_phys_pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 getaddrinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 getaliasbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 getaliasbyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 getaliasent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 getaliasent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 getc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 getc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 getchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 getchar_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 getcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 getcwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 getdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 getdate_err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 getdate_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 getdelim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 getdirentries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 getdomainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 getdtablesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596 getegid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 getenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 geteuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 getfilecon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 getfsent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 getfsfile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 getfsspec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 getgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 getgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 getgrent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 getgrgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 getgrgid_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 getgrnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 getgrnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 getgrouplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 getgroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 gethostbyaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 gethostbyaddr_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 gethostbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 gethostbyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 gethostbyname2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 gethostbyname2_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 gethostent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 gethostent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 gethostid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 gethostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 getifaddrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 getipv4sourcefilter . . . . . . . . . . . . . . . . . . . . . . . . 483 getitimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 getline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 getloadavg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 getlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 getlogin_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 getmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 getmntent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 getmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 getnameinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 getnetbyaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 getnetbyaddr_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477 getnetbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 getnetbyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 getnetent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 getnetent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 getnetgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478 getnetgrent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478

getnetname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
getopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
getopt_long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
getopt_long_only. . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
getpagesize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
getpass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596
getpeername . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
getpgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
getpgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
getpid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
getpmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
getppid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
getpriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
getprotobyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
getprotobyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
getprotobynumber. . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
getprotobynumber_r . . . . . . . . . . . . . . . . . . . . . . . . . 479
getprotoent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
getprotoent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
getpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
getpublickey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
getpw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
getpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
getpwent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
getpwnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
getpwnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
getpwuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
getpwuid_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
getresgid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
getresuid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597
getrlimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
getrpcbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
getrpcbyname_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
getrpcbynumber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
getrpcbynumber_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
getrpcent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
getrpcent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
getrpcport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
getrusage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
gets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
getsecretkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
getservbyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
getservbyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
getservbyport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
getservbyport_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
getservent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
getservent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479
getsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
getsgent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
getsgnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
getsgnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
getsid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
getsockname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
getsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
getsourcefilter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
getspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
getspent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
getspnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552

getspnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 getsubopt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 gettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 gettextize, caveat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 gettimeofday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 getttyent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 getttynam. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 getuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 getusershell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 getutent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 getutent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 getutid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 getutid_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601 getutline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 getutline_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 getutmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 getutmpx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 getutxent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 getutxid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 getutxline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 getw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559 getwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 getwc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605 getwchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 getwchar_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . 605 getwd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 getxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 glob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 glob_pattern_p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 globfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 gmtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 gmtime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 gnu_dev_major . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 gnu_dev_makedev. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 gnu_dev_minor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 gnu_get_libc_release . . . . . . . . . . . . . . . . . . . . . . . 457 gnu_get_libc_version . . . . . . . . . . . . . . . . . . . . . . . 457 gnulib-tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 grantpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 Grep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 group_member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 gsignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553

H

h_errno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 hasmntopt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 hcreate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 hcreate_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 hdestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 hdestroy_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 header file include protection . . . . . . . . . . . . . . . . . . 25 Header files and C++. . . . . . . . . . . . . . . . . . . . . . . . . . . 25 herror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 479 host2netname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 hsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 hsearch_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 hstrerror. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 htonl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 htons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 hypot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 hypotf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 hypotl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

I

iconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 iconv_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 iconv_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 if_freenameindex. . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 if_indextoname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 if_nameindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 if_nametoindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 ilogb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 ilogbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 ilogbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 imaxabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 imaxdiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 in6addr_any . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483 in6addr_loopback. . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 inet_addr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 inet_aton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 inet_lnaof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 inet_makeaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 inet_net_ntop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 inet_net_pton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 inet_neta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 inet_netof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 inet_network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 inet_nsap_addr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 inet_nsap_ntoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 inet_ntoa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 inet_ntop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 inet_pton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 inet6_opt_append. . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 inet6_opt_find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 inet6_opt_finish. . . . . . . . . . . . . . . . . . . . . . . . . . . . 485 inet6_opt_get_val . . . . . . . . . . . . . . . . . . . . . . . . . . 485 inet6_opt_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 inet6_opt_next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 inet6_opt_set_val . . . . . . . . . . . . . . . . . . . . . . . . . . 486 inet6_option_alloc . . . . . . . . . . . . . . . . . . . . . . . . . 484 inet6_option_append . . . . . . . . . . . . . . . . . . . . . . . . 484 inet6_option_find . . . . . . . . . . . . . . . . . . . . . . . . . . 484 inet6_option_init . . . . . . . . . . . . . . . . . . . . . . . . . . 484 inet6_option_next . . . . . . . . . . . . . . . . . . . . . . . . . . 484 inet6_option_space . . . . . . . . . . . . . . . . . . . . . . . . . 485 inet6_rth_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486 inet6_rth_getaddr . . . . . . . . . . . . . . . . . . . . . . . . . . 486 inet6_rth_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 inet6_rth_reverse . . . . . . . . . . . . . . . . . . . . . . . . . . 487 inet6_rth_segments . . . . . . . . . . . . . . . . . . . . . . . . . 487 inet6_rth_space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 initgroups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 initial import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 initstate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 initstate_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 inline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 innetgr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 insque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 INT_ADD_OVERFLOW. . . . . . . . . . . . . . . . . . . . . . . . . . . . 617 INT_ADD_RANGE_OVERFLOW. . . . . . . . . . . . . . . . . . . . . 619 INT_ADD_WRAPV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 INT_BUFSIZE_BOUND . . . . . . . . . . . . . . . . . . . . . . . . . . 614 INT_DIVIDE_OVERFLOW . . . . . . . . . . . . . . . . . . . . . . . . 617

INT_DIVIDE_RANGE_OVERFLOW . . . . . . . . . . . . . . . . . 619
INT_LEFT_SHIFT_OVERFLOW . . . . . . . . . . . . . . . . . . . 617
INT_LEFT_SHIFT_RANGE_OVERFLOW. . . . . . . . . . . . . 619

INT_MULTIPLY_OVERFLOW . . . . . . . . . . . . . . . . . . . . . . 617

INT_MULTIPLY_RANGE_OVERFLOW . . . . . . . . . . . . . . . 619

INT_MULTIPLY_WRAPV . . . . . . . . . . . . . . . . . . . . . . . . . 616 INT_NEGATE_OVERFLOW . . . . . . . . . . . . . . . . . . . . . . . . 617

INT_NEGATE_RANGE_OVERFLOW . . . . . . . . . . . . . . . . . 619

INT_REMAINDER_OVERFLOW. . . . . . . . . . . . . . . . . . . . . 617

INT_REMAINDER_RANGE_OVERFLOW . . . . . . . . . . . . . . 619

INT_STRLEN_BOUND. . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 INT_SUBTRACT_OVERFLOW . . . . . . . . . . . . . . . . . . . . . . 617

INT_SUBTRACT_RANGE_OVERFLOW . . . . . . . . . . . . . . . 619

INT_SUBTRACT_WRAPV . . . . . . . . . . . . . . . . . . . . . . . . . 616 integer bounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 integer overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 integer properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 integer range overflow . . . . . . . . . . . . . . . . . . . . . . . . 618 integer type overflow . . . . . . . . . . . . . . . . . . . . . . . . . 616 interval expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 invoking gnulib-tool . . . . . . . . . . . . . . . . . . . . . . . . . 13 ioctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 ioperm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 iopl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576 isalnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 isalnum_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 isalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 isalpha_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 isascii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 isastream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 isatty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 isblank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 isblank_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 iscntrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 iscntrl_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 isctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 isdigit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 isdigit_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 isfdtype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 isfinite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 isgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 isgraph_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 isgreater. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 isgreaterequal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 isinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 isinff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 isinfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 isless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 islessequal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 islessgreater . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 islower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 islower_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 isnan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 isnanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 isnanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 isnormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 isprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 isprint_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 ispunct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 ispunct_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 isspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 isspace_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 isunordered . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 isupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 isupper_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 iswalnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 iswalnum_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 iswalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 iswalpha_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 iswblank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 iswblank_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 iswcntrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 iswcntrl_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 iswctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 iswctype_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 iswdigit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 iswdigit_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 iswgraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 iswgraph_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 iswlower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 iswlower_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 iswprint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 iswprint_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 iswpunct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 iswpunct_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 iswspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 iswspace_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 iswupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 iswupper_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 iswxdigit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 iswxdigit_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 isxdigit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 isxdigit_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

J

j0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 j0f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468 j0l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 j1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 j1f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 j1l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 jn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 jnf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 jnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469 jrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 jrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563

K

key_decryptsession . . . . . . . . . . . . . . . . . . . . . . . . . 503 key_decryptsession_pk . . . . . . . . . . . . . . . . . . . . . . 503 key_encryptsession . . . . . . . . . . . . . . . . . . . . . . . . . 504 key_encryptsession_pk . . . . . . . . . . . . . . . . . . . . . . 504 key_gendes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 key_get_conv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504 key_secretkey_is_set . . . . . . . . . . . . . . . . . . . . . . . 504 key_setsecret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 killpg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 klogctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576

L

l64a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 labs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 lchmod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 lchown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 lckpwdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 lcong48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 lcong48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 LD DEF files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 630 ldexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 ldexpf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 ldexpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 ldiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 lfind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 lgamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 lgamma_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 lgammaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 lgammaf_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 lgammal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 lgammal_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 lgetfilecon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550 lgetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 linkat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 lio_listio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 listen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 listxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 llabs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 lldiv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 llistxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 llrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 llrintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 llrintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 llround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 llroundf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 llroundl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214 loc1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 loc2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 localeconv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 localtime. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 localtime_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 lockf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 locs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500 log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 log10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 log10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 log10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 log1p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 log1pf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 log1pl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 log2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 log2f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218 log2l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 logb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 logbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 logbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 logf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 login . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 login_tty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 logl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 long-running tests modules . . . . . . . . . . . . . . . . . . . . 33 longjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 lrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 lrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 lremovexattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590 lrint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 lrintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 lrintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 lround . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 lroundf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 lroundl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 lsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 lseek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 lsetxattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 lstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 lutimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585

M

madvise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 makecontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 mallinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 malloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224, 653 malloc_get_state. . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 malloc_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 malloc_set_state. . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 malloc_stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 malloc_trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 malloc_usable_size . . . . . . . . . . . . . . . . . . . . . . . . . 465 mallopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 matching list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 matching newline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 matching with GNU functions . . . . . . . . . . . . . . . . 654 matherr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 mblen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 mbrlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 mbrtoc16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 mbrtoc32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 mbrtowc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 mbsinit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 mbsnrtowcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 mbsrtowcs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 mbstowcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 mbtowc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 mcheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 mcheck_check_all. . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 mcheck_pedantic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 memalign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 memccpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 memchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 memcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 memcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 memfrob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 memmem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 memmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Memory allocation failure. . . . . . . . . . . . . . . . . . . . . . 33 mempcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571 memrchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 memset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 mincore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 mkdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 mkdirat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 mkdtemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 mkfifo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 mkfifoat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 mknod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 mknodat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 mkostemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 mkostemps. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 mkstemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 mkstemps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 mktemp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420 mktime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 mlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 mlockall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 mmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 modf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 modff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 modfl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 monstartup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 mount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 mprobe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 mprotect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 mq_close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 mq_getattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 mq_notify. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 mq_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 mq_receive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 mq_send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 mq_setattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 mq_timedreceive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 mq_timedsend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 mq_unlink. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 mrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 mrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 mremap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 msgctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 msgget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 msgrcv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 msgsnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 msync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 mtrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475 munlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 munlockall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 munmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 muntrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

N

name_to_handle_at . . . . . . . . . . . . . . . . . . . . . . . . . . 452 nan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 nanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 nanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 nanosleep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 nearbyint. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 nearbyintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 nearbyintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 netname2host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 netname2user . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 newlocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 nextafter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 nextafterf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 nextafterl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 nexttoward . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 nexttowardf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 nexttowardl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 nftw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 ngettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 nice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 nis_add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 nis_add_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 nis_addmember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 nis_checkpoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 nis_clone_object. . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 nis_creategroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 nis_destroy_object . . . . . . . . . . . . . . . . . . . . . . . . . 530 nis_destroygroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 nis_dir_cmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 530 nis_domain_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 nis_domain_of_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 nis_first_entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 nis_freenames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 nis_freeresult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531 nis_freeservlist. . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 nis_freetags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 nis_getnames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 nis_getservlist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 nis_ismember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532 nis_leaf_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 nis_leaf_of_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 nis_lerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 nis_list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533 nis_local_directory . . . . . . . . . . . . . . . . . . . . . . . . 533 nis_local_group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 nis_local_host . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 nis_local_principal . . . . . . . . . . . . . . . . . . . . . . . . 534 nis_lookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 nis_mkdir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534 nis_modify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 nis_modify_entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 nis_name_of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 nis_name_of_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 nis_next_entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 nis_perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 nis_ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 nis_print_directory . . . . . . . . . . . . . . . . . . . . . . . . 536 nis_print_entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 nis_print_group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536 nis_print_group_entry . . . . . . . . . . . . . . . . . . . . . . 537 nis_print_link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 nis_print_object. . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 nis_print_result. . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 nis_print_rights. . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 nis_print_table. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 nis_remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 nis_remove_entry. . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 nis_removemember. . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 nis_rmdir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 nis_servstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 nis_sperrno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 nis_sperror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 nis_sperror_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 nis_stats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539 nis_verifygroup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 nl_langinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 nl_langinfo_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 nonmatching list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646 not_bol field in pattern buffer . . . . . . . . . . . . . . . . 650 nrand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 nrand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 ntohl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 ntohs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 ntp_adjtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 ntp_gettime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 ntp_gettimex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586

num_regs in struct re_registers . . . . . . . . . . . . 657

O

Obsolete modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

obstack_alloc_failed_handler . . . . . . . . . . . . . . 488

obstack_exit_failure . . . . . . . . . . . . . . . . . . . . . . . 488 obstack_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 obstack_printf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 obstack_vprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 on_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 open-group operator and ‘^’ . . . . . . . . . . . . . . . . . . 650 open_by_handle_at . . . . . . . . . . . . . . . . . . . . . . . . . . 452 open_memstream . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 open_wmemstream. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 openat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 opendir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 openlog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 openpty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496 optarg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 opterr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 optind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 optopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 or operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645 Out of Memory handling . . . . . . . . . . . . . . . . . . . . . . 33 overflow, integer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613 overflow, integer range . . . . . . . . . . . . . . . . . . . . . . . . 618 overflow, integer type . . . . . . . . . . . . . . . . . . . . . . . . . 616

P

parenthesizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 parse_printf_format . . . . . . . . . . . . . . . . . . . . . . . . 490 pathconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 pattern buffer initialization . . . . . . . . . . . . . . . . . . . 653 pattern buffer, definition of . . . . . . . . . . . . . . . . . . . 653 pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 pclose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 perror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 personality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 pipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 pipe2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 pmap_getmaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 pmap_getport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 pmap_rmtcall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 pmap_set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 pmap_unset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514 poll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 popen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 posix_fadvise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 posix_fallocate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 posix_madvise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 posix_mem_offset. . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 posix_memalign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 posix_openpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 posix_spawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

                                                posix_spawn_file_actions_addclose . . . . . . . . 252
                                                posix_spawn_file_actions_adddup2 . . . . . . . . . 252
                                                posix_spawn_file_actions_addopen . . . . . . . . . 253
                                                posix_spawn_file_actions_destroy . . . . . . . . . 253
                                                posix_spawn_file_actions_init. . . . . . . . . . . . . 253
                                                posix_spawnattr_destroy . . . . . . . . . . . . . . . . . . . 254
                                                posix_spawnattr_getflags . . . . . . . . . . . . . . . . . . 254
                                                posix_spawnattr_getpgroup . . . . . . . . . . . . . . . . . 254
                                                posix_spawnattr_getschedparam. . . . . . . . . . . . . 254
                                                posix_spawnattr_getschedpolicy . . . . . . . . . . . 255
                                                posix_spawnattr_getsigdefault. . . . . . . . . . . . . 255
                                                posix_spawnattr_getsigmask . . . . . . . . . . . . . . . . 255

posix_spawnattr_init . . . . . . . . . . . . . . . . . . . . . . . 256

                                                posix_spawnattr_setflags . . . . . . . . . . . . . . . . . . 256
                                                posix_spawnattr_setpgroup . . . . . . . . . . . . . . . . . 256
                                                posix_spawnattr_setschedparam. . . . . . . . . . . . . 256
                                                posix_spawnattr_setschedpolicy . . . . . . . . . . . 257

posix_spawnattr_setsigdefault. . . . . . . . . . . . . 257
posix_spawnattr_setsigmask . . . . . . . . . . . . . . . . 257

posix_spawnp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

posix_trace_attr_destroy . . . . . . . . . . . . . . . . . . 258
posix_trace_attr_getclockres . . . . . . . . . . . . . . 258
posix_trace_attr_getcreatetime . . . . . . . . . . . 258
posix_trace_attr_getgenversion . . . . . . . . . . . 259
posix_trace_attr_getinherited. . . . . . . . . . . . . 259
posix_trace_attr_getlogfullpolicy . . . . . . . . 259
posix_trace_attr_getlogsize . . . . . . . . . . . . . . . 260
posix_trace_attr_getmaxdatasize . . . . . . . . . . 260
posix_trace_attr_getmaxsystemeventsize . . 260
posix_trace_attr_getmaxusereventsize. . . . . 260
posix_trace_attr_getname . . . . . . . . . . . . . . . . . . 261
posix_trace_attr_getstreamfullpolicy. . . . . 261
posix_trace_attr_getstreamsize . . . . . . . . . . . 261

posix_trace_attr_init . . . . . . . . . . . . . . . . . . . . . . 262

posix_trace_attr_setinherited. . . . . . . . . . . . . 262
posix_trace_attr_setlogfullpolicy . . . . . . . . 262
posix_trace_attr_setlogsize . . . . . . . . . . . . . . . 262
posix_trace_attr_setmaxdatasize . . . . . . . . . . 263
posix_trace_attr_setname . . . . . . . . . . . . . . . . . . 263
posix_trace_attr_setstreamfullpolicy. . . . . 263
posix_trace_attr_setstreamsize . . . . . . . . . . . 264

posix_trace_clear . . . . . . . . . . . . . . . . . . . . . . . . . . 264 posix_trace_close . . . . . . . . . . . . . . . . . . . . . . . . . . 264 posix_trace_create . . . . . . . . . . . . . . . . . . . . . . . . . 264

posix_trace_create_withlog . . . . . . . . . . . . . . . . 265

posix_trace_event . . . . . . . . . . . . . . . . . . . . . . . . . . 265

posix_trace_eventid_equal . . . . . . . . . . . . . . . . . 265
posix_trace_eventid_get_name . . . . . . . . . . . . . . 266
posix_trace_eventid_open . . . . . . . . . . . . . . . . . . 266
posix_trace_eventset_add . . . . . . . . . . . . . . . . . . 266
posix_trace_eventset_del . . . . . . . . . . . . . . . . . . 266
posix_trace_eventset_empty . . . . . . . . . . . . . . . . 267
posix_trace_eventset_fill . . . . . . . . . . . . . . . . . 267
posix_trace_eventset_ismember. . . . . . . . . . . . . 267
posix_trace_eventtypelist_getnext_id. . . . . 268
posix_trace_eventtypelist_rewind . . . . . . . . . 268

posix_trace_flush . . . . . . . . . . . . . . . . . . . . . . . . . . 268 posix_trace_get_attr . . . . . . . . . . . . . . . . . . . . . . . 268 posix_trace_get_filter. . . . . . . . . . . . . . . . . . . . . 269 posix_trace_get_status. . . . . . . . . . . . . . . . . . . . . 269

posix_trace_getnext_event . . . . . . . . . . . . . . . . . 269

posix_trace_open. . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 posix_trace_rewind . . . . . . . . . . . . . . . . . . . . . . . . . 270 posix_trace_set_filter. . . . . . . . . . . . . . . . . . . . . 270 posix_trace_shutdown . . . . . . . . . . . . . . . . . . . . . . . 270 posix_trace_start . . . . . . . . . . . . . . . . . . . . . . . . . . 271 posix_trace_stop. . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

posix_trace_timedgetnext_event . . . . . . . . . . . 271
posix_trace_trid_eventid_open. . . . . . . . . . . . . 272
posix_trace_trygetnext_event . . . . . . . . . . . . . . 272
posix_typed_mem_get_info . . . . . . . . . . . . . . . . . . 272

posix_typed_mem_open . . . . . . . . . . . . . . . . . . . . . . . 272 POSIX Awk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 pow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 pow10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470 pow10f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 pow10l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 powf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 powl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 prctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 pread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 preadv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586 printf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 printf_size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 printf_size_info. . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 privileged tests modules . . . . . . . . . . . . . . . . . . . . . . . 33 prlimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 process_vm_readv. . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 process_vm_writev . . . . . . . . . . . . . . . . . . . . . . . . . . 587 profil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 progname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623

                                                program_invocation_name . . . . . . . . . . . . . . . . . . . 449
                                                program_invocation_short_name. . . . . . . . . . . . . 450

program_name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 pselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 psiginfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 psignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 pthread_atfork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 pthread_attr_destroy . . . . . . . . . . . . . . . . . . . . . . . 276

                                                pthread_attr_getaffinity_np . . . . . . . . . . . . . . . 492
                                                pthread_attr_getdetachstate . . . . . . . . . . . . . . . 276
                                                pthread_attr_getguardsize . . . . . . . . . . . . . . . . . 277
                                                pthread_attr_getinheritsched . . . . . . . . . . . . . . 277
                                                pthread_attr_getschedparam . . . . . . . . . . . . . . . . 277
                                                pthread_attr_getschedpolicy . . . . . . . . . . . . . . . 277

pthread_attr_getscope . . . . . . . . . . . . . . . . . . . . . . 278 pthread_attr_getstack . . . . . . . . . . . . . . . . . . . . . . 278

                                                pthread_attr_getstackaddr . . . . . . . . . . . . . . . . . 421
                                                pthread_attr_getstacksize . . . . . . . . . . . . . . . . . 278

pthread_attr_init . . . . . . . . . . . . . . . . . . . . . . . . . . 278

                                                pthread_attr_setaffinity_np . . . . . . . . . . . . . . . 492
                                                pthread_attr_setdetachstate . . . . . . . . . . . . . . . 279
                                                pthread_attr_setguardsize . . . . . . . . . . . . . . . . . 279
                                                pthread_attr_setinheritsched . . . . . . . . . . . . . . 279
                                                pthread_attr_setschedparam . . . . . . . . . . . . . . . . 279
                                                pthread_attr_setschedpolicy . . . . . . . . . . . . . . . 280

pthread_attr_setscope . . . . . . . . . . . . . . . . . . . . . . 280 pthread_attr_setstack . . . . . . . . . . . . . . . . . . . . . . 280

                                                pthread_attr_setstackaddr . . . . . . . . . . . . . . . . . 421
                                                pthread_attr_setstacksize . . . . . . . . . . . . . . . . . 280
                                                pthread_barrier_destroy . . . . . . . . . . . . . . . . . . . 281

pthread_barrier_init . . . . . . . . . . . . . . . . . . . . . . . 281 pthread_barrier_wait . . . . . . . . . . . . . . . . . . . . . . . 281

                                                pthread_barrierattr_destroy . . . . . . . . . . . . . . . 281
                                                pthread_barrierattr_getpshared . . . . . . . . . . . 282
                                                pthread_barrierattr_init . . . . . . . . . . . . . . . . . . 282
                                                pthread_barrierattr_setpshared . . . . . . . . . . . 282

pthread_cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283 pthread_cleanup_pop . . . . . . . . . . . . . . . . . . . . . . . . 283 pthread_cleanup_push . . . . . . . . . . . . . . . . . . . . . . . 283 pthread_cond_broadcast. . . . . . . . . . . . . . . . . . . . . 283 pthread_cond_destroy . . . . . . . . . . . . . . . . . . . . . . . 284 pthread_cond_init . . . . . . . . . . . . . . . . . . . . . . . . . . 284 pthread_cond_signal . . . . . . . . . . . . . . . . . . . . . . . . 284 pthread_cond_timedwait. . . . . . . . . . . . . . . . . . . . . 284 pthread_cond_wait . . . . . . . . . . . . . . . . . . . . . . . . . . 285

pthread_condattr_destroy . . . . . . . . . . . . . . . . . . 285
pthread_condattr_getclock . . . . . . . . . . . . . . . . . 285
pthread_condattr_getpshared . . . . . . . . . . . . . . . 285

pthread_condattr_init . . . . . . . . . . . . . . . . . . . . . . 286

pthread_condattr_setclock . . . . . . . . . . . . . . . . . 286
pthread_condattr_setpshared . . . . . . . . . . . . . . . 286

pthread_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 pthread_detach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 pthread_equal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 pthread_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287 pthread_getaffinity_np. . . . . . . . . . . . . . . . . . . . . 492 pthread_getattr_np . . . . . . . . . . . . . . . . . . . . . . . . . 493 pthread_getconcurrency. . . . . . . . . . . . . . . . . . . . . 287 pthread_getcpuclockid . . . . . . . . . . . . . . . . . . . . . . 288 pthread_getname_np . . . . . . . . . . . . . . . . . . . . . . . . . 493 pthread_getschedparam . . . . . . . . . . . . . . . . . . . . . . 288 pthread_getspecific . . . . . . . . . . . . . . . . . . . . . . . . 288 pthread_join . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 pthread_key_create . . . . . . . . . . . . . . . . . . . . . . . . . 289 pthread_key_delete . . . . . . . . . . . . . . . . . . . . . . . . . 289 pthread_kill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

pthread_kill_other_threads_np. . . . . . . . . . . . . 493
pthread_mutex_consistent . . . . . . . . . . . . . . . . . . 289
pthread_mutex_consistent_np . . . . . . . . . . . . . . . 493

pthread_mutex_destroy . . . . . . . . . . . . . . . . . . . . . . 290

pthread_mutex_getprioceiling . . . . . . . . . . . . . . 290

pthread_mutex_init . . . . . . . . . . . . . . . . . . . . . . . . . 290 pthread_mutex_lock . . . . . . . . . . . . . . . . . . . . . . . . . 290

pthread_mutex_setprioceiling . . . . . . . . . . . . . . 291
pthread_mutex_timedlock . . . . . . . . . . . . . . . . . . . 291

pthread_mutex_trylock . . . . . . . . . . . . . . . . . . . . . . 291 pthread_mutex_unlock . . . . . . . . . . . . . . . . . . . . . . . 291

pthread_mutexattr_destroy . . . . . . . . . . . . . . . . . 292
pthread_mutexattr_getprioceiling . . . . . . . . . 292
pthread_mutexattr_getprotocol. . . . . . . . . . . . . 292
pthread_mutexattr_getpshared . . . . . . . . . . . . . . 292
pthread_mutexattr_getrobust . . . . . . . . . . . . . . . 293
pthread_mutexattr_getrobust_np . . . . . . . . . . . 493
pthread_mutexattr_gettype . . . . . . . . . . . . . . . . . 293

pthread_mutexattr_init. . . . . . . . . . . . . . . . . . . . . 293

pthread_mutexattr_setprioceiling . . . . . . . . . 293
pthread_mutexattr_setprotocol. . . . . . . . . . . . . 294
pthread_mutexattr_setpshared . . . . . . . . . . . . . . 294
pthread_mutexattr_setrobust . . . . . . . . . . . . . . . 294
pthread_mutexattr_setrobust_np . . . . . . . . . . . 494
pthread_mutexattr_settype . . . . . . . . . . . . . . . . . 294

pthread_once . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295 pthread_rwlock_destroy. . . . . . . . . . . . . . . . . . . . . 295 pthread_rwlock_init . . . . . . . . . . . . . . . . . . . . . . . . 295 pthread_rwlock_rdlock . . . . . . . . . . . . . . . . . . . . . . 295

pthread_rwlock_timedrdlock . . . . . . . . . . . . . . . . 296
pthread_rwlock_timedwrlock . . . . . . . . . . . . . . . . 296
pthread_rwlock_tryrdlock . . . . . . . . . . . . . . . . . . 296
pthread_rwlock_trywrlock . . . . . . . . . . . . . . . . . . 296

pthread_rwlock_unlock . . . . . . . . . . . . . . . . . . . . . . 297 pthread_rwlock_wrlock . . . . . . . . . . . . . . . . . . . . . . 297

                                                pthread_rwlockattr_destroy . . . . . . . . . . . . . . . . 297
                                                pthread_rwlockattr_getkind_np. . . . . . . . . . . . . 494
                                                pthread_rwlockattr_getpshared. . . . . . . . . . . . . 297
                                                pthread_rwlockattr_init . . . . . . . . . . . . . . . . . . . 298
                                                pthread_rwlockattr_setkind_np. . . . . . . . . . . . . 494
                                                pthread_rwlockattr_setpshared. . . . . . . . . . . . . 298

pthread_self . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 pthread_setaffinity_np. . . . . . . . . . . . . . . . . . . . . 494 pthread_setcancelstate. . . . . . . . . . . . . . . . . . . . . 298 pthread_setcanceltype . . . . . . . . . . . . . . . . . . . . . . 299 pthread_setconcurrency. . . . . . . . . . . . . . . . . . . . . 299 pthread_setname_np . . . . . . . . . . . . . . . . . . . . . . . . . 495 pthread_setschedparam . . . . . . . . . . . . . . . . . . . . . . 299 pthread_setschedprio . . . . . . . . . . . . . . . . . . . . . . . 299 pthread_setspecific . . . . . . . . . . . . . . . . . . . . . . . . 300 pthread_sigmask. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 pthread_sigqueue. . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 pthread_spin_destroy . . . . . . . . . . . . . . . . . . . . . . . 300 pthread_spin_init . . . . . . . . . . . . . . . . . . . . . . . . . . 301 pthread_spin_lock . . . . . . . . . . . . . . . . . . . . . . . . . . 301 pthread_spin_trylock . . . . . . . . . . . . . . . . . . . . . . . 301 pthread_spin_unlock . . . . . . . . . . . . . . . . . . . . . . . . 301 pthread_testcancel . . . . . . . . . . . . . . . . . . . . . . . . . 302 pthread_timedjoin_np . . . . . . . . . . . . . . . . . . . . . . . 495 pthread_tryjoin_np . . . . . . . . . . . . . . . . . . . . . . . . . 495 pthread_yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495 ptrace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 ptsname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 ptsname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 putc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 putc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 putchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 putchar_unlocked. . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 putenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 putgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 putmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 putpmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 putpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497 puts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 putsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 putspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552 pututline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 pututxline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 putw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 putwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 putwc_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 putwchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 putwchar_unlocked . . . . . . . . . . . . . . . . . . . . . . . . . . 606 pvalloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465 pwrite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 pwritev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587

Q

qecvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 qecvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 qfcvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 qfcvt_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 qgcvt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 qsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 qsort_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 quick_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 quotactl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 quote_n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 quotearg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 quotearg_alloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623

R

raise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 rand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 rand_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 random . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 random_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 range argument to re_search . . . . . . . . . . . . . . . . 655 rawmemchr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572 rcmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 rcmd_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 re_comp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498, 660 re_compile_fastmap . . . . . . . . . . . . . . . . . . . . 498, 656 re_compile_pattern . . . . . . . . . . . . . . . . . . . . 498, 654 re_exec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498, 660 re_match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498, 654 re_match_2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499, 655

re_nsub field, set by re_compile_pattern . . . . 654

re_pattern_buffer definition . . . . . . . . . . . . . . . . 653 re_registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657 re_search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499, 655 re_search_2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499, 655 re_set_registers . . . . . . . . . . . . . . . . . . . . . . . 499, 658 re_set_syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 re_syntax_options . . . . . . . . . . . . . . . . . . . . . . . . . . 500 re_syntax_options initialization . . . . . . . . . . . . . 653

RE_BACKSLASH_ESCAPE_IN_LIST . . . . . . . . . . . . . . . 638

RE_BK_PLUS_QM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638 RE_CHAR_CLASSES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638

RE_CONTEXT_INDEP_ANCHORS . . . . . . . . . . . . . . . . . . 638
RE_CONTEXT_INDEP_ANCHORS (and ‘^’) . . . . . . . . . 650

RE_CONTEXT_INDEP_OPS . . . . . . . . . . . . . . . . . . . . . . . 638 RE_CONTEXT_INVALID_DUP. . . . . . . . . . . . . . . . . . . . . 638 RE_CONTEXT_INVALID_OPS. . . . . . . . . . . . . . . . . . . . . 639 RE_DEBUG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 RE_DOT_NEWLINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 RE_DOT_NOT_NULL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639

RE_HAT_LISTS_NOT_NEWLINE . . . . . . . . . . . . . . . . . . 639

RE_ICASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 RE_INTERVALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639

RE_INVALID_INTERVAL_ORD . . . . . . . . . . . . . . . . . . . 639

RE_LIMITED_OPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 RE_NEWLINE_ALT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 RE_NO_BK_BRACES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639 RE_NO_BK_PARENS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 RE_NO_BK_REFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 RE_NO_BK_VBAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640 RE_NO_EMPTY_RANGES . . . . . . . . . . . . . . . . . . . . . . . . . 640 RE_NO_GNU_OPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640

RE_NO_POSIX_BACKTRACKING . . . . . . . . . . . . . . . . . . 640

RE_NO_SUB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640

RE_UNMATCHED_RIGHT_PAREN_ORD . . . . . . . . . . . . . . 640

read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 readahead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 readdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 readdir_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 readlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 readlinkat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 readv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 realloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 REALLOC_N. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 realpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 reboot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579 recv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 recvfrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 recvmmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 recvmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311 regcomp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 regerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 regex.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 regexec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 regexp anchoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650 regfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312, 659

register_printf_function . . . . . . . . . . . . . . . . . . 491
register_printf_modifier . . . . . . . . . . . . . . . . . . 491
register_printf_specifier . . . . . . . . . . . . . . . . . 491

register_printf_type . . . . . . . . . . . . . . . . . . . . . . . 492 regular expressions, syntax of . . . . . . . . . . . . . . . . . 637 remainder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 remainderf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 remainderl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 remap_file_pages. . . . . . . . . . . . . . . . . . . . . . . . . . . . 577 remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 removexattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 remque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 remquo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 remquof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 remquol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 rename . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 renameat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 res_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 res_mkquery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 res_query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501 res_querydomain. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 res_search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 revoke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 rewind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 rewinddir. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 rexec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 rexec_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 rindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 rint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 rintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 rintl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 rmdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 roundf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 roundl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 rpc_createerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509 rpmatch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 rresvport. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 rresvport_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 rtime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 ruserok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 ruserok_af . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

S

sbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 scalb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 scalbf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 scalbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 scalbln . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319 scalblnf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 scalblnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 scalbn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 scalbnf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 scalbnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 scandir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 scandirat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 scanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 sched_get_priority_max. . . . . . . . . . . . . . . . . . . . . 322 sched_get_priority_min. . . . . . . . . . . . . . . . . . . . . 322 sched_getaffinity . . . . . . . . . . . . . . . . . . . . . . . . . . 548 sched_getparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 sched_getscheduler . . . . . . . . . . . . . . . . . . . . . . . . . 322 sched_rr_get_interval . . . . . . . . . . . . . . . . . . . . . . 323 sched_setaffinity . . . . . . . . . . . . . . . . . . . . . . . . . . 548 sched_setparam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 sched_setscheduler . . . . . . . . . . . . . . . . . . . . . . . . . 323 sched_yield . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323 searching with GNU functions . . . . . . . . . . . . . . . . 654 secure_getenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 seed48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 seed48_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 seekdir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 select . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 sem_close. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 sem_destroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 sem_getvalue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 sem_init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 sem_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 sem_post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 sem_timedwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 sem_trywait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 sem_unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 sem_wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 semctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 semget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327 semop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 semtimedop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 send . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 sendfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 580 sendmmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581 sendmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 sendto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 setaliasent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 setbuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 setbuffer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 setcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421 setdomainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 setegid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 setenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 seteuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 setfsent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 setfsgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 setfsuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 575 setgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 setgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 setgroups. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 sethostent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 sethostid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 sethostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 setipv4sourcefilter . . . . . . . . . . . . . . . . . . . . . . . . 487 setitimer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 setjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 setkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 setkey_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 setlinebuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 setlocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 setlogin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598 setlogmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 setmntent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476 setnetent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 setnetgrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 setns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 setpgid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 setpgrp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 setpriority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 setprotoent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 setpwent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 setregid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 setresgid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 setresuid. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599 setreuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 setrlimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 setrpcent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 setservent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 setsgent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 setsid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 setsockopt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 setsourcefilter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488 setspent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 setstate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 setstate_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 settimeofday . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585 setttyent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594 setuid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 setusershell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 setutent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 setutxent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 setvbuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 setxattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 591 sgetsgent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 sgetsgent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 sgetspent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 sgetspent_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 shm_open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335 shm_unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 shmat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 shmctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 shmdt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 shmget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 sigaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337 sigaddset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 sigaltstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 sigandset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 sigblock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 sigdelset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 sigemptyset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 sigfillset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 siggetmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 sighold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 sigignore. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 siginterrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 sigisemptyset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 sigismember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 siglongjmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 signbit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 signgam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 significand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471 significandf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 significandl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 sigorset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554 sigpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 sigpending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 sigprocmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 sigqueue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 sigrelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 sigreturn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 sigset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 sigsetjmp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 sigsetmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 sigstack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 sigsuspend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 sigtimedwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 sigvec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 sigwait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 sigwaitinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 sincos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 sincosf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 sincosl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472 sinf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 sinh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344 sinhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

sinhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
sinl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
snprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
sockatmark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
socket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
socketpair . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
sprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348
sprofil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
sqrtf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
sqrtl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
srand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
srand48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
srand48_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
srandom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
srandom_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568
sscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
ssignal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
ST_BLKSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
ST_NBLOCKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
ST_NBLOCKSIZE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636
start argument to re_search . . . . . . . . . . . . . . . . 655

                                                start in struct re_registers . . . . . . . . . . . . . . . 657

stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
statfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
statvfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
stderr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
stdin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
stdout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
stime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
stpcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
stpncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
strcasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
strcasecmp_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
strcasestr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
strcat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
strchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
strchrnul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
strcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
strcoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
strcoll_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
strcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
strcspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
strdup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
strerror . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
strerror_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
strerror_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
strfmon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
strfmon_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
strfry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
strftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
strftime_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
strlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
strncasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
strncasecmp_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

strncat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 strncmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 strncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359 strndup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 strnlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 strpbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 strptime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 strptime_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592 strrchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 strsep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 strsignal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 strspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 strstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 strtod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362 strtod_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 strtof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 strtof_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 strtoimax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 strtok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 strtok_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 strtol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 strtol_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 strtold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 strtold_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 strtoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364 strtoll_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 strtoq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 strtoul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 strtoul_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 strtoull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 strtoull_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 strtoumax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 strtouq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570

struct re_pattern_buffer definition . . . . . . . . . 653

strverscmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573 strxfrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 strxfrm_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 subexpressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648 svc_exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 svc_fdset. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 svc_getreq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 svc_getreq_common . . . . . . . . . . . . . . . . . . . . . . . . . . 517 svc_getreq_poll. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 svc_getreqset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 svc_max_pollfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 svc_pollfd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517 svc_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 svc_run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 svc_sendreply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 svc_unregister . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 svcerr_auth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 svcerr_decode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518 svcerr_noproc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 svcerr_noprog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 svcerr_progvers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 svcerr_systemerr. . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 svcerr_weakauth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 svcraw_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519 svctcp_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 svcudp_bufcreate. . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 svcudp_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 svcunix_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 swab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 swapcontext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 swapoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 swapon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 swprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 swscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366 symlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 symlinkat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 syncfs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 syntax bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638

                                                syntax field, set by re_compile_pattern . . . . . 654

syntax initialization . . . . . . . . . . . . . . . . . . . . . . . . . . 653 syntax of regular expressions. . . . . . . . . . . . . . . . . . 637 sys_errlist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 sys_nerr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 sys_siglist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555 syscall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 sysconf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 sysctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582 sysinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583 syslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 sysv_signal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556

T

tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 tanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 tanh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 tanhf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 tanhl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369 tanl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 tcdrain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 tcflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 tcflush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 tcgetattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 tcgetpgrp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 tcgetsid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 tcsendbreak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371 tcsetattr. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 tcsetpgrp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 tdelete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 tdestroy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549 telldir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 tempnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 tests modules, C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 tests modules, long-running . . . . . . . . . . . . . . . . . . . . 33 tests modules, privileged . . . . . . . . . . . . . . . . . . . . . . . 33 tests modules, unportable. . . . . . . . . . . . . . . . . . . . . . 33 textdomain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 tfind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 tgamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 tgammaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 tgammal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 timegm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 timelocal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 timer_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 timer_delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 timer_getoverrun. . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 timer_gettime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 timer_settime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 times . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 timespec_get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593 timezone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 tmpfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 tmpnam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 tmpnam_r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 560 toascii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 tolower_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 toupper_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 towctrans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 towctrans_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 towlower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 towlower_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 towupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 towupper_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379 translate initialization . . . . . . . . . . . . . . . . . . . . . . 653 trunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 truncate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 truncf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 truncl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 tsearch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 ttyname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 ttyname_r. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 ttyslot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 twalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 TYPE_IS_INTEGER. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 TYPE_MAXIMUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 TYPE_MINIMUM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 TYPE_SIGNED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 614 tzname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 tzset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

U

ualarm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 ulckpwdf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553 ulimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 umask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 umount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 umount2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578 uname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 ungetc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 ungetwc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 unlink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 unlinkat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 unlockpt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 unportable tests modules . . . . . . . . . . . . . . . . . . . . . . 33 unsetenv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 updwtmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 602 updwtmpx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604 uselocale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 user2netname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 usleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 ustat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587 utime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 utimensat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 utimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 utmpname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 utmpxname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604

V

va_arg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 va_copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 va_end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 va_start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 valloc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570 vasprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561 vdprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 verify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 verify_expr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612 verr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 verrx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 versionsort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445 vfork . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 vfprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 vfscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 vfwprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 vfwscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 vhangup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600 vlimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 vm86 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 vprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 vscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 vsnprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 vsprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395 vsscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 vswprintf. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396 vswscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 vsyslog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584 vtimes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 vwarn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 vwarnx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 vwprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 vwscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

W

wait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 wait3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588 wait4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589 waitid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 waitpid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 warn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 warnx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 wcpcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 wcpncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 wcrtomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 wcscasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 wcscasecmp_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 wcscat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 wcschr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 wcschrnul. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 wcscmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 wcscoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 wcscoll_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 wcscpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 wcscspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401 wcsdup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 wcsftime . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 wcsftime_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 wcslen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 wcsncasecmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 wcsncasecmp_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 wcsncat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 wcsncmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 wcsncpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 wcsnlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 wcsnrtombs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 wcspbrk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404 wcsrchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 wcsrtombs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 wcsspn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 wcsstr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 wcstod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 wcstod_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 wcstof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 wcstof_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 wcstoimax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406 wcstok . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 wcstol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 wcstol_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 wcstold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 wcstold_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607 wcstoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 wcstoll_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 wcstombs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 wcstoq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 wcstoul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 wcstoul_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 wcstoull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408 wcstoull_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608 wcstoumax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 wcstouq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 wcswcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423 wcswidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 wcsxfrm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 wcsxfrm_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 wctob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 wctomb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 wctrans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 wctrans_l. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 wctype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 wctype_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 wcwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 wmemchr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 wmemcmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412 wmemcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 wmemmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 wmempcpy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609 wmemset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 word boundaries, matching . . . . . . . . . . . . . . . . . . . 651 wordexp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413 wordfree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 wprintf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 wraparound integer arithmetic . . . . . . . . . . . . . . . . 615 write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 writev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 wscanf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415

X

xalloc_die. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 xdr_array. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 xdr_authunix_parms . . . . . . . . . . . . . . . . . . . . . . . . . 506 xdr_bool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 xdr_bytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 xdr_callhdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 xdr_callmsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 xdr_cback_data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 xdr_char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 xdr_cryptkeyarg. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 xdr_cryptkeyarg2. . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 xdr_cryptkeyres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 510 xdr_des_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 xdr_domainname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 xdr_double . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 xdr_enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 xdr_float. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 xdr_free . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 xdr_getcredres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 xdr_hyper. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 xdr_int . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 xdr_int16_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522 xdr_int32_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 xdr_int64_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 xdr_int8_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 xdr_key_netstarg. . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 xdr_key_netstres. . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 xdr_keybuf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 xdr_keydat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 xdr_keystatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 xdr_long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 xdr_longlong_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523 xdr_mapname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 xdr_netnamestr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511 xdr_netobj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 xdr_obj_p. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540 xdr_opaque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 xdr_opaque_auth. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 xdr_peername . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 xdr_pmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 xdr_pmaplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 xdr_pointer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 xdr_quad_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 xdr_reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 xdr_replymsg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 xdr_rmtcall_args. . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 xdr_rmtcallres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515 xdr_short. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 524 xdr_sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 xdr_string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 xdr_u_char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 xdr_u_hyper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 xdr_u_int. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 xdr_u_long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525 xdr_u_longlong_t. . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 xdr_u_quad_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 xdr_u_short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 xdr_uint16_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 xdr_uint32_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526 xdr_uint64_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 xdr_uint8_t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 xdr_union. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 xdr_unixcred . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512 xdr_valdat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 xdr_vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 xdr_void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527 xdr_wrapstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 xdr_yp_buf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 xdr_ypall. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 xdr_ypbind_binding . . . . . . . . . . . . . . . . . . . . . . . . . 541 xdr_ypbind_resp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 xdr_ypbind_resptype . . . . . . . . . . . . . . . . . . . . . . . . 542 xdr_ypbind_setdom . . . . . . . . . . . . . . . . . . . . . . . . . . 542 xdr_ypdelete_args . . . . . . . . . . . . . . . . . . . . . . . . . . 548 xdr_ypmap_parms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 xdr_ypmaplist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 xdr_yppush_status . . . . . . . . . . . . . . . . . . . . . . . . . . 542 xdr_yppushresp_xfr . . . . . . . . . . . . . . . . . . . . . . . . . 542 xdr_ypreq_key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 xdr_ypreq_nokey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 xdr_ypreq_xfr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 xdr_ypresp_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543 xdr_ypresp_key_val . . . . . . . . . . . . . . . . . . . . . . . . . 543 xdr_ypresp_maplist . . . . . . . . . . . . . . . . . . . . . . . . . 543 xdr_ypresp_master . . . . . . . . . . . . . . . . . . . . . . . . . . 544 xdr_ypresp_order. . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 xdr_ypresp_val . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 xdr_ypresp_xfr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 xdr_ypstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544 xdr_ypupdate_args . . . . . . . . . . . . . . . . . . . . . . . . . . 548 xdr_ypxfrstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 xdrmem_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 xdrrec_create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 xdrrec_endofrecord . . . . . . . . . . . . . . . . . . . . . . . . . 528 xdrrec_eof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528 xdrrec_skiprecord . . . . . . . . . . . . . . . . . . . . . . . . . . 528 xdrstdio_create. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529 xprt_register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520 xprt_unregister. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520

Y

y0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415 y0f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 y0l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 y1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 y1f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 y1l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 yn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 ynf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473 ynl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474 yp_all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 yp_bind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 yp_first . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545 yp_get_default_domain . . . . . . . . . . . . . . . . . . . . . . 546 yp_master. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 yp_match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 yp_next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 yp_order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 yp_unbind. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 yp_update. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 ypbinderr_string. . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 yperr_string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547 ypprot_err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547