26383bc89a2ee9ad4604c2e70edafc1cfa05bc2e
[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 lchown
51 getpass
52 readline (the library)
53 inet_ntoa
54 inet_ntop
55 inet_pton
56 inet_aton
57 strtoll
58 strtoull
59 socketpair
60 strptime
61 getaddrinfo
62 freeaddrinfo
63 getnameinfo
64 gai_strerror
65 getifaddrs
66 freeifaddrs
67 utime
68 utimes
69 dup2
70 link
71 readlink
72 symlink
73 realpath
74
75 Types:
76 bool
77 socklen_t
78 uint_t
79 uint{8,16,32,64}_t
80 int{8,16,32,64}_t
81 intptr_t
82 sig_atomic_t
83
84 Constants:
85 PATH_NAME_MAX
86 UINT{16,32,64}_MAX
87 INT32_MAX
88 RTLD_LAZY
89 HOST_NAME_MAX
90 UINT16_MAX
91 UINT32_MAX
92 UINT64_MAX
93 CHAR_BIT
94
95 Macros:
96 va_copy
97 __FUNCTION__
98 __FILE__
99 __LINE__
100 __LINESTR__
101 __location__
102 __STRING
103 __STRINGSTRING
104 MIN
105 MAX
106 QSORT_CAST
107 ZERO_STRUCT
108 ZERO_STRUCTP
109 ZERO_STRUCTPN
110 ZERO_ARRAY
111 ARRAY_SIZE
112 PTR_DIFF
113
114 Headers:
115 stdint.h
116 stdbool.h
117
118 Optional C keywords:
119 volatile
120
121 Prerequisites:
122 memset (for bzero)
123 syslog (for vsyslog)
124 mktemp (for mkstemp and mkdtemp)