Move sys_link to libreplace.
[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
70 Types:
71 bool
72 socklen_t
73 uint_t
74 uint{8,16,32,64}_t
75 int{8,16,32,64}_t
76 intptr_t
77 sig_atomic_t
78
79 Constants:
80 PATH_NAME_MAX
81 UINT{16,32,64}_MAX
82 INT32_MAX
83 RTLD_LAZY
84 HOST_NAME_MAX
85 UINT16_MAX
86 UINT32_MAX
87 UINT64_MAX
88 CHAR_BIT
89
90 Macros:
91 va_copy
92 __FUNCTION__
93 __FILE__
94 __LINE__
95 __LINESTR__
96 __location__
97 __STRING
98 __STRINGSTRING
99 MIN
100 MAX
101 QSORT_CAST
102 ZERO_STRUCT
103 ZERO_STRUCTP
104 ZERO_STRUCTPN
105 ZERO_ARRAY
106 ARRAY_SIZE
107 PTR_DIFF
108
109 Headers:
110 stdint.h
111 stdbool.h
112
113 Optional C keywords:
114 volatile
115
116 Prerequisites:
117 memset (for bzero)
118 syslog (for vsyslog)
119 mktemp (for mkstemp and mkdtemp)