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