1explain_mkostemp(3) Library Functions Manual explain_mkostemp(3)
2
3
4
6 explain_mkostemp - explain mkostemp(3) errors
7
9 #include <libexplain/mkostemp.h>
10 const char *explain_mkostemp(char *template, int flags);
11 const char *explain_errno_mkostemp(int errnum, char *template, int
12 flags);
13 void explain_message_mkostemp(char *message, int message_size, char
14 *template, int flags);
15 void explain_message_errno_mkostemp(char *message, int message_size,
16 int errnum, char *template, int flags);
17
19 These functions may be used to obtain explanations for errors returned
20 by the mkostemp(3) system call.
21
22 explain_mkostemp
23 const char *explain_mkostemp(char *template, int flags);
24
25 The explain_mkostemp function is used to obtain an explanation of an
26 error returned by the mkostemp(3) system call. The least the message
27 will contain is the value of strerror(errno), but usually it will do
28 much better, and indicate the underlying cause in more detail.
29
30 The errno global variable will be used to obtain the error value to be
31 decoded.
32
33 template
34 The original template, exactly as passed to the mkostemp(3)
35 system call.
36
37 flags The original flags, exactly as passed to the mkostemp(3) system
38 call.
39
40 Returns:
41 The message explaining the error. This message buffer is shared
42 by all libexplain functions which do not supply a buffer in
43 their argument list. This will be overwritten by the next call
44 to any libexplain function which shares this buffer, including
45 other threads.
46
47 Note: This function is not thread safe, because it shares a return buf‐
48 fer across all threads, and many other functions in this library.
49
50 Example: This function is intended to be used in a fashion similar to
51 the following example:
52 int result = mkostemp(template, flags);
53 if (result < 0)
54 {
55 fprintf(stderr, "%s\n", explain_mkostemp(template, flags));
56 exit(EXIT_FAILURE);
57 }
58
59 The above code example is available pre‐packaged as the
60 explain_mkostemp_or_die(3) function.
61
62 explain_errno_mkostemp
63 const char *explain_errno_mkostemp(int errnum, char *template, int
64 flags);
65
66 The explain_errno_mkostemp function is used to obtain an explanation of
67 an error returned by the mkostemp(3) system call. The least the mes‐
68 sage will contain is the value of strerror(errno), but usually it will
69 do much better, and indicate the underlying cause in more detail.
70
71 errnum The error value to be decoded, usually obtained from the errno
72 global variable just before this function is called. This is
73 necessary if you need to call any code between the system call
74 to be explained and this function, because many libc functions
75 will alter the value of errno.
76
77 template
78 The original template, exactly as passed to the mkostemp(3)
79 system call.
80
81 flags The original flags, exactly as passed to the mkostemp(3) system
82 call.
83
84 Returns:
85 The message explaining the error. This message buffer is shared
86 by all libexplain functions which do not supply a buffer in
87 their argument list. This will be overwritten by the next call
88 to any libexplain function which shares this buffer, including
89 other threads.
90
91 Note: This function is not thread safe, because it shares a return buf‐
92 fer across all threads, and many other functions in this library.
93
94 Example: This function is intended to be used in a fashion similar to
95 the following example:
96 int result = mkostemp(template, flags);
97 if (result < 0)
98 {
99 int err = errno;
100 fprintf(stderr, "%s\n", explain_errno_mkostemp(err, tem‐
101 plate, flags));
102 exit(EXIT_FAILURE);
103 }
104
105 The above code example is available pre‐packaged as the
106 explain_mkostemp_or_die(3) function.
107
108 explain_message_mkostemp
109 void explain_message_mkostemp(char *message, int message_size, char
110 *template, int flags);
111
112 The explain_message_mkostemp function is used to obtain an explanation
113 of an error returned by the mkostemp(3) system call. The least the
114 message will contain is the value of strerror(errno), but usually it
115 will do much better, and indicate the underlying cause in more detail.
116
117 The errno global variable will be used to obtain the error value to be
118 decoded.
119
120 message The location in which to store the returned message. If a suit‐
121 able message return buffer is supplied, this function is thread
122 safe.
123
124 message_size
125 The size in bytes of the location in which to store the
126 returned message.
127
128 template
129 The original template, exactly as passed to the mkostemp(3)
130 system call.
131
132 flags The original flags, exactly as passed to the mkostemp(3) system
133 call.
134
135 Example: This function is intended to be used in a fashion similar to
136 the following example:
137 int result = mkostemp(template, flags);
138 if (result < 0)
139 {
140 char message[3000];
141 explain_message_mkostemp(message, sizeof(message), template,
142 flags);
143 fprintf(stderr, "%s\n", message);
144 exit(EXIT_FAILURE);
145 }
146
147 The above code example is available pre‐packaged as the
148 explain_mkostemp_or_die(3) function.
149
150 explain_message_errno_mkostemp
151 void explain_message_errno_mkostemp(char *message, int message_size,
152 int errnum, char *template, int flags);
153
154 The explain_message_errno_mkostemp function is used to obtain an expla‐
155 nation of an error returned by the mkostemp(3) system call. The least
156 the message will contain is the value of strerror(errno), but usually
157 it will do much better, and indicate the underlying cause in more
158 detail.
159
160 message The location in which to store the returned message. If a suit‐
161 able message return buffer is supplied, this function is thread
162 safe.
163
164 message_size
165 The size in bytes of the location in which to store the
166 returned message.
167
168 errnum The error value to be decoded, usually obtained from the errno
169 global variable just before this function is called. This is
170 necessary if you need to call any code between the system call
171 to be explained and this function, because many libc functions
172 will alter the value of errno.
173
174 template
175 The original template, exactly as passed to the mkostemp(3)
176 system call.
177
178 flags The original flags, exactly as passed to the mkostemp(3) system
179 call.
180
181 Example: This function is intended to be used in a fashion similar to
182 the following example:
183 int result = mkostemp(template, flags);
184 if (result < 0)
185 {
186 int err = errno;
187 char message[3000];
188 explain_message_errno_mkostemp(message, sizeof(message),
189 err, template, flags);
190 fprintf(stderr, "%s\n", message);
191 exit(EXIT_FAILURE);
192 }
193
194 The above code example is available pre‐packaged as the
195 explain_mkostemp_or_die(3) function.
196
198 mkostemp(3)
199 create a unique temporary file
200
201 explain_mkostemp_or_die(3)
202 create a unique temporary file and report errors
203
205 libexplain version 0.40
206 Copyright (C) 2009 Peter Miller
207
208
209
210 explain_mkostemp(3)