README
1This subsystem ensures that we can always use a certain core set of
2functions and types, that are either provided by the OS or by replacement
3functions / definitions in this subsystem. The aim is to try to stick
4to POSIX functions in here as much as possible. Convenience functions
5that are available on no platform at all belong in other subsystems
6(such as LIBUTIL).
7
8The following functions are guaranteed:
9
10ftruncate
11strlcpy
12strlcat
13mktime
14rename
15initgroups
16memmove
17strdup
18setlinebuf
19vsyslog
20timegm
21setenv
22unsetenv
23strndup
24strnlen
25waitpid
26seteuid
27setegid
28asprintf
29snprintf
30vasprintf
31vsnprintf
32opendir
33readdir
34telldir
35seekdir
36closedir
37dlopen
38dlclose
39dlsym
40dlerror
41chroot
42bzero
43strerror
44errno
45mkdtemp
46mkstemp (a secure one!)
47pread
48pwrite
49chown
50lchown
51getpass
52readline (the library)
53inet_ntoa
54inet_ntop
55inet_pton
56inet_aton
57strtoll
58strtoull
59socketpair
60strptime
61getaddrinfo
62freeaddrinfo
63getnameinfo
64gai_strerror
65getifaddrs
66freeifaddrs
67utime
68utimes
69dup2
70link
71readlink
72symlink
73realpath
74
75Types:
76bool
77socklen_t
78uint_t
79uint{8,16,32,64}_t
80int{8,16,32,64}_t
81intptr_t
82sig_atomic_t
83
84Constants:
85PATH_NAME_MAX
86UINT{16,32,64}_MAX
87INT32_MAX
88RTLD_LAZY
89HOST_NAME_MAX
90UINT16_MAX
91UINT32_MAX
92UINT64_MAX
93CHAR_BIT
94
95Macros:
96va_copy
97__FUNCTION__
98__FILE__
99__LINE__
100__LINESTR__
101__location__
102__STRING
103__STRINGSTRING
104MIN
105MAX
106QSORT_CAST
107ZERO_STRUCT
108ZERO_STRUCTP
109ZERO_STRUCTPN
110ZERO_ARRAY
111ARRAY_SIZE
112PTR_DIFF
113
114Headers:
115stdint.h
116stdbool.h
117
118Optional C keywords:
119volatile
120
121Prerequisites:
122memset (for bzero)
123syslog (for vsyslog)
124mktemp (for mkstemp and mkdtemp)
125