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