OSDN Git Service

(split) LDP: Update POT and ja.po to LDP v3.54
[linuxjm/LDP_man-pages.git] / po4a / man3 / po / man3.pot
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 #, fuzzy
7 msgid ""
8 msgstr ""
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2013-09-28 04:06+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
14 "Language: \n"
15 "MIME-Version: 1.0\n"
16 "Content-Type: text/plain; charset=CHARSET\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man3/__setfpucw.3:8
21 #, no-wrap
22 msgid "__SETFPUCW"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man3/__setfpucw.3:8
27 #, no-wrap
28 msgid "2012-12-31"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man3/__setfpucw.3:8 build/C/man3/queue.3:39
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man3/__setfpucw.3:8 build/C/man3/addseverity.3:9 build/C/man3/argz_add.3:10 build/C/man3/backtrace.3:27 build/C/man3/basename.3:27 build/C/man3/envz_add.3:10 build/C/man3/ftok.3:29 build/C/man3/longjmp.3:27 build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24 build/C/man3/queue.3:39 build/C/man3/realpath.3:28 build/C/man3/setjmp.3:27 build/C/man3/xcrypt.3:13
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man3/__setfpucw.3:9 build/C/man3/addseverity.3:10 build/C/man3/argz_add.3:11 build/C/man3/backtrace.3:28 build/C/man3/basename.3:28 build/C/man3/envz_add.3:11 build/C/man3/ftok.3:30 build/C/man3/longjmp.3:28 build/C/man3/offsetof.3:29 build/C/man3/program_invocation_name.3:25 build/C/man3/queue.3:40 build/C/man3/realpath.3:29 build/C/man3/setjmp.3:28 build/C/man3/xcrypt.3:14
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man3/__setfpucw.3:11
51 msgid "__setfpucw - set FPU control word on i386 architecture (obsolete)"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man3/__setfpucw.3:11 build/C/man3/addseverity.3:12 build/C/man3/argz_add.3:15 build/C/man3/backtrace.3:31 build/C/man3/basename.3:30 build/C/man3/envz_add.3:14 build/C/man3/ftok.3:32 build/C/man3/longjmp.3:30 build/C/man3/offsetof.3:31 build/C/man3/program_invocation_name.3:28 build/C/man3/queue.3:48 build/C/man3/realpath.3:31 build/C/man3/setjmp.3:30 build/C/man3/xcrypt.3:16
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man3/__setfpucw.3:13
62 msgid "B<#include E<lt>i386/fpu_control.hE<gt>>"
63 msgstr ""
64
65 #. type: Plain text
66 #: build/C/man3/__setfpucw.3:15
67 msgid "B<void __setfpucw(unsigned short >I<control_word>B<);>"
68 msgstr ""
69
70 #. type: SH
71 #: build/C/man3/__setfpucw.3:15 build/C/man3/addseverity.3:27 build/C/man3/argz_add.3:51 build/C/man3/backtrace.3:50 build/C/man3/basename.3:38 build/C/man3/envz_add.3:36 build/C/man3/ftok.3:39 build/C/man3/longjmp.3:46 build/C/man3/offsetof.3:37 build/C/man3/program_invocation_name.3:36 build/C/man3/queue.3:86 build/C/man3/realpath.3:51 build/C/man3/setjmp.3:49 build/C/man3/xcrypt.3:24
72 #, no-wrap
73 msgid "DESCRIPTION"
74 msgstr ""
75
76 #. type: Plain text
77 #: build/C/man3/__setfpucw.3:22
78 msgid ""
79 "B<__setfpucw>()  transfers I<control_word> to the registers of the FPU "
80 "(floating-point unit) on the i386 architecture.  This was used to control "
81 "floating-point precision, rounding and floating-point exceptions."
82 msgstr ""
83
84 #. type: SH
85 #: build/C/man3/__setfpucw.3:22 build/C/man3/addseverity.3:60 build/C/man3/argz_add.3:198 build/C/man3/backtrace.3:143 build/C/man3/basename.3:129 build/C/man3/envz_add.3:118 build/C/man3/ftok.3:70 build/C/man3/longjmp.3:90 build/C/man3/offsetof.3:63 build/C/man3/program_invocation_name.3:56 build/C/man3/queue.3:485 build/C/man3/realpath.3:137 build/C/man3/setjmp.3:88
86 #, no-wrap
87 msgid "CONFORMING TO"
88 msgstr ""
89
90 #. type: Plain text
91 #: build/C/man3/__setfpucw.3:24
92 msgid "This function was a nonstandard GNU extension."
93 msgstr ""
94
95 #. type: SH
96 #: build/C/man3/__setfpucw.3:24 build/C/man3/addseverity.3:67 build/C/man3/backtrace.3:145 build/C/man3/basename.3:131 build/C/man3/ftok.3:72 build/C/man3/longjmp.3:95 build/C/man3/program_invocation_name.3:59 build/C/man3/realpath.3:144 build/C/man3/setjmp.3:93
97 #, no-wrap
98 msgid "NOTES"
99 msgstr ""
100
101 #. type: Plain text
102 #: build/C/man3/__setfpucw.3:43
103 msgid ""
104 "As of glibc 2.1 this function does not exist anymore.  There are new "
105 "functions from C99, with prototypes in I<E<lt>fenv.hE<gt>>, to control FPU "
106 "rounding modes, like B<fegetround>(3), B<fesetround>(3), and the "
107 "floating-point environment, like B<fegetenv>(3), B<feholdexcept>(3), "
108 "B<fesetenv>(3), B<feupdateenv>(3), and FPU exception handling, like "
109 "B<feclearexcept>(3), B<fegetexceptflag>(3), B<feraiseexcept>(3), "
110 "B<fesetexceptflag>(3), and B<fetestexcept>(3)."
111 msgstr ""
112
113 #. type: Plain text
114 #: build/C/man3/__setfpucw.3:51
115 msgid ""
116 "If direct access to the FPU control word is still needed, the B<_FPU_GETCW> "
117 "and B<_FPU_SETCW> macros from I<E<lt>fpu_control.hE<gt>> can be used."
118 msgstr ""
119
120 #. type: SH
121 #: build/C/man3/__setfpucw.3:51 build/C/man3/backtrace.3:167 build/C/man3/basename.3:164 build/C/man3/envz_add.3:121 build/C/man3/offsetof.3:65
122 #, no-wrap
123 msgid "EXAMPLE"
124 msgstr ""
125
126 #. type: Plain text
127 #: build/C/man3/__setfpucw.3:53
128 msgid "B<__setfpucw(0x1372)>"
129 msgstr ""
130
131 #. type: Plain text
132 #: build/C/man3/__setfpucw.3:55
133 msgid "Set FPU control word on the i386 architecture to"
134 msgstr ""
135
136 #. type: Plain text
137 #: build/C/man3/__setfpucw.3:57
138 #, no-wrap
139 msgid "     - extended precision\n"
140 msgstr ""
141
142 #. type: Plain text
143 #: build/C/man3/__setfpucw.3:59
144 #, no-wrap
145 msgid "     - rounding to nearest\n"
146 msgstr ""
147
148 #. type: Plain text
149 #: build/C/man3/__setfpucw.3:61
150 #, no-wrap
151 msgid "     - exceptions on overflow, zero divide and NaN\n"
152 msgstr ""
153
154 #. type: SH
155 #: build/C/man3/__setfpucw.3:61 build/C/man3/addseverity.3:70 build/C/man3/argz_add.3:204 build/C/man3/backtrace.3:251 build/C/man3/basename.3:177 build/C/man3/envz_add.3:143 build/C/man3/ftok.3:101 build/C/man3/longjmp.3:132 build/C/man3/program_invocation_name.3:63 build/C/man3/realpath.3:226 build/C/man3/setjmp.3:126 build/C/man3/xcrypt.3:72
156 #, no-wrap
157 msgid "SEE ALSO"
158 msgstr ""
159
160 #. type: Plain text
161 #: build/C/man3/__setfpucw.3:63
162 msgid "B<feclearexcept>(3)"
163 msgstr ""
164
165 #. type: Plain text
166 #: build/C/man3/__setfpucw.3:65
167 msgid "I<E<lt>fpu_control.hE<gt>>"
168 msgstr ""
169
170 #. type: SH
171 #: build/C/man3/__setfpucw.3:65 build/C/man3/addseverity.3:72 build/C/man3/argz_add.3:206 build/C/man3/backtrace.3:256 build/C/man3/basename.3:180 build/C/man3/envz_add.3:145 build/C/man3/ftok.3:107 build/C/man3/longjmp.3:135 build/C/man3/offsetof.3:105 build/C/man3/program_invocation_name.3:65 build/C/man3/queue.3:491 build/C/man3/realpath.3:232 build/C/man3/setjmp.3:129 build/C/man3/xcrypt.3:74
172 #, no-wrap
173 msgid "COLOPHON"
174 msgstr ""
175
176 #. type: Plain text
177 #: build/C/man3/__setfpucw.3:72 build/C/man3/addseverity.3:79 build/C/man3/argz_add.3:213 build/C/man3/backtrace.3:263 build/C/man3/basename.3:187 build/C/man3/envz_add.3:152 build/C/man3/ftok.3:114 build/C/man3/longjmp.3:142 build/C/man3/offsetof.3:112 build/C/man3/program_invocation_name.3:72 build/C/man3/queue.3:498 build/C/man3/realpath.3:239 build/C/man3/setjmp.3:136 build/C/man3/xcrypt.3:81
178 msgid ""
179 "This page is part of release 3.54 of the Linux I<man-pages> project.  A "
180 "description of the project, and information about reporting bugs, can be "
181 "found at \\%http://www.kernel.org/doc/man-pages/."
182 msgstr ""
183
184 #. type: TH
185 #: build/C/man3/addseverity.3:9
186 #, no-wrap
187 msgid "ADDSEVERITY"
188 msgstr ""
189
190 #. type: TH
191 #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27
192 #, no-wrap
193 msgid "2008-06-14"
194 msgstr ""
195
196 #. type: TH
197 #: build/C/man3/addseverity.3:9 build/C/man3/backtrace.3:27 build/C/man3/basename.3:27 build/C/man3/ftok.3:29 build/C/man3/offsetof.3:28 build/C/man3/program_invocation_name.3:24
198 #, no-wrap
199 msgid "GNU"
200 msgstr ""
201
202 #. type: Plain text
203 #: build/C/man3/addseverity.3:12
204 msgid "addseverity - introduce new severity classes"
205 msgstr ""
206
207 #. type: Plain text
208 #: build/C/man3/addseverity.3:16
209 #, no-wrap
210 msgid "B<#include E<lt>fmtmsg.hE<gt>>\n"
211 msgstr ""
212
213 #. type: Plain text
214 #: build/C/man3/addseverity.3:18
215 #, no-wrap
216 msgid "B<int addseverity(int >I<severity>B<, const char *>I<s>B<);>\n"
217 msgstr ""
218
219 #. type: Plain text
220 #: build/C/man3/addseverity.3:23 build/C/man3/longjmp.3:42 build/C/man3/realpath.3:42 build/C/man3/setjmp.3:42
221 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
222 msgstr ""
223
224 #. type: Plain text
225 #: build/C/man3/addseverity.3:27
226 msgid "B<addseverity>(): _SVID_SOURCE"
227 msgstr ""
228
229 #. type: Plain text
230 #: build/C/man3/addseverity.3:49
231 msgid ""
232 "This function allows the introduction of new severity classes which can be "
233 "addressed by the I<severity> argument of the B<fmtmsg>(3)  function.  By "
234 "default that latter function only knows how to print messages for severity "
235 "0-4 (with strings (none), HALT, ERROR, WARNING, INFO).  This call attaches "
236 "the given string I<s> to the given value I<severity>.  If I<s> is NULL, the "
237 "severity class with the numeric value I<severity> is removed.  It is not "
238 "possible to overwrite or remove one of the default severity classes.  The "
239 "severity value must be nonnegative."
240 msgstr ""
241
242 #. type: SH
243 #: build/C/man3/addseverity.3:49 build/C/man3/argz_add.3:192 build/C/man3/backtrace.3:118 build/C/man3/basename.3:121 build/C/man3/envz_add.3:112 build/C/man3/ftok.3:61 build/C/man3/longjmp.3:88 build/C/man3/offsetof.3:56 build/C/man3/realpath.3:91 build/C/man3/setjmp.3:78 build/C/man3/xcrypt.3:61
244 #, no-wrap
245 msgid "RETURN VALUE"
246 msgstr ""
247
248 #. type: Plain text
249 #: build/C/man3/addseverity.3:57
250 msgid ""
251 "Upon success, the value B<MM_OK> is returned.  Upon error, the return value "
252 "is B<MM_NOTOK>.  Possible errors include: out of memory, attempt to remove a "
253 "nonexistent or default severity class."
254 msgstr ""
255
256 #. type: SH
257 #: build/C/man3/addseverity.3:57 build/C/man3/backtrace.3:137 build/C/man3/realpath.3:135 build/C/man3/xcrypt.3:67
258 #, no-wrap
259 msgid "VERSIONS"
260 msgstr ""
261
262 #. type: Plain text
263 #: build/C/man3/addseverity.3:60
264 msgid "B<addseverity>()  is provided in glibc since version 2.1."
265 msgstr ""
266
267 #. type: Plain text
268 #: build/C/man3/addseverity.3:67
269 msgid ""
270 "This function is not specified in the X/Open Portability Guide although the "
271 "B<fmtmsg>(3)  function is.  It is available on System V systems."
272 msgstr ""
273
274 #. type: Plain text
275 #: build/C/man3/addseverity.3:70
276 msgid ""
277 "New severity classes can also be added by setting the environment variable "
278 "B<SEV_LEVEL>."
279 msgstr ""
280
281 #. type: Plain text
282 #: build/C/man3/addseverity.3:72
283 msgid "B<fmtmsg>(3)"
284 msgstr ""
285
286 #. type: TH
287 #: build/C/man3/argz_add.3:10
288 #, no-wrap
289 msgid "ARGZ_ADD"
290 msgstr ""
291
292 #. type: TH
293 #: build/C/man3/argz_add.3:10 build/C/man3/envz_add.3:10
294 #, no-wrap
295 msgid "2007-05-18"
296 msgstr ""
297
298 #. type: Plain text
299 #: build/C/man3/argz_add.3:15
300 msgid ""
301 "argz_add, argz_add_sep, argz_append, argz_count, argz_create, "
302 "argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, "
303 "argz_replace, argz_stringify - functions to handle an argz list"
304 msgstr ""
305
306 #. type: Plain text
307 #: build/C/man3/argz_add.3:18
308 #, no-wrap
309 msgid "B<#include E<lt>argz.hE<gt>>\n"
310 msgstr ""
311
312 #. type: Plain text
313 #: build/C/man3/argz_add.3:21
314 #, no-wrap
315 msgid ""
316 "B<error_t argz_add(char **>I<argz>B<, size_t *>I<argz_len>B<, const char "
317 "*>I<str>B<);>\n"
318 msgstr ""
319
320 #. type: Plain text
321 #: build/C/man3/argz_add.3:24
322 #, no-wrap
323 msgid ""
324 "B<error_t argz_add_sep(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
325 "B<                     const char *>I<str>B<, int >I<delim>B<);>\n"
326 msgstr ""
327
328 #. type: Plain text
329 #: build/C/man3/argz_add.3:27
330 #, no-wrap
331 msgid ""
332 "B<error_t argz_append(char **>I<argz>B<, size_t *>I<argz_len>B<,>\n"
333 "B<                     const char *>I<buf>B<, size_t >I<buf_len>B<);>\n"
334 msgstr ""
335
336 #. type: Plain text
337 #: build/C/man3/argz_add.3:29
338 #, no-wrap
339 msgid "B<size_t argz_count(const char *>I<argz>B<, size_t >I<argz_len>B<);>\n"
340 msgstr ""
341
342 #. type: Plain text
343 #: build/C/man3/argz_add.3:32
344 #, no-wrap
345 msgid ""
346 "B<error_t argz_create(char * const >I<argv>B<[], char **>I<argz>B<,>\n"
347 "B<                     size_t *>I<argz_len>B<);>\n"
348 msgstr ""
349
350 #. type: Plain text
351 #: build/C/man3/argz_add.3:35
352 #, no-wrap
353 msgid ""
354 "B<error_t argz_create_sep(const char *>I<str>B<, int >I<sep>B<, char "
355 "**>I<argz>B<,>\n"
356 "B<                     size_t *>I<argz_len>B<);>\n"
357 msgstr ""
358
359 #. type: Plain text
360 #: build/C/man3/argz_add.3:37
361 #, no-wrap
362 msgid ""
363 "B<error_t argz_delete(char **>I<argz>B<, size_t *>I<argz_len>B<, char "
364 "*>I<entry>B<);>\n"
365 msgstr ""
366
367 #. type: Plain text
368 #: build/C/man3/argz_add.3:39
369 #, no-wrap
370 msgid ""
371 "B<void argz_extract(char *>I<argz>B<, size_t >I<argz_len>B<, char  "
372 "**>I<argv>B<);>\n"
373 msgstr ""
374
375 #. type: Plain text
376 #: build/C/man3/argz_add.3:42
377 #, no-wrap
378 msgid ""
379 "B<error_t argz_insert(char **>I<argz>B<, size_t *>I<argz_len>B<, char "
380 "*>I<before>B<,>\n"
381 "B<                     const char *>I<entry>B<);>\n"
382 msgstr ""
383
384 #. type: Plain text
385 #: build/C/man3/argz_add.3:44
386 #, no-wrap
387 msgid ""
388 "B<char *argz_next(char *>I<argz>B<, size_t >I<argz_len>B<, const char "
389 "*>I<entry>B<);>\n"
390 msgstr ""
391
392 #. type: Plain text
393 #: build/C/man3/argz_add.3:48
394 #, no-wrap
395 msgid ""
396 "B<error_t argz_replace(char **>I<argz>B<, size_t *>I<argz_len>B<, const char "
397 "*>I<str>B<,>\n"
398 "B<                     const char *>I<with>B<, unsigned int "
399 "*>I<replace_count>B<);>\n"
400 msgstr ""
401
402 #. type: Plain text
403 #: build/C/man3/argz_add.3:50
404 #, no-wrap
405 msgid "B<void argz_stringify(char *>I<argz>B<, size_t >I<len>B<, int >I<sep>B<);>\n"
406 msgstr ""
407
408 #. type: Plain text
409 #: build/C/man3/argz_add.3:53 build/C/man3/envz_add.3:38
410 msgid "These functions are glibc-specific."
411 msgstr ""
412
413 #. type: Plain text
414 #: build/C/man3/argz_add.3:58
415 msgid ""
416 "An argz vector is a pointer to a character buffer together with a length.  "
417 "The intended interpretation of the character buffer is an array of strings, "
418 "where the strings are separated by null bytes (\\(aq\\e0\\(aq).  If the "
419 "length is nonzero, the last byte of the buffer must be a null byte."
420 msgstr ""
421
422 #. type: Plain text
423 #: build/C/man3/argz_add.3:67
424 msgid ""
425 "These functions are for handling argz vectors.  The pair (NULL,0) is an argz "
426 "vector, and, conversely, argz vectors of length 0 must have NULL pointer.  "
427 "Allocation of nonempty argz vectors is done using B<malloc>(3), so that "
428 "B<free>(3)  can be used to dispose of them again."
429 msgstr ""
430
431 #. type: Plain text
432 #: build/C/man3/argz_add.3:77
433 msgid ""
434 "B<argz_add>()  adds the string I<str> at the end of the array I<*argz>, and "
435 "updates I<*argz> and I<*argz_len>."
436 msgstr ""
437
438 #. type: Plain text
439 #: build/C/man3/argz_add.3:85
440 msgid ""
441 "B<argz_add_sep>()  is similar, but splits the string I<str> into substrings "
442 "separated by the delimiter I<delim>.  For example, one might use this on a "
443 "UNIX search path with delimiter \\(aq:\\(aq."
444 msgstr ""
445
446 #. type: Plain text
447 #: build/C/man3/argz_add.3:99
448 msgid ""
449 "B<argz_append>()  appends the argz vector (I<buf>,\\ I<buf_len>)  after "
450 "(I<*argz>,\\ I<*argz_len>)  and updates I<*argz> and I<*argz_len>.  (Thus, "
451 "I<*argz_len> will be increased by I<buf_len>.)"
452 msgstr ""
453
454 #. type: Plain text
455 #: build/C/man3/argz_add.3:104
456 msgid ""
457 "B<argz_count>()  counts the number of strings, that is, the number of null "
458 "bytes (\\(aq\\e0\\(aq), in (I<argz>,\\ I<argz_len>)."
459 msgstr ""
460
461 #. type: Plain text
462 #: build/C/man3/argz_add.3:112
463 msgid ""
464 "B<argz_create>()  converts a UNIX-style argument vector I<argv>, terminated "
465 "by I<(char\\ *)\\ 0>, into an argz vector (I<*argz>,\\ I<*argz_len>)."
466 msgstr ""
467
468 #. type: Plain text
469 #: build/C/man3/argz_add.3:120
470 msgid ""
471 "B<argz_create_sep>()  converts the null-terminated string I<str> into an "
472 "argz vector (I<*argz>,\\ I<*argz_len>)  by breaking it up at every "
473 "occurrence of the separator I<sep>."
474 msgstr ""
475
476 #. type: Plain text
477 #: build/C/man3/argz_add.3:130
478 msgid ""
479 "B<argz_delete>()  removes the substring pointed to by I<entry> from the argz "
480 "vector (I<*argz>,\\ I<*argz_len>)  and updates I<*argz> and I<*argz_len>."
481 msgstr ""
482
483 #. type: Plain text
484 #: build/C/man3/argz_add.3:145
485 msgid ""
486 "B<argz_extract>()  is the opposite of B<argz_create>().  It takes the argz "
487 "vector (I<argz>,\\ I<argz_len>)  and fills the array starting at I<argv> "
488 "with pointers to the substrings, and a final NULL, making a UNIX-style argv "
489 "vector.  The array I<argv> must have room for I<argz_count>(I<argz>, "
490 "I<argz_len>) + 1 pointers."
491 msgstr ""
492
493 #. type: Plain text
494 #: build/C/man3/argz_add.3:164
495 msgid ""
496 "B<argz_insert>()  is the opposite of B<argz_delete>().  It inserts the "
497 "argument I<entry> at position I<before> into the argz vector (I<*argz>,\\ "
498 "I<*argz_len>)  and updates I<*argz> and I<*argz_len>.  If I<before> is NULL, "
499 "then I<entry> will inserted at the end."
500 msgstr ""
501
502 #. type: Plain text
503 #: build/C/man3/argz_add.3:173
504 msgid ""
505 "B<argz_next>()  is a function to step trough the argz vector.  If I<entry> "
506 "is NULL, the first entry is returned.  Otherwise, the entry following is "
507 "returned.  It returns NULL if there is no following entry."
508 msgstr ""
509
510 #. type: Plain text
511 #: build/C/man3/argz_add.3:185
512 msgid ""
513 "B<argz_replace>()  replaces each occurrence of I<str> with I<with>, "
514 "reallocating argz as necessary.  If I<replace_count> is non-NULL, "
515 "I<*replace_count> will be incremented by the number of replacements."
516 msgstr ""
517
518 #. type: Plain text
519 #: build/C/man3/argz_add.3:192
520 msgid ""
521 "B<argz_stringify>()  is the opposite of B<argz_create_sep>().  It transforms "
522 "the argz vector into a normal string by replacing all null bytes "
523 "(\\(aq\\e0\\(aq) except the last by I<sep>."
524 msgstr ""
525
526 #. type: Plain text
527 #: build/C/man3/argz_add.3:198
528 msgid ""
529 "All argz functions that do memory allocation have a return type of "
530 "I<error_t>, and return 0 for success, and B<ENOMEM> if an allocation error "
531 "occurs."
532 msgstr ""
533
534 #. type: Plain text
535 #: build/C/man3/argz_add.3:201 build/C/man3/envz_add.3:121
536 msgid "These functions are a GNU extension.  Handle with care."
537 msgstr ""
538
539 #. type: SH
540 #: build/C/man3/argz_add.3:201 build/C/man3/basename.3:156 build/C/man3/realpath.3:195 build/C/man3/xcrypt.3:70
541 #, no-wrap
542 msgid "BUGS"
543 msgstr ""
544
545 #. type: Plain text
546 #: build/C/man3/argz_add.3:204
547 msgid ""
548 "Argz vectors without a terminating null byte may lead to Segmentation "
549 "Faults."
550 msgstr ""
551
552 #. type: Plain text
553 #: build/C/man3/argz_add.3:206
554 msgid "B<envz_add>(3)"
555 msgstr ""
556
557 #. type: TH
558 #: build/C/man3/backtrace.3:27
559 #, no-wrap
560 msgid "BACKTRACE"
561 msgstr ""
562
563 #. type: Plain text
564 #: build/C/man3/backtrace.3:31
565 msgid ""
566 "backtrace, backtrace_symbols, backtrace_symbols_fd - support for application "
567 "self-debugging"
568 msgstr ""
569
570 #. type: Plain text
571 #: build/C/man3/backtrace.3:33
572 msgid "B<#include E<lt>execinfo.hE<gt>>"
573 msgstr ""
574
575 #. type: Plain text
576 #: build/C/man3/backtrace.3:38
577 msgid "B<int backtrace(void> B<**>I<buffer>B<,> B<int> I<size>B<);>"
578 msgstr ""
579
580 #. type: Plain text
581 #: build/C/man3/backtrace.3:43
582 msgid ""
583 "B<char **backtrace_symbols(void *const> B<*>I<buffer>B<,> B<int> "
584 "I<size>B<);>"
585 msgstr ""
586
587 #. type: Plain text
588 #: build/C/man3/backtrace.3:50
589 msgid ""
590 "B<void backtrace_symbols_fd(void *const> B<*>I<buffer>B<,> B<int> "
591 "I<size>B<,> B<int> I<fd>B<);>"
592 msgstr ""
593
594 #. type: Plain text
595 #: build/C/man3/backtrace.3:78
596 msgid ""
597 "B<backtrace>()  returns a backtrace for the calling program, in the array "
598 "pointed to by I<buffer>.  A backtrace is the series of currently active "
599 "function calls for the program.  Each item in the array pointed to by "
600 "I<buffer> is of type I<void\\ *>, and is the return address from the "
601 "corresponding stack frame.  The I<size> argument specifies the maximum "
602 "number of addresses that can be stored in I<buffer>.  If the backtrace is "
603 "larger than I<size>, then the addresses corresponding to the I<size> most "
604 "recent function calls are returned; to obtain the complete backtrace, make "
605 "sure that I<buffer> and I<size> are large enough."
606 msgstr ""
607
608 #. type: Plain text
609 #: build/C/man3/backtrace.3:103
610 msgid ""
611 "Given the set of addresses returned by B<backtrace>()  in I<buffer>, "
612 "B<backtrace_symbols>()  translates the addresses into an array of strings "
613 "that describe the addresses symbolically.  The I<size> argument specifies "
614 "the number of addresses in I<buffer>.  The symbolic representation of each "
615 "address consists of the function name (if this can be determined), a "
616 "hexadecimal offset into the function, and the actual return address (in "
617 "hexadecimal).  The address of the array of string pointers is returned as "
618 "the function result of B<backtrace_symbols>().  This array is B<malloc>(3)ed "
619 "by B<backtrace_symbols>(), and must be freed by the caller.  (The strings "
620 "pointed to by the array of pointers need not and should not be freed.)"
621 msgstr ""
622
623 #. type: Plain text
624 #: build/C/man3/backtrace.3:118
625 msgid ""
626 "B<backtrace_symbols_fd>()  takes the same I<buffer> and I<size> arguments as "
627 "B<backtrace_symbols>(), but instead of returning an array of strings to the "
628 "caller, it writes the strings, one per line, to the file descriptor I<fd>.  "
629 "B<backtrace_symbols_fd>()  does not call B<malloc>(3), and so can be "
630 "employed in situations where the latter function might fail."
631 msgstr ""
632
633 #. type: Plain text
634 #: build/C/man3/backtrace.3:130
635 msgid ""
636 "B<backtrace>()  returns the number of addresses returned in I<buffer>, which "
637 "is not greater than I<size>.  If the return value is less than I<size>, then "
638 "the full backtrace was stored; if it is equal to I<size>, then it may have "
639 "been truncated, in which case the addresses of the oldest stack frames are "
640 "not returned."
641 msgstr ""
642
643 #. type: Plain text
644 #: build/C/man3/backtrace.3:137
645 msgid ""
646 "On success, B<backtrace_symbols>()  returns a pointer to the array "
647 "B<malloc>(3)ed by the call; on error, NULL is returned."
648 msgstr ""
649
650 #. type: Plain text
651 #: build/C/man3/backtrace.3:143
652 msgid ""
653 "B<backtrace>(), B<backtrace_symbols>(), and B<backtrace_symbols_fd>()  are "
654 "provided in glibc since version 2.1."
655 msgstr ""
656
657 #. type: Plain text
658 #: build/C/man3/backtrace.3:145
659 msgid "These functions are GNU extensions."
660 msgstr ""
661
662 #. type: Plain text
663 #: build/C/man3/backtrace.3:149
664 msgid ""
665 "These functions make some assumptions about how a function's return address "
666 "is stored on the stack.  Note the following:"
667 msgstr ""
668
669 #. type: IP
670 #: build/C/man3/backtrace.3:149 build/C/man3/backtrace.3:155 build/C/man3/backtrace.3:157 build/C/man3/queue.3:93 build/C/man3/queue.3:95 build/C/man3/queue.3:97 build/C/man3/queue.3:99 build/C/man3/queue.3:109 build/C/man3/queue.3:131 build/C/man3/queue.3:133 build/C/man3/queue.3:135
671 #, no-wrap
672 msgid "*"
673 msgstr ""
674
675 #. type: Plain text
676 #: build/C/man3/backtrace.3:155
677 msgid ""
678 "Omission of the frame pointers (as implied by any of B<gcc>(1)'s nonzero "
679 "optimization levels) may cause these assumptions to be violated."
680 msgstr ""
681
682 #. type: Plain text
683 #: build/C/man3/backtrace.3:157
684 msgid "Inlined functions do not have stack frames."
685 msgstr ""
686
687 #. type: Plain text
688 #: build/C/man3/backtrace.3:159
689 msgid "Tail-call optimization causes one stack frame to replace another."
690 msgstr ""
691
692 #. type: Plain text
693 #: build/C/man3/backtrace.3:167
694 msgid ""
695 "The symbol names may be unavailable without the use of special linker "
696 "options.  For systems using the GNU linker, it is necessary to use the "
697 "I<-rdynamic> linker option.  Note that names of \"static\" functions are not "
698 "exposed, and won't be available in the backtrace."
699 msgstr ""
700
701 #. type: Plain text
702 #: build/C/man3/backtrace.3:174
703 msgid ""
704 "The program below demonstrates the use of B<backtrace>()  and "
705 "B<backtrace_symbols>().  The following shell session shows what we might see "
706 "when running the program:"
707 msgstr ""
708
709 #. type: Plain text
710 #: build/C/man3/backtrace.3:188
711 #, no-wrap
712 msgid ""
713 "$B< cc -rdynamic prog.c -o prog>\n"
714 "$B< ./prog 3>\n"
715 "backtrace() returned 8 addresses\n"
716 "\\&./prog(myfunc3+0x5c) [0x80487f0]\n"
717 "\\&./prog [0x8048871]\n"
718 "\\&./prog(myfunc+0x21) [0x8048894]\n"
719 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
720 "\\&./prog(myfunc+0x1a) [0x804888d]\n"
721 "\\&./prog(main+0x65) [0x80488fb]\n"
722 "\\&/lib/libc.so.6(__libc_start_main+0xdc) [0xb7e38f9c]\n"
723 "\\&./prog [0x8048711]\n"
724 msgstr ""
725
726 #. type: SS
727 #: build/C/man3/backtrace.3:190 build/C/man3/offsetof.3:76
728 #, no-wrap
729 msgid "Program source"
730 msgstr ""
731
732 #. type: Plain text
733 #: build/C/man3/backtrace.3:197
734 #, no-wrap
735 msgid ""
736 "#include E<lt>execinfo.hE<gt>\n"
737 "#include E<lt>stdio.hE<gt>\n"
738 "#include E<lt>stdlib.hE<gt>\n"
739 "#include E<lt>unistd.hE<gt>\n"
740 msgstr ""
741
742 #. type: Plain text
743 #: build/C/man3/backtrace.3:205
744 #, no-wrap
745 msgid ""
746 "void\n"
747 "myfunc3(void)\n"
748 "{\n"
749 "    int j, nptrs;\n"
750 "#define SIZE 100\n"
751 "    void *buffer[100];\n"
752 "    char **strings;\n"
753 msgstr ""
754
755 #. type: Plain text
756 #: build/C/man3/backtrace.3:208
757 #, no-wrap
758 msgid ""
759 "    nptrs = backtrace(buffer, SIZE);\n"
760 "    printf(\"backtrace() returned %d addresses\\en\", nptrs);\n"
761 msgstr ""
762
763 #. type: Plain text
764 #: build/C/man3/backtrace.3:211
765 #, no-wrap
766 msgid ""
767 "    /* The call backtrace_symbols_fd(buffer, nptrs, STDOUT_FILENO)\n"
768 "       would produce similar output to the following: */\n"
769 msgstr ""
770
771 #. type: Plain text
772 #: build/C/man3/backtrace.3:217
773 #, no-wrap
774 msgid ""
775 "    strings = backtrace_symbols(buffer, nptrs);\n"
776 "    if (strings == NULL) {\n"
777 "        perror(\"backtrace_symbols\");\n"
778 "        exit(EXIT_FAILURE);\n"
779 "    }\n"
780 msgstr ""
781
782 #. type: Plain text
783 #: build/C/man3/backtrace.3:220
784 #, no-wrap
785 msgid ""
786 "    for (j = 0; j E<lt> nptrs; j++)\n"
787 "        printf(\"%s\\en\", strings[j]);\n"
788 msgstr ""
789
790 #. type: Plain text
791 #: build/C/man3/backtrace.3:223
792 #, no-wrap
793 msgid ""
794 "    free(strings);\n"
795 "}\n"
796 msgstr ""
797
798 #. type: Plain text
799 #: build/C/man3/backtrace.3:229
800 #, no-wrap
801 msgid ""
802 "static void   /* \"static\" means don\\(aqt export the symbol... */\n"
803 "myfunc2(void)\n"
804 "{\n"
805 "    myfunc3();\n"
806 "}\n"
807 msgstr ""
808
809 #. type: Plain text
810 #: build/C/man3/backtrace.3:238
811 #, no-wrap
812 msgid ""
813 "void\n"
814 "myfunc(int ncalls)\n"
815 "{\n"
816 "    if (ncalls E<gt> 1)\n"
817 "        myfunc(ncalls - 1);\n"
818 "    else\n"
819 "        myfunc2();\n"
820 "}\n"
821 msgstr ""
822
823 #. type: Plain text
824 #: build/C/man3/backtrace.3:246
825 #, no-wrap
826 msgid ""
827 "int\n"
828 "main(int argc, char *argv[])\n"
829 "{\n"
830 "    if (argc != 2) {\n"
831 "        fprintf(stderr, \"%s num-calls\\en\", argv[0]);\n"
832 "        exit(EXIT_FAILURE);\n"
833 "    }\n"
834 msgstr ""
835
836 #. type: Plain text
837 #: build/C/man3/backtrace.3:250
838 #, no-wrap
839 msgid ""
840 "    myfunc(atoi(argv[1]));\n"
841 "    exit(EXIT_SUCCESS);\n"
842 "}\n"
843 msgstr ""
844
845 #. type: Plain text
846 #: build/C/man3/backtrace.3:256
847 msgid "B<gcc>(1), B<ld>(1), B<dlopen>(3), B<malloc>(3)"
848 msgstr ""
849
850 #. type: TH
851 #: build/C/man3/basename.3:27
852 #, no-wrap
853 msgid "BASENAME"
854 msgstr ""
855
856 #. type: TH
857 #: build/C/man3/basename.3:27
858 #, no-wrap
859 msgid "2009-03-30"
860 msgstr ""
861
862 #. type: Plain text
863 #: build/C/man3/basename.3:30
864 msgid "basename, dirname - parse pathname components"
865 msgstr ""
866
867 #. type: Plain text
868 #: build/C/man3/basename.3:33
869 #, no-wrap
870 msgid "B<#include E<lt>libgen.hE<gt>>\n"
871 msgstr ""
872
873 #. type: Plain text
874 #: build/C/man3/basename.3:35
875 #, no-wrap
876 msgid "B<char *dirname(char *>I<path>B<);>\n"
877 msgstr ""
878
879 #. type: Plain text
880 #: build/C/man3/basename.3:37
881 #, no-wrap
882 msgid "B<char *basename(char *>I<path>B<);>\n"
883 msgstr ""
884
885 #. type: Plain text
886 #: build/C/man3/basename.3:42
887 msgid "Warning: there are two different functions B<basename>()  - see below."
888 msgstr ""
889
890 #. type: Plain text
891 #: build/C/man3/basename.3:55
892 msgid ""
893 "The functions B<dirname>()  and B<basename>()  break a null-terminated "
894 "pathname string into directory and filename components.  In the usual case, "
895 "B<dirname>()  returns the string up to, but not including, the final "
896 "\\(aq/\\(aq, and B<basename>()  returns the component following the final "
897 "\\(aq/\\(aq.  Trailing \\(aq/\\(aq characters are not counted as part of the "
898 "pathname."
899 msgstr ""
900
901 #. type: Plain text
902 #: build/C/man3/basename.3:78
903 msgid ""
904 "If I<path> does not contain a slash, B<dirname>()  returns the string \".\" "
905 "while B<basename>()  returns a copy of I<path>.  If I<path> is the string "
906 "\"/\", then both B<dirname>()  and B<basename>()  return the string \"/\".  "
907 "If I<path> is a NULL pointer or points to an empty string, then both "
908 "B<dirname>()  and B<basename>()  return the string \".\"."
909 msgstr ""
910
911 #. type: Plain text
912 #: build/C/man3/basename.3:84
913 msgid ""
914 "Concatenating the string returned by B<dirname>(), a \"/\", and the string "
915 "returned by B<basename>()  yields a complete pathname."
916 msgstr ""
917
918 #. type: Plain text
919 #: build/C/man3/basename.3:93
920 msgid ""
921 "Both B<dirname>()  and B<basename>()  may modify the contents of I<path>, so "
922 "it may be desirable to pass a copy when calling one of these functions."
923 msgstr ""
924
925 #. type: Plain text
926 #: build/C/man3/basename.3:102
927 msgid ""
928 "These functions may return pointers to statically allocated memory which may "
929 "be overwritten by subsequent calls.  Alternatively, they may return a "
930 "pointer to some part of I<path>, so that the string referred to by I<path> "
931 "should not be modified or freed until the pointer returned by the function "
932 "is no longer required."
933 msgstr ""
934
935 #. type: Plain text
936 #: build/C/man3/basename.3:109
937 msgid ""
938 "The following list of examples (taken from SUSv2)  shows the strings "
939 "returned by B<dirname>()  and B<basename>()  for different paths:"
940 msgstr ""
941
942 #. type: tbl table
943 #: build/C/man3/basename.3:113
944 #, no-wrap
945 msgid "path    \tdirname\tbasename\n"
946 msgstr ""
947
948 #. type: tbl table
949 #: build/C/man3/basename.3:114
950 #, no-wrap
951 msgid "/usr/lib\t/usr\tlib\n"
952 msgstr ""
953
954 #. type: tbl table
955 #: build/C/man3/basename.3:115
956 #, no-wrap
957 msgid "/usr/   \t/\tusr\n"
958 msgstr ""
959
960 #. type: tbl table
961 #: build/C/man3/basename.3:116
962 #, no-wrap
963 msgid "usr     \t.\tusr\n"
964 msgstr ""
965
966 #. type: tbl table
967 #: build/C/man3/basename.3:117
968 #, no-wrap
969 msgid "/       \t/\t/\n"
970 msgstr ""
971
972 #. type: tbl table
973 #: build/C/man3/basename.3:118
974 #, no-wrap
975 msgid ".       \t.\t.\n"
976 msgstr ""
977
978 #. type: tbl table
979 #: build/C/man3/basename.3:119
980 #, no-wrap
981 msgid "..      \t.\t..\n"
982 msgstr ""
983
984 #. type: Plain text
985 #: build/C/man3/basename.3:129
986 msgid ""
987 "Both B<dirname>()  and B<basename>()  return pointers to null-terminated "
988 "strings.  (Do not pass these pointers to B<free>(3).)"
989 msgstr ""
990
991 #. type: Plain text
992 #: build/C/man3/basename.3:131 build/C/man3/ftok.3:72
993 msgid "POSIX.1-2001."
994 msgstr ""
995
996 #. type: Plain text
997 #: build/C/man3/basename.3:136
998 msgid ""
999 "There are two different versions of B<basename>()  - the POSIX version "
1000 "described above, and the GNU version, which one gets after"
1001 msgstr ""
1002
1003 #. type: Plain text
1004 #: build/C/man3/basename.3:140
1005 #, no-wrap
1006 msgid "B<    #define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
1007 msgstr ""
1008
1009 #. type: Plain text
1010 #: build/C/man3/basename.3:142
1011 #, no-wrap
1012 msgid "B<#include E<lt>string.hE<gt>>\n"
1013 msgstr ""
1014
1015 #. type: Plain text
1016 #: build/C/man3/basename.3:150
1017 msgid ""
1018 "The GNU version never modifies its argument, and returns the empty string "
1019 "when I<path> has a trailing slash, and in particular also when it is \"/\".  "
1020 "There is no GNU version of B<dirname>()."
1021 msgstr ""
1022
1023 #. type: Plain text
1024 #: build/C/man3/basename.3:156
1025 msgid ""
1026 "With glibc, one gets the POSIX version of B<basename>()  when "
1027 "I<E<lt>libgen.hE<gt>> is included, and the GNU version otherwise."
1028 msgstr ""
1029
1030 #. type: Plain text
1031 #: build/C/man3/basename.3:164
1032 msgid ""
1033 "In the glibc implementation of the POSIX versions of these functions they "
1034 "modify their argument, and segfault when called with a static string like "
1035 "\"/usr/\".  Before glibc 2.2.1, the glibc version of B<dirname>()  did not "
1036 "correctly handle pathnames with trailing \\(aq/\\(aq characters, and "
1037 "generated a segfault if given a NULL argument."
1038 msgstr ""
1039
1040 #. type: Plain text
1041 #: build/C/man3/basename.3:169
1042 #, no-wrap
1043 msgid ""
1044 "char *dirc, *basec, *bname, *dname;\n"
1045 "char *path = \"/etc/passwd\";\n"
1046 msgstr ""
1047
1048 #. type: Plain text
1049 #: build/C/man3/basename.3:175
1050 #, no-wrap
1051 msgid ""
1052 "dirc = strdup(path);\n"
1053 "basec = strdup(path);\n"
1054 "dname = dirname(dirc);\n"
1055 "bname = basename(basec);\n"
1056 "printf(\"dirname=%s, basename=%s\\en\", dname, bname);\n"
1057 msgstr ""
1058
1059 #. type: Plain text
1060 #: build/C/man3/basename.3:180
1061 msgid "B<basename>(1), B<dirname>(1)"
1062 msgstr ""
1063
1064 #. type: TH
1065 #: build/C/man3/envz_add.3:10
1066 #, no-wrap
1067 msgid "ENVZ_ADD"
1068 msgstr ""
1069
1070 #. type: Plain text
1071 #: build/C/man3/envz_add.3:14
1072 msgid ""
1073 "envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - "
1074 "environment string support"
1075 msgstr ""
1076
1077 #. type: Plain text
1078 #: build/C/man3/envz_add.3:17
1079 #, no-wrap
1080 msgid "B<#include E<lt>envz.hE<gt>>\n"
1081 msgstr ""
1082
1083 #. type: Plain text
1084 #: build/C/man3/envz_add.3:20
1085 #, no-wrap
1086 msgid ""
1087 "B<error_t envz_add(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1088 "B<                 const char *>I<name>B<, const char *>I<value>B<);>\n"
1089 msgstr ""
1090
1091 #. type: Plain text
1092 #: build/C/man3/envz_add.3:23
1093 #, no-wrap
1094 msgid ""
1095 "B<char *envz_entry(const char *>I<envz>B<, size_t *>I<envz_len>B<, const "
1096 "char *>I<name>B<);>\n"
1097 msgstr ""
1098
1099 #. type: Plain text
1100 #: build/C/man3/envz_add.3:26
1101 #, no-wrap
1102 msgid ""
1103 "B<char *envz_get(const char *>I<envz>B<, size_t *>I<envz_len>B<, const char "
1104 "*>I<name>B<);>\n"
1105 msgstr ""
1106
1107 #. type: Plain text
1108 #: build/C/man3/envz_add.3:30
1109 #, no-wrap
1110 msgid ""
1111 "B<error_t envz_merge(char **>I<envz>B<, size_t *>I<envz_len>B<,>\n"
1112 "B<                   const char *>I<envz2>B<, size_t >I<envz2_len>B<, int "
1113 ">I<override>B<);>\n"
1114 msgstr ""
1115
1116 #. type: Plain text
1117 #: build/C/man3/envz_add.3:33
1118 #, no-wrap
1119 msgid ""
1120 "B<void envz_remove(char **>I<envz>B<, size_t *>I<envz_len>B<, const char "
1121 "*>I<name>B<);>\n"
1122 msgstr ""
1123
1124 #. type: Plain text
1125 #: build/C/man3/envz_add.3:35
1126 #, no-wrap
1127 msgid "B<void envz_strip(char **>I<envz>B<, size_t *>I<envz_len>B<);>\n"
1128 msgstr ""
1129
1130 #. type: Plain text
1131 #: build/C/man3/envz_add.3:48
1132 msgid ""
1133 "An argz vector is a pointer to a character buffer together with a length, "
1134 "see B<argz_add>(3).  An envz vector is a special argz vector, namely one "
1135 "where the strings have the form \"name=value\".  Everything after the first "
1136 "\\(aq=\\(aq is considered to be the value.  If there is no \\(aq=\\(aq, the "
1137 "value is taken to be NULL.  (While the value in case of a trailing "
1138 "\\(aq=\\(aq is the empty string \"\".)"
1139 msgstr ""
1140
1141 #. type: Plain text
1142 #: build/C/man3/envz_add.3:50
1143 msgid "These functions are for handling envz vectors."
1144 msgstr ""
1145
1146 #. type: Plain text
1147 #: build/C/man3/envz_add.3:69
1148 msgid ""
1149 "B<envz_add>()  adds the string \"I<name>=I<value>\" (in case I<value> is "
1150 "non-NULL) or \"I<name>\" (in case I<value> is NULL) to the envz vector "
1151 "(I<*envz>,\\ I<*envz_len>)  and updates I<*envz> and I<*envz_len>.  If an "
1152 "entry with the same I<name> existed, it is removed."
1153 msgstr ""
1154
1155 #. type: Plain text
1156 #: build/C/man3/envz_add.3:76
1157 msgid ""
1158 "B<envz_entry>()  looks for I<name> in the envz vector (I<envz>,\\ "
1159 "I<envz_len>)  and returns the entry if found, or NULL if not."
1160 msgstr ""
1161
1162 #. type: Plain text
1163 #: build/C/man3/envz_add.3:87
1164 msgid ""
1165 "B<envz_get>()  looks for I<name> in the envz vector (I<envz>,\\ I<envz_len>)  "
1166 "and returns the value if found, or NULL if not.  (Note that the value can "
1167 "also be NULL, namely when there is an entry for I<name> without \\(aq=\\(aq "
1168 "sign.)"
1169 msgstr ""
1170
1171 #. type: Plain text
1172 #: build/C/man3/envz_add.3:102
1173 msgid ""
1174 "B<envz_merge>()  adds each entry in I<envz2> to I<*envz>, as if with "
1175 "B<envz_add>().  If I<override> is true, then values in I<envz2> will "
1176 "supersede those with the same name in I<*envz>, otherwise not."
1177 msgstr ""
1178
1179 #. type: Plain text
1180 #: build/C/man3/envz_add.3:109
1181 msgid ""
1182 "B<envz_remove>()  removes the entry for I<name> from (I<*envz>,\\ "
1183 "I<*envz_len>)  if there was one."
1184 msgstr ""
1185
1186 #. type: Plain text
1187 #: build/C/man3/envz_add.3:112
1188 msgid "B<envz_strip>()  removes all entries with value NULL."
1189 msgstr ""
1190
1191 #. type: Plain text
1192 #: build/C/man3/envz_add.3:118
1193 msgid ""
1194 "All envz functions that do memory allocation have a return type of "
1195 "I<error_t>, and return 0 for success, and B<ENOMEM> if an allocation error "
1196 "occurs."
1197 msgstr ""
1198
1199 #. type: Plain text
1200 #: build/C/man3/envz_add.3:126
1201 #, no-wrap
1202 msgid ""
1203 "#include E<lt>stdio.hE<gt>\n"
1204 "#include E<lt>stdlib.hE<gt>\n"
1205 "#include E<lt>envz.hE<gt>\n"
1206 msgstr ""
1207
1208 #. type: Plain text
1209 #: build/C/man3/envz_add.3:132
1210 #, no-wrap
1211 msgid ""
1212 "int\n"
1213 "main(int argc, char *argv[], char *envp[])\n"
1214 "{\n"
1215 "    int i, e_len = 0;\n"
1216 "    char *str;\n"
1217 msgstr ""
1218
1219 #. type: Plain text
1220 #: build/C/man3/envz_add.3:135
1221 #, no-wrap
1222 msgid ""
1223 "    for (i = 0; envp[i] != NULL; i++)\n"
1224 "        e_len += strlen(envp[i]) + 1;\n"
1225 msgstr ""
1226
1227 #. type: Plain text
1228 #: build/C/man3/envz_add.3:142
1229 #, no-wrap
1230 msgid ""
1231 "    str = envz_entry(*envp, e_len, \"HOME\");\n"
1232 "    printf(\"%s\\en\", str);\n"
1233 "    str = envz_get(*envp, e_len, \"HOME\");\n"
1234 "    printf(\"%s\\en\", str);\n"
1235 "    exit(EXIT_SUCCESS);\n"
1236 "}\n"
1237 msgstr ""
1238
1239 #. type: Plain text
1240 #: build/C/man3/envz_add.3:145
1241 msgid "B<argz_add>(3)"
1242 msgstr ""
1243
1244 #. type: TH
1245 #: build/C/man3/ftok.3:29
1246 #, no-wrap
1247 msgid "FTOK"
1248 msgstr ""
1249
1250 #. type: TH
1251 #: build/C/man3/ftok.3:29
1252 #, no-wrap
1253 msgid "2001-11-28"
1254 msgstr ""
1255
1256 #. type: Plain text
1257 #: build/C/man3/ftok.3:32
1258 msgid "ftok - convert a pathname and a project identifier to a System V IPC key"
1259 msgstr ""
1260
1261 #. type: Plain text
1262 #: build/C/man3/ftok.3:36
1263 #, no-wrap
1264 msgid ""
1265 "B<#include E<lt>sys/types.hE<gt>>\n"
1266 "B<#include E<lt>sys/ipc.hE<gt>>\n"
1267 msgstr ""
1268
1269 #. type: Plain text
1270 #: build/C/man3/ftok.3:39
1271 msgid "B<key_t ftok(const char *>I<pathname>B<, int >I<proj_id>B<);>"
1272 msgstr ""
1273
1274 #. type: Plain text
1275 #: build/C/man3/ftok.3:54
1276 msgid ""
1277 "The B<ftok>()  function uses the identity of the file named by the given "
1278 "I<pathname> (which must refer to an existing, accessible file)  and the "
1279 "least significant 8 bits of I<proj_id> (which must be nonzero) to generate a "
1280 "I<key_t> type System V IPC key, suitable for use with B<msgget>(2), "
1281 "B<semget>(2), or B<shmget>(2)."
1282 msgstr ""
1283
1284 #. type: Plain text
1285 #: build/C/man3/ftok.3:61
1286 msgid ""
1287 "The resulting value is the same for all pathnames that name the same file, "
1288 "when the same value of I<proj_id> is used.  The value returned should be "
1289 "different when the (simultaneously existing) files or the project IDs "
1290 "differ."
1291 msgstr ""
1292
1293 #. type: Plain text
1294 #: build/C/man3/ftok.3:70
1295 msgid ""
1296 "On success, the generated I<key_t> value is returned.  On failure -1 is "
1297 "returned, with I<errno> indicating the error as for the B<stat>(2)  system "
1298 "call."
1299 msgstr ""
1300
1301 #. type: Plain text
1302 #: build/C/man3/ftok.3:74
1303 msgid "Under libc4 and libc5 (and under SunOS 4.x) the prototype was:"
1304 msgstr ""
1305
1306 #. type: Plain text
1307 #: build/C/man3/ftok.3:77
1308 msgid "B<key_t ftok(char *>I<pathname>B<, char >I<proj_id>B<);>"
1309 msgstr ""
1310
1311 #. type: Plain text
1312 #: build/C/man3/ftok.3:89
1313 msgid ""
1314 "Today I<proj_id> is an I<int>, but still only 8 bits are used.  Typical "
1315 "usage has an ASCII character I<proj_id>, that is why the behavior is said to "
1316 "be undefined when I<proj_id> is zero."
1317 msgstr ""
1318
1319 #. type: Plain text
1320 #: build/C/man3/ftok.3:101
1321 msgid ""
1322 "Of course no guarantee can be given that the resulting I<key_t> is unique.  "
1323 "Typically, a best effort attempt combines the given I<proj_id> byte, the "
1324 "lower 16 bits of the inode number, and the lower 8 bits of the device number "
1325 "into a 32-bit result.  Collisions may easily happen, for example between "
1326 "files on I</dev/hda1> and files on I</dev/sda1>."
1327 msgstr ""
1328
1329 #. type: Plain text
1330 #: build/C/man3/ftok.3:107
1331 msgid "B<msgget>(2), B<semget>(2), B<shmget>(2), B<stat>(2), B<svipc>(7)"
1332 msgstr ""
1333
1334 #. type: TH
1335 #: build/C/man3/longjmp.3:27
1336 #, no-wrap
1337 msgid "LONGJMP"
1338 msgstr ""
1339
1340 #. type: TH
1341 #: build/C/man3/longjmp.3:27
1342 #, no-wrap
1343 msgid "2009-01-13"
1344 msgstr ""
1345
1346 #. type: Plain text
1347 #: build/C/man3/longjmp.3:30
1348 msgid "longjmp, siglongjmp - nonlocal jump to a saved stack context"
1349 msgstr ""
1350
1351 #. type: Plain text
1352 #: build/C/man3/longjmp.3:33
1353 #, no-wrap
1354 msgid "B<#include E<lt>setjmp.hE<gt>>\n"
1355 msgstr ""
1356
1357 #. type: Plain text
1358 #: build/C/man3/longjmp.3:35
1359 #, no-wrap
1360 msgid "B<void longjmp(jmp_buf >I<env>B<, int >I<val>B<);>\n"
1361 msgstr ""
1362
1363 #. type: Plain text
1364 #: build/C/man3/longjmp.3:37
1365 #, no-wrap
1366 msgid "B<void siglongjmp(sigjmp_buf >I<env>B<, int >I<val>B<);>\n"
1367 msgstr ""
1368
1369 #. type: Plain text
1370 #: build/C/man3/longjmp.3:46
1371 msgid ""
1372 "B<siglongjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
1373 "_POSIX_C_SOURCE"
1374 msgstr ""
1375
1376 #. type: Plain text
1377 #: build/C/man3/longjmp.3:70
1378 msgid ""
1379 "B<longjmp>()  and B<setjmp>(3)  are useful for dealing with errors and "
1380 "interrupts encountered in a low-level subroutine of a program.  B<longjmp>()  "
1381 "restores the environment saved by the last call of B<setjmp>(3)  with the "
1382 "corresponding I<env> argument.  After B<longjmp>()  is completed, program "
1383 "execution continues as if the corresponding call of B<setjmp>(3)  had just "
1384 "returned the value I<val>.  B<longjmp>()  cannot cause 0 to be returned.  If "
1385 "B<longjmp>()  is invoked with a second argument of 0, 1 will be returned "
1386 "instead."
1387 msgstr ""
1388
1389 #. type: Plain text
1390 #: build/C/man3/longjmp.3:88
1391 msgid ""
1392 "B<siglongjmp>()  is similar to B<longjmp>()  except for the type of its "
1393 "I<env> argument.  If, and only if, the B<sigsetjmp>(3)  call that set this "
1394 "I<env> used a nonzero I<savesigs> flag, B<siglongjmp>()  also restores the "
1395 "signal mask that was saved by B<sigsetjmp>(3)."
1396 msgstr ""
1397
1398 #. type: Plain text
1399 #: build/C/man3/longjmp.3:90
1400 msgid "These functions never return."
1401 msgstr ""
1402
1403 #. type: Plain text
1404 #: build/C/man3/longjmp.3:95
1405 msgid ""
1406 "C89, C99, and POSIX.1-2001 specify B<longjmp>().  POSIX.1-2001 specifies "
1407 "B<siglongjmp>()."
1408 msgstr ""
1409
1410 #. type: Plain text
1411 #: build/C/man3/longjmp.3:105
1412 msgid ""
1413 "POSIX does not specify whether B<longjmp>()  will restore the signal context "
1414 "(see B<setjmp>(3)  for some more details).  If you want to portably save and "
1415 "restore signal masks, use B<sigsetjmp>(3)  and B<siglongjmp>()."
1416 msgstr ""
1417
1418 #. type: Plain text
1419 #: build/C/man3/longjmp.3:109
1420 msgid ""
1421 "The values of automatic variables are unspecified after a call to "
1422 "B<longjmp>()  if they meet all the following criteria:"
1423 msgstr ""
1424
1425 #. type: IP
1426 #: build/C/man3/longjmp.3:109 build/C/man3/longjmp.3:113 build/C/man3/longjmp.3:119
1427 #, no-wrap
1428 msgid "\\(bu"
1429 msgstr ""
1430
1431 #. type: Plain text
1432 #: build/C/man3/longjmp.3:113
1433 msgid ""
1434 "they are local to the function that made the corresponding B<setjmp>(3)  "
1435 "call;"
1436 msgstr ""
1437
1438 #. type: Plain text
1439 #: build/C/man3/longjmp.3:119
1440 msgid ""
1441 "their values are changed between the calls to B<setjmp>(3)  and "
1442 "B<longjmp>(); and"
1443 msgstr ""
1444
1445 #. type: Plain text
1446 #: build/C/man3/longjmp.3:122
1447 msgid "they are not declared as I<volatile>."
1448 msgstr ""
1449
1450 #. type: Plain text
1451 #: build/C/man3/longjmp.3:125
1452 msgid "Analogous remarks apply for B<siglongjmp>()."
1453 msgstr ""
1454
1455 #. type: Plain text
1456 #: build/C/man3/longjmp.3:132
1457 msgid ""
1458 "B<longjmp>()  and B<siglongjmp>()  make programs hard to understand and "
1459 "maintain.  If possible an alternative should be used."
1460 msgstr ""
1461
1462 #. type: Plain text
1463 #: build/C/man3/longjmp.3:135
1464 msgid "B<setjmp>(3), B<sigsetjmp>(3)"
1465 msgstr ""
1466
1467 #. type: TH
1468 #: build/C/man3/offsetof.3:28
1469 #, no-wrap
1470 msgid "OFFSETOF"
1471 msgstr ""
1472
1473 #. type: TH
1474 #: build/C/man3/offsetof.3:28
1475 #, no-wrap
1476 msgid "2008-07-12"
1477 msgstr ""
1478
1479 #. type: Plain text
1480 #: build/C/man3/offsetof.3:31
1481 msgid "offsetof - offset of a structure member"
1482 msgstr ""
1483
1484 #. type: Plain text
1485 #: build/C/man3/offsetof.3:34
1486 #, no-wrap
1487 msgid "B<#include E<lt>stddef.hE<gt>>\n"
1488 msgstr ""
1489
1490 #. type: Plain text
1491 #: build/C/man3/offsetof.3:36
1492 #, no-wrap
1493 msgid "B<size_t offsetof(>I<type>B<, >I<member>B<);>\n"
1494 msgstr ""
1495
1496 #. type: Plain text
1497 #: build/C/man3/offsetof.3:44
1498 msgid ""
1499 "The macro B<offsetof>()  returns the offset of the field I<member> from the "
1500 "start of the structure I<type>."
1501 msgstr ""
1502
1503 #. type: Plain text
1504 #: build/C/man3/offsetof.3:51
1505 msgid ""
1506 "This macro is useful because the sizes of the fields that compose a "
1507 "structure can vary across implementations, and compilers may insert "
1508 "different numbers of padding bytes between fields.  Consequently, an "
1509 "element's offset is not necessarily given by the sum of the sizes of the "
1510 "previous elements."
1511 msgstr ""
1512
1513 #. type: Plain text
1514 #: build/C/man3/offsetof.3:56
1515 msgid ""
1516 "A compiler error will result if I<member> is not aligned to a byte boundary "
1517 "(i.e., it is a bit field)."
1518 msgstr ""
1519
1520 #. type: Plain text
1521 #: build/C/man3/offsetof.3:63
1522 msgid ""
1523 "B<offsetof>()  returns the offset of the given I<member> within the given "
1524 "I<type>, in units of bytes."
1525 msgstr ""
1526
1527 #. type: Plain text
1528 #: build/C/man3/offsetof.3:65
1529 msgid "C89, C99, POSIX.1-2001."
1530 msgstr ""
1531
1532 #. type: Plain text
1533 #: build/C/man3/offsetof.3:69
1534 msgid ""
1535 "On a Linux/i386 system, when compiled using the default B<gcc>(1)  options, "
1536 "the program below produces the following output:"
1537 msgstr ""
1538
1539 #. type: Plain text
1540 #: build/C/man3/offsetof.3:75
1541 #, no-wrap
1542 msgid ""
1543 "$B< ./a.out>\n"
1544 "offsets: i=0; c=4; d=8 a=16\n"
1545 "sizeof(struct s)=16\n"
1546 msgstr ""
1547
1548 #. type: Plain text
1549 #: build/C/man3/offsetof.3:82
1550 #, no-wrap
1551 msgid ""
1552 "#include E<lt>stddef.hE<gt>\n"
1553 "#include E<lt>stdio.hE<gt>\n"
1554 "#include E<lt>stdlib.hE<gt>\n"
1555 msgstr ""
1556
1557 #. type: Plain text
1558 #: build/C/man3/offsetof.3:92
1559 #, no-wrap
1560 msgid ""
1561 "int\n"
1562 "main(void)\n"
1563 "{\n"
1564 "    struct s {\n"
1565 "        int i;\n"
1566 "        char c;\n"
1567 "        double d;\n"
1568 "        char a[];\n"
1569 "    };\n"
1570 msgstr ""
1571
1572 #. type: Plain text
1573 #: build/C/man3/offsetof.3:94
1574 #, no-wrap
1575 msgid "    /* Output is compiler dependent */\n"
1576 msgstr ""
1577
1578 #. type: Plain text
1579 #: build/C/man3/offsetof.3:101
1580 #, no-wrap
1581 msgid ""
1582 "    printf(\"offsets: i=%ld; c=%ld; d=%ld a=%ld\\en\",\n"
1583 "            (long) offsetof(struct s, i),\n"
1584 "            (long) offsetof(struct s, c),\n"
1585 "            (long) offsetof(struct s, d),\n"
1586 "            (long) offsetof(struct s, a));\n"
1587 "    printf(\"sizeof(struct s)=%ld\\en\", (long) sizeof(struct s));\n"
1588 msgstr ""
1589
1590 #. type: Plain text
1591 #: build/C/man3/offsetof.3:104
1592 #, no-wrap
1593 msgid ""
1594 "    exit(EXIT_SUCCESS);\n"
1595 "}\n"
1596 msgstr ""
1597
1598 #. type: TH
1599 #: build/C/man3/program_invocation_name.3:24
1600 #, no-wrap
1601 msgid "INVOCATION_NAME"
1602 msgstr ""
1603
1604 #. type: TH
1605 #: build/C/man3/program_invocation_name.3:24
1606 #, no-wrap
1607 msgid "2006-04-29"
1608 msgstr ""
1609
1610 #. type: Plain text
1611 #: build/C/man3/program_invocation_name.3:28
1612 msgid ""
1613 "program_invocation_name, program_invocation_short_name - obtain name used to "
1614 "invoke calling program"
1615 msgstr ""
1616
1617 #. type: Plain text
1618 #: build/C/man3/program_invocation_name.3:32
1619 #, no-wrap
1620 msgid ""
1621 "B<#define _GNU_SOURCE>         /* See feature_test_macros(7) */\n"
1622 "B<#include E<lt>errno.hE<gt>>\n"
1623 msgstr ""
1624
1625 #. type: Plain text
1626 #: build/C/man3/program_invocation_name.3:35
1627 #, no-wrap
1628 msgid ""
1629 "B<extern char *>I<program_invocation_name>B<;>\n"
1630 "B<extern char *>I<program_invocation_short_name>B<;>\n"
1631 msgstr ""
1632
1633 #. type: Plain text
1634 #: build/C/man3/program_invocation_name.3:46
1635 msgid ""
1636 "I<program_invocation_name> contains the name that was used to invoke the "
1637 "calling program.  This is the same as the value of I<argv[0]> in I<main>(), "
1638 "with the difference that the scope of I<program_invocation_name> is global."
1639 msgstr ""
1640
1641 #. type: Plain text
1642 #: build/C/man3/program_invocation_name.3:53
1643 msgid ""
1644 "I<program_invocation_short_name> contains the basename component of name "
1645 "that was used to invoke the calling program.  That is, it is the same value "
1646 "as I<program_invocation_name>, with all text up to and including the final "
1647 "slash (/), if any, removed."
1648 msgstr ""
1649
1650 #. type: Plain text
1651 #: build/C/man3/program_invocation_name.3:56
1652 msgid ""
1653 "These variables are automatically initialized by the glibc run-time startup "
1654 "code."
1655 msgstr ""
1656
1657 #. type: Plain text
1658 #: build/C/man3/program_invocation_name.3:59
1659 msgid ""
1660 "These variables are GNU extensions, and should not be used in programs "
1661 "intended to be portable."
1662 msgstr ""
1663
1664 #. type: Plain text
1665 #: build/C/man3/program_invocation_name.3:63
1666 msgid ""
1667 "The Linux-specific I</proc/[number]/cmdline> file provides access to similar "
1668 "information."
1669 msgstr ""
1670
1671 #. type: Plain text
1672 #: build/C/man3/program_invocation_name.3:65
1673 msgid "B<proc>(5)"
1674 msgstr ""
1675
1676 #. type: TH
1677 #: build/C/man3/queue.3:39
1678 #, no-wrap
1679 msgid "QUEUE"
1680 msgstr ""
1681
1682 #. type: TH
1683 #: build/C/man3/queue.3:39
1684 #, no-wrap
1685 msgid "2007-12-28"
1686 msgstr ""
1687
1688 #. type: Plain text
1689 #: build/C/man3/queue.3:48
1690 msgid ""
1691 "LIST_ENTRY, LIST_HEAD, LIST_INIT, LIST_INSERT_AFTER, LIST_INSERT_HEAD, "
1692 "LIST_REMOVE, TAILQ_ENTRY, TAILQ_HEAD, TAILQ_INIT, TAILQ_INSERT_AFTER, "
1693 "TAILQ_INSERT_HEAD, TAILQ_INSERT_TAIL, TAILQ_REMOVE, CIRCLEQ_ENTRY, "
1694 "CIRCLEQ_HEAD, CIRCLEQ_INIT, CIRCLEQ_INSERT_AFTER, CIRCLEQ_INSERT_BEFORE, "
1695 "CIRCLEQ_INSERT_HEAD, CIRCLEQ_INSERT_TAIL, CIRCLEQ_REMOVE - implementations "
1696 "of lists, tail queues, and circular queues"
1697 msgstr ""
1698
1699 #. type: Plain text
1700 #: build/C/man3/queue.3:51
1701 #, no-wrap
1702 msgid "B<#include E<lt>sys/queue.hE<gt>>\n"
1703 msgstr ""
1704
1705 #. type: Plain text
1706 #: build/C/man3/queue.3:60
1707 #, no-wrap
1708 msgid ""
1709 "B<LIST_ENTRY(>I<TYPE>B<);>\n"
1710 "B<LIST_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
1711 "B<LIST_INIT(LIST_HEAD *>I<head>B<);>\n"
1712 "B<LIST_INSERT_AFTER(LIST_ENTRY *>I<listelm>B<, >\n"
1713 "B<                TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
1714 "B<LIST_INSERT_HEAD(LIST_HEAD *>I<head>B<, >\n"
1715 "B<                TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
1716 "B<LIST_REMOVE(TYPE *>I<elm>B<, LIST_ENTRY >I<NAME>B<);>\n"
1717 msgstr ""
1718
1719 #. type: Plain text
1720 #: build/C/man3/queue.3:71
1721 #, no-wrap
1722 msgid ""
1723 "B<TAILQ_ENTRY(>I<TYPE>B<);>\n"
1724 "B<TAILQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
1725 "B<TAILQ_INIT(TAILQ_HEAD *>I<head>B<);>\n"
1726 "B<TAILQ_INSERT_AFTER(TAILQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
1727 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
1728 "B<TAILQ_INSERT_HEAD(TAILQ_HEAD *>I<head>B<, >\n"
1729 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
1730 "B<TAILQ_INSERT_TAIL(TAILQ_HEAD *>I<head>B<, >\n"
1731 "B<                TYPE *>I<elm>B<, TAILQ_ENTRY >I<NAME>B<);>\n"
1732 "B<TAILQ_REMOVE(TAILQ_HEAD *>I<head>B<, TYPE *>I<elm>B<, TAILQ_ENTRY "
1733 ">I<NAME>B<);>\n"
1734 msgstr ""
1735
1736 #. type: Plain text
1737 #: build/C/man3/queue.3:85
1738 #, no-wrap
1739 msgid ""
1740 "B<CIRCLEQ_ENTRY(>I<TYPE>B<);>\n"
1741 "B<CIRCLEQ_HEAD(>I<HEADNAME>B<, >I<TYPE>B<);>\n"
1742 "B<CIRCLEQ_INIT(CIRCLEQ_HEAD *>I<head>B<);>\n"
1743 "B<CIRCLEQ_INSERT_AFTER(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
1744 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
1745 "B<CIRCLEQ_INSERT_BEFORE(CIRCLEQ_HEAD *>I<head>B<, TYPE *>I<listelm>B<, >\n"
1746 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
1747 "B<CIRCLEQ_INSERT_HEAD(CIRCLEQ_HEAD *>I<head>B<, >\n"
1748 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
1749 "B<CIRCLEQ_INSERT_TAIL(CIRCLEQ_HEAD *>I<head>B<, >\n"
1750 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
1751 "B<CIRCLEQ_REMOVE(CIRCLEQ_HEAD *>I<head>B<, >\n"
1752 "B<                TYPE *>I<elm>B<, CIRCLEQ_ENTRY >I<NAME>B<);>\n"
1753 msgstr ""
1754
1755 #. type: Plain text
1756 #: build/C/man3/queue.3:90
1757 msgid ""
1758 "These macros define and operate on three types of data structures: lists, "
1759 "tail queues, and circular queues.  All three structures support the "
1760 "following functionality:"
1761 msgstr ""
1762
1763 #. type: Plain text
1764 #: build/C/man3/queue.3:95
1765 msgid "Insertion of a new entry at the head of the list."
1766 msgstr ""
1767
1768 #. type: Plain text
1769 #: build/C/man3/queue.3:97
1770 msgid "Insertion of a new entry after any element in the list."
1771 msgstr ""
1772
1773 #. type: Plain text
1774 #: build/C/man3/queue.3:99
1775 msgid "Removal of any entry in the list."
1776 msgstr ""
1777
1778 #. type: Plain text
1779 #: build/C/man3/queue.3:101
1780 msgid "Forward traversal through the list."
1781 msgstr ""
1782
1783 #. type: Plain text
1784 #: build/C/man3/queue.3:106
1785 msgid ""
1786 "Lists are the simplest of the three data structures and support only the "
1787 "above functionality."
1788 msgstr ""
1789
1790 #. type: Plain text
1791 #: build/C/man3/queue.3:108
1792 msgid "Tail queues add the following functionality:"
1793 msgstr ""
1794
1795 #. type: Plain text
1796 #: build/C/man3/queue.3:111 build/C/man3/queue.3:133
1797 msgid "Entries can be added at the end of a list."
1798 msgstr ""
1799
1800 #. type: Plain text
1801 #: build/C/man3/queue.3:114 build/C/man3/queue.3:141
1802 msgid "However:"
1803 msgstr ""
1804
1805 #. type: IP
1806 #: build/C/man3/queue.3:117 build/C/man3/queue.3:144
1807 #, no-wrap
1808 msgid "1."
1809 msgstr ""
1810
1811 #. type: Plain text
1812 #: build/C/man3/queue.3:119 build/C/man3/queue.3:146
1813 msgid "All list insertions and removals must specify the head of the list."
1814 msgstr ""
1815
1816 #. type: IP
1817 #: build/C/man3/queue.3:119 build/C/man3/queue.3:146
1818 #, no-wrap
1819 msgid "2."
1820 msgstr ""
1821
1822 #. type: Plain text
1823 #: build/C/man3/queue.3:121 build/C/man3/queue.3:148
1824 msgid "Each head entry requires two pointers rather than one."
1825 msgstr ""
1826
1827 #. type: IP
1828 #: build/C/man3/queue.3:121 build/C/man3/queue.3:148
1829 #, no-wrap
1830 msgid "3."
1831 msgstr ""
1832
1833 #. type: Plain text
1834 #: build/C/man3/queue.3:124
1835 msgid ""
1836 "Code size is about 15% greater and operations run about 20% slower than "
1837 "lists."
1838 msgstr ""
1839
1840 #. type: Plain text
1841 #: build/C/man3/queue.3:128
1842 msgid "Circular queues add the following functionality:"
1843 msgstr ""
1844
1845 #. type: Plain text
1846 #: build/C/man3/queue.3:135
1847 msgid "Entries can be added before another entry."
1848 msgstr ""
1849
1850 #. type: Plain text
1851 #: build/C/man3/queue.3:137
1852 msgid "They may be traversed backward, from tail to head."
1853 msgstr ""
1854
1855 #. type: Plain text
1856 #: build/C/man3/queue.3:150
1857 msgid "The termination condition for traversal is more complex."
1858 msgstr ""
1859
1860 #. type: IP
1861 #: build/C/man3/queue.3:150
1862 #, no-wrap
1863 msgid "4."
1864 msgstr ""
1865
1866 #. type: Plain text
1867 #: build/C/man3/queue.3:153
1868 msgid ""
1869 "Code size is about 40% greater and operations run about 45% slower than "
1870 "lists."
1871 msgstr ""
1872
1873 #. type: Plain text
1874 #: build/C/man3/queue.3:176
1875 msgid ""
1876 "In the macro definitions, I<TYPE> is the name of a user-defined structure, "
1877 "that must contain a field of type B<LIST_ENTRY>, B<TAILQ_ENTRY>, or "
1878 "B<CIRCLEQ_ENTRY>, named I<NAME>.  The argument I<HEADNAME> is the name of a "
1879 "user-defined structure that must be declared using the macros B<LIST_HEAD>, "
1880 "B<TAILQ_HEAD>, or B<CIRCLEQ_HEAD>.  See the examples below for further "
1881 "explanation of how these macros are used."
1882 msgstr ""
1883
1884 #. type: SS
1885 #: build/C/man3/queue.3:176
1886 #, no-wrap
1887 msgid "Lists"
1888 msgstr ""
1889
1890 #. type: Plain text
1891 #: build/C/man3/queue.3:189
1892 msgid ""
1893 "A list is headed by a structure defined by the B<LIST_HEAD> macro.  This "
1894 "structure contains a single pointer to the first element on the list.  The "
1895 "elements are doubly linked so that an arbitrary element can be removed "
1896 "without traversing the list.  New elements can be added to the list after an "
1897 "existing element or at the head of the list.  A B<LIST_HEAD> structure is "
1898 "declared as follows:"
1899 msgstr ""
1900
1901 #. type: Plain text
1902 #: build/C/man3/queue.3:193
1903 #, no-wrap
1904 msgid "LIST_HEAD(HEADNAME, TYPE) head;\n"
1905 msgstr ""
1906
1907 #. type: Plain text
1908 #: build/C/man3/queue.3:202
1909 msgid ""
1910 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
1911 "the type of the elements to be linked into the list.  A pointer to the head "
1912 "of the list can later be declared as:"
1913 msgstr ""
1914
1915 #. type: Plain text
1916 #: build/C/man3/queue.3:206 build/C/man3/queue.3:299 build/C/man3/queue.3:401
1917 #, no-wrap
1918 msgid "struct HEADNAME *headp;\n"
1919 msgstr ""
1920
1921 #. type: Plain text
1922 #: build/C/man3/queue.3:214 build/C/man3/queue.3:307 build/C/man3/queue.3:409
1923 msgid "(The names I<head> and I<headp> are user selectable.)"
1924 msgstr ""
1925
1926 #. type: Plain text
1927 #: build/C/man3/queue.3:219
1928 msgid ""
1929 "The macro B<LIST_ENTRY> declares a structure that connects the elements in "
1930 "the list."
1931 msgstr ""
1932
1933 #. type: Plain text
1934 #: build/C/man3/queue.3:224
1935 msgid "The macro B<LIST_INIT> initializes the list referenced by I<head>."
1936 msgstr ""
1937
1938 #. type: Plain text
1939 #: build/C/man3/queue.3:230
1940 msgid ""
1941 "The macro B<LIST_INSERT_HEAD> inserts the new element I<elm> at the head of "
1942 "the list."
1943 msgstr ""
1944
1945 #. type: Plain text
1946 #: build/C/man3/queue.3:237
1947 msgid ""
1948 "The macro B<LIST_INSERT_AFTER> inserts the new element I<elm> after the "
1949 "element I<listelm>."
1950 msgstr ""
1951
1952 #. type: Plain text
1953 #: build/C/man3/queue.3:243
1954 msgid "The macro B<LIST_REMOVE> removes the element I<elm> from the list."
1955 msgstr ""
1956
1957 #. type: SS
1958 #: build/C/man3/queue.3:243
1959 #, no-wrap
1960 msgid "List example"
1961 msgstr ""
1962
1963 #. type: Plain text
1964 #: build/C/man3/queue.3:252
1965 #, no-wrap
1966 msgid ""
1967 "LIST_HEAD(listhead, entry) head;\n"
1968 "struct listhead *headp;                 /* List head. */\n"
1969 "struct entry {\n"
1970 "    ...\n"
1971 "    LIST_ENTRY(entry) entries;          /* List. */\n"
1972 "    ...\n"
1973 "} *n1, *n2, *np;\n"
1974 msgstr ""
1975
1976 #. type: Plain text
1977 #: build/C/man3/queue.3:254
1978 #, no-wrap
1979 msgid "LIST_INIT(&head);                       /* Initialize the list. */\n"
1980 msgstr ""
1981
1982 #. type: Plain text
1983 #: build/C/man3/queue.3:257
1984 #, no-wrap
1985 msgid ""
1986 "n1 = malloc(sizeof(struct entry));      /* Insert at the head. */\n"
1987 "LIST_INSERT_HEAD(&head, n1, entries);\n"
1988 msgstr ""
1989
1990 #. type: Plain text
1991 #: build/C/man3/queue.3:263
1992 #, no-wrap
1993 msgid ""
1994 "n2 = malloc(sizeof(struct entry));      /* Insert after. */\n"
1995 "LIST_INSERT_AFTER(n1, n2, entries);\n"
1996 "                                        /* Forward traversal. */\n"
1997 "for (np = head.lh_first; np != NULL; np = np-E<gt>entries.le_next)\n"
1998 "    np-E<gt> ...\n"
1999 msgstr ""
2000
2001 #.  FIXME http://sourceware.org/bugzilla/show_bug.cgi?id=1506
2002 #. type: Plain text
2003 #: build/C/man3/queue.3:267
2004 #, no-wrap
2005 msgid ""
2006 "while (head.lh_first != NULL)           /* Delete. */\n"
2007 "    LIST_REMOVE(head.lh_first, entries);\n"
2008 msgstr ""
2009
2010 #. type: SS
2011 #: build/C/man3/queue.3:268
2012 #, no-wrap
2013 msgid "Tail queues"
2014 msgstr ""
2015
2016 #. type: Plain text
2017 #: build/C/man3/queue.3:282
2018 msgid ""
2019 "A tail queue is headed by a structure defined by the B<TAILQ_HEAD> macro.  "
2020 "This structure contains a pair of pointers, one to the first element in the "
2021 "tail queue and the other to the last element in the tail queue.  The "
2022 "elements are doubly linked so that an arbitrary element can be removed "
2023 "without traversing the tail queue.  New elements can be added to the tail "
2024 "queue after an existing element, at the head of the tail queue, or at the "
2025 "end of the tail queue.  A B<TAILQ_HEAD> structure is declared as follows:"
2026 msgstr ""
2027
2028 #. type: Plain text
2029 #: build/C/man3/queue.3:286
2030 #, no-wrap
2031 msgid "TAILQ_HEAD(HEADNAME, TYPE) head;\n"
2032 msgstr ""
2033
2034 #. type: Plain text
2035 #: build/C/man3/queue.3:295
2036 msgid ""
2037 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2038 "the type of the elements to be linked into the tail queue.  A pointer to the "
2039 "head of the tail queue can later be declared as:"
2040 msgstr ""
2041
2042 #. type: Plain text
2043 #: build/C/man3/queue.3:312
2044 msgid ""
2045 "The macro B<TAILQ_ENTRY> declares a structure that connects the elements in "
2046 "the tail queue."
2047 msgstr ""
2048
2049 #. type: Plain text
2050 #: build/C/man3/queue.3:317
2051 msgid "The macro B<TAILQ_INIT> initializes the tail queue referenced by I<head>."
2052 msgstr ""
2053
2054 #. type: Plain text
2055 #: build/C/man3/queue.3:323
2056 msgid ""
2057 "The macro B<TAILQ_INSERT_HEAD> inserts the new element I<elm> at the head of "
2058 "the tail queue."
2059 msgstr ""
2060
2061 #. type: Plain text
2062 #: build/C/man3/queue.3:329
2063 msgid ""
2064 "The macro B<TAILQ_INSERT_TAIL> inserts the new element I<elm> at the end of "
2065 "the tail queue."
2066 msgstr ""
2067
2068 #. type: Plain text
2069 #: build/C/man3/queue.3:336
2070 msgid ""
2071 "The macro B<TAILQ_INSERT_AFTER> inserts the new element I<elm> after the "
2072 "element I<listelm>."
2073 msgstr ""
2074
2075 #. type: Plain text
2076 #: build/C/man3/queue.3:342
2077 msgid "The macro B<TAILQ_REMOVE> removes the element I<elm> from the tail queue."
2078 msgstr ""
2079
2080 #. type: SS
2081 #: build/C/man3/queue.3:342
2082 #, no-wrap
2083 msgid "Tail queue example"
2084 msgstr ""
2085
2086 #. type: Plain text
2087 #: build/C/man3/queue.3:351
2088 #, no-wrap
2089 msgid ""
2090 "TAILQ_HEAD(tailhead, entry) head;\n"
2091 "struct tailhead *headp;                 /* Tail queue head. */\n"
2092 "struct entry {\n"
2093 "    ...\n"
2094 "    TAILQ_ENTRY(entry) entries;         /* Tail queue. */\n"
2095 "    ...\n"
2096 "} *n1, *n2, *np;\n"
2097 msgstr ""
2098
2099 #. type: Plain text
2100 #: build/C/man3/queue.3:353
2101 #, no-wrap
2102 msgid "TAILQ_INIT(&head);                      /* Initialize the queue. */\n"
2103 msgstr ""
2104
2105 #. type: Plain text
2106 #: build/C/man3/queue.3:356
2107 #, no-wrap
2108 msgid ""
2109 "n1 = malloc(sizeof(struct entry));      /* Insert at the head. */\n"
2110 "TAILQ_INSERT_HEAD(&head, n1, entries);\n"
2111 msgstr ""
2112
2113 #. type: Plain text
2114 #: build/C/man3/queue.3:359
2115 #, no-wrap
2116 msgid ""
2117 "n1 = malloc(sizeof(struct entry));      /* Insert at the tail. */\n"
2118 "TAILQ_INSERT_TAIL(&head, n1, entries);\n"
2119 msgstr ""
2120
2121 #. type: Plain text
2122 #: build/C/man3/queue.3:368
2123 #, no-wrap
2124 msgid ""
2125 "n2 = malloc(sizeof(struct entry));      /* Insert after. */\n"
2126 "TAILQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2127 "                                        /* Forward traversal. */\n"
2128 "for (np = head.tqh_first; np != NULL; np = np-E<gt>entries.tqe_next)\n"
2129 "    np-E<gt> ...\n"
2130 "                                        /* Delete. */\n"
2131 "while (head.tqh_first != NULL)\n"
2132 "    TAILQ_REMOVE(&head, head.tqh_first, entries);\n"
2133 msgstr ""
2134
2135 #. type: SS
2136 #: build/C/man3/queue.3:369
2137 #, no-wrap
2138 msgid "Circular queues"
2139 msgstr ""
2140
2141 #. type: Plain text
2142 #: build/C/man3/queue.3:384
2143 msgid ""
2144 "A circular queue is headed by a structure defined by the B<CIRCLEQ_HEAD> "
2145 "macro.  This structure contains a pair of pointers, one to the first element "
2146 "in the circular queue and the other to the last element in the circular "
2147 "queue.  The elements are doubly linked so that an arbitrary element can be "
2148 "removed without traversing the queue.  New elements can be added to the "
2149 "queue after an existing element, before an existing element, at the head of "
2150 "the queue, or at the end of the queue.  A B<CIRCLEQ_HEAD> structure is "
2151 "declared as follows:"
2152 msgstr ""
2153
2154 #. type: Plain text
2155 #: build/C/man3/queue.3:388
2156 #, no-wrap
2157 msgid "CIRCLEQ_HEAD(HEADNAME, TYPE) head;\n"
2158 msgstr ""
2159
2160 #. type: Plain text
2161 #: build/C/man3/queue.3:397
2162 msgid ""
2163 "where I<HEADNAME> is the name of the structure to be defined, and I<TYPE> is "
2164 "the type of the elements to be linked into the circular queue.  A pointer to "
2165 "the head of the circular queue can later be declared as:"
2166 msgstr ""
2167
2168 #. type: Plain text
2169 #: build/C/man3/queue.3:414
2170 msgid ""
2171 "The macro B<CIRCLEQ_ENTRY> declares a structure that connects the elements "
2172 "in the circular queue."
2173 msgstr ""
2174
2175 #. type: Plain text
2176 #: build/C/man3/queue.3:419
2177 msgid ""
2178 "The macro B<CIRCLEQ_INIT> initializes the circular queue referenced by "
2179 "I<head>."
2180 msgstr ""
2181
2182 #. type: Plain text
2183 #: build/C/man3/queue.3:425
2184 msgid ""
2185 "The macro B<CIRCLEQ_INSERT_HEAD> inserts the new element I<elm> at the head "
2186 "of the circular queue."
2187 msgstr ""
2188
2189 #. type: Plain text
2190 #: build/C/man3/queue.3:431
2191 msgid ""
2192 "The macro B<CIRCLEQ_INSERT_TAIL> inserts the new element I<elm> at the end "
2193 "of the circular queue."
2194 msgstr ""
2195
2196 #. type: Plain text
2197 #: build/C/man3/queue.3:438
2198 msgid ""
2199 "The macro B<CIRCLEQ_INSERT_AFTER> inserts the new element I<elm> after the "
2200 "element I<listelm>."
2201 msgstr ""
2202
2203 #. type: Plain text
2204 #: build/C/man3/queue.3:445
2205 msgid ""
2206 "The macro B<CIRCLEQ_INSERT_BEFORE> inserts the new element I<elm> before the "
2207 "element I<listelm>."
2208 msgstr ""
2209
2210 #. type: Plain text
2211 #: build/C/man3/queue.3:451
2212 msgid ""
2213 "The macro B<CIRCLEQ_REMOVE> removes the element I<elm> from the circular "
2214 "queue."
2215 msgstr ""
2216
2217 #. type: SS
2218 #: build/C/man3/queue.3:451
2219 #, no-wrap
2220 msgid "Circular queue example"
2221 msgstr ""
2222
2223 #. type: Plain text
2224 #: build/C/man3/queue.3:460
2225 #, no-wrap
2226 msgid ""
2227 "CIRCLEQ_HEAD(circleq, entry) head;\n"
2228 "struct circleq *headp;              /* Circular queue head. */\n"
2229 "struct entry {\n"
2230 "    ...\n"
2231 "    CIRCLEQ_ENTRY(entry) entries;   /* Circular queue. */\n"
2232 "    ...\n"
2233 "} *n1, *n2, *np;\n"
2234 msgstr ""
2235
2236 #. type: Plain text
2237 #: build/C/man3/queue.3:462
2238 #, no-wrap
2239 msgid "CIRCLEQ_INIT(&head);                /* Initialize the circular queue. */\n"
2240 msgstr ""
2241
2242 #. type: Plain text
2243 #: build/C/man3/queue.3:465
2244 #, no-wrap
2245 msgid ""
2246 "n1 = malloc(sizeof(struct entry));  /* Insert at the head. */\n"
2247 "CIRCLEQ_INSERT_HEAD(&head, n1, entries);\n"
2248 msgstr ""
2249
2250 #. type: Plain text
2251 #: build/C/man3/queue.3:468
2252 #, no-wrap
2253 msgid ""
2254 "n1 = malloc(sizeof(struct entry));  /* Insert at the tail. */\n"
2255 "CIRCLEQ_INSERT_TAIL(&head, n1, entries);\n"
2256 msgstr ""
2257
2258 #. type: Plain text
2259 #: build/C/man3/queue.3:471
2260 #, no-wrap
2261 msgid ""
2262 "n2 = malloc(sizeof(struct entry));  /* Insert after. */\n"
2263 "CIRCLEQ_INSERT_AFTER(&head, n1, n2, entries);\n"
2264 msgstr ""
2265
2266 #. type: Plain text
2267 #: build/C/man3/queue.3:484
2268 #, no-wrap
2269 msgid ""
2270 "n2 = malloc(sizeof(struct entry));  /* Insert before. */\n"
2271 "CIRCLEQ_INSERT_BEFORE(&head, n1, n2, entries);\n"
2272 "                                    /* Forward traversal. */\n"
2273 "for (np = head.cqh_first; np != (void *)&head;\n"
2274 "        np = np-E<gt>entries.cqe_next)\n"
2275 "    np-E<gt> ...\n"
2276 "                                    /* Reverse traversal. */\n"
2277 "for (np = head.cqh_last; np != (void *)&head; np = "
2278 "np-E<gt>entries.cqe_prev)\n"
2279 "    np-E<gt> ...\n"
2280 "                                    /* Delete. */\n"
2281 "while (head.cqh_first != (void *)&head)\n"
2282 "    CIRCLEQ_REMOVE(&head, head.cqh_first, entries);\n"
2283 msgstr ""
2284
2285 #. type: Plain text
2286 #: build/C/man3/queue.3:491
2287 msgid ""
2288 "Not in POSIX.1-2001.  Present on the BSDs.  The queue functions first "
2289 "appeared in 4.4BSD."
2290 msgstr ""
2291
2292 #. type: TH
2293 #: build/C/man3/realpath.3:28
2294 #, no-wrap
2295 msgid "REALPATH"
2296 msgstr ""
2297
2298 #. type: TH
2299 #: build/C/man3/realpath.3:28
2300 #, no-wrap
2301 msgid "2013-03-15"
2302 msgstr ""
2303
2304 #. type: Plain text
2305 #: build/C/man3/realpath.3:31
2306 msgid "realpath - return the canonicalized absolute pathname"
2307 msgstr ""
2308
2309 #. type: Plain text
2310 #: build/C/man3/realpath.3:35
2311 #, no-wrap
2312 msgid ""
2313 "B<#include E<lt>limits.hE<gt>>\n"
2314 "B<#include E<lt>stdlib.hE<gt>>\n"
2315 msgstr ""
2316
2317 #. type: Plain text
2318 #: build/C/man3/realpath.3:37
2319 #, no-wrap
2320 msgid "B<char *realpath(const char *>I<path>B<, char *>I<resolved_path>B<);>\n"
2321 msgstr ""
2322
2323 #. type: Plain text
2324 #: build/C/man3/realpath.3:45
2325 msgid "B<realpath>():"
2326 msgstr ""
2327
2328 #. type: Plain text
2329 #: build/C/man3/realpath.3:49
2330 msgid ""
2331 "_BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
2332 "_XOPEN_SOURCE_EXTENDED"
2333 msgstr ""
2334
2335 #. type: Plain text
2336 #: build/C/man3/realpath.3:71
2337 msgid ""
2338 "B<realpath>()  expands all symbolic links and resolves references to I</./>, "
2339 "I</../> and extra \\(aq/\\(aq characters in the null-terminated string named "
2340 "by I<path> to produce a canonicalized absolute pathname.  The resulting "
2341 "pathname is stored as a null-terminated string, up to a maximum of "
2342 "B<PATH_MAX> bytes, in the buffer pointed to by I<resolved_path>.  The "
2343 "resulting path will have no symbolic link, I</./> or I</../> components."
2344 msgstr ""
2345
2346 #.  Even if we use resolved_path == NULL, then realpath() will still
2347 #.  return ENAMETOOLONG if the resolved pathname would exceed PATH_MAX
2348 #.  bytes -- MTK, Dec 04
2349 #.  .SH HISTORY
2350 #.  The
2351 #.  .BR realpath ()
2352 #.  function first appeared in 4.4BSD, contributed by Jan-Simon Pendry.
2353 #. type: Plain text
2354 #: build/C/man3/realpath.3:91
2355 msgid ""
2356 "If I<resolved_path> is specified as NULL, then B<realpath>()  uses "
2357 "B<malloc>(3)  to allocate a buffer of up to B<PATH_MAX> bytes to hold the "
2358 "resolved pathname, and returns a pointer to this buffer.  The caller should "
2359 "deallocate this buffer using B<free>(3)."
2360 msgstr ""
2361
2362 #. type: Plain text
2363 #: build/C/man3/realpath.3:96
2364 msgid ""
2365 "If there is no error, B<realpath>()  returns a pointer to the "
2366 "I<resolved_path>."
2367 msgstr ""
2368
2369 #. type: Plain text
2370 #: build/C/man3/realpath.3:103
2371 msgid ""
2372 "Otherwise, it returns a NULL pointer, the contents of the array "
2373 "I<resolved_path> are undefined, and I<errno> is set to indicate the error."
2374 msgstr ""
2375
2376 #. type: SH
2377 #: build/C/man3/realpath.3:103
2378 #, no-wrap
2379 msgid "ERRORS"
2380 msgstr ""
2381
2382 #. type: TP
2383 #: build/C/man3/realpath.3:104
2384 #, no-wrap
2385 msgid "B<EACCES>"
2386 msgstr ""
2387
2388 #. type: Plain text
2389 #: build/C/man3/realpath.3:107
2390 msgid "Read or search permission was denied for a component of the path prefix."
2391 msgstr ""
2392
2393 #. type: TP
2394 #: build/C/man3/realpath.3:107
2395 #, no-wrap
2396 msgid "B<EINVAL>"
2397 msgstr ""
2398
2399 #.  (In libc5 this would just cause a segfault.)
2400 #. type: Plain text
2401 #: build/C/man3/realpath.3:116
2402 msgid ""
2403 "I<path> is NULL.  (In glibc versions before 2.3, this error is also returned "
2404 "if I<resolved_path> is NULL.)"
2405 msgstr ""
2406
2407 #. type: TP
2408 #: build/C/man3/realpath.3:116
2409 #, no-wrap
2410 msgid "B<EIO>"
2411 msgstr ""
2412
2413 #. type: Plain text
2414 #: build/C/man3/realpath.3:119
2415 msgid "An I/O error occurred while reading from the filesystem."
2416 msgstr ""
2417
2418 #. type: TP
2419 #: build/C/man3/realpath.3:119
2420 #, no-wrap
2421 msgid "B<ELOOP>"
2422 msgstr ""
2423
2424 #. type: Plain text
2425 #: build/C/man3/realpath.3:122
2426 msgid "Too many symbolic links were encountered in translating the pathname."
2427 msgstr ""
2428
2429 #. type: TP
2430 #: build/C/man3/realpath.3:122
2431 #, no-wrap
2432 msgid "B<ENAMETOOLONG>"
2433 msgstr ""
2434
2435 #. type: Plain text
2436 #: build/C/man3/realpath.3:129
2437 msgid ""
2438 "A component of a pathname exceeded B<NAME_MAX> characters, or an entire "
2439 "pathname exceeded B<PATH_MAX> characters."
2440 msgstr ""
2441
2442 #. type: TP
2443 #: build/C/man3/realpath.3:129
2444 #, no-wrap
2445 msgid "B<ENOENT>"
2446 msgstr ""
2447
2448 #. type: Plain text
2449 #: build/C/man3/realpath.3:132
2450 msgid "The named file does not exist."
2451 msgstr ""
2452
2453 #. type: TP
2454 #: build/C/man3/realpath.3:132
2455 #, no-wrap
2456 msgid "B<ENOTDIR>"
2457 msgstr ""
2458
2459 #. type: Plain text
2460 #: build/C/man3/realpath.3:135
2461 msgid "A component of the path prefix is not a directory."
2462 msgstr ""
2463
2464 #. type: Plain text
2465 #: build/C/man3/realpath.3:137
2466 msgid "On Linux, this function appeared in libc 4.5.21."
2467 msgstr ""
2468
2469 #. type: Plain text
2470 #: build/C/man3/realpath.3:139
2471 msgid "4.4BSD, POSIX.1-2001."
2472 msgstr ""
2473
2474 #. type: Plain text
2475 #: build/C/man3/realpath.3:144
2476 msgid ""
2477 "POSIX.1-2001 says that the behavior if I<resolved_path> is NULL is "
2478 "implementation-defined.  POSIX.1-2008 specifies the behavior described in "
2479 "this page."
2480 msgstr ""
2481
2482 #. type: Plain text
2483 #: build/C/man3/realpath.3:156
2484 msgid ""
2485 "In 4.4BSD and Solaris, the limit on the pathname length is B<MAXPATHLEN> "
2486 "(found in I<E<lt>sys/param.hE<gt>>).  SUSv2 prescribes B<PATH_MAX> and "
2487 "B<NAME_MAX>, as found in I<E<lt>limits.hE<gt>> or provided by the "
2488 "B<pathconf>(3)  function.  A typical source fragment would be"
2489 msgstr ""
2490
2491 #. type: Plain text
2492 #: build/C/man3/realpath.3:166
2493 #, no-wrap
2494 msgid ""
2495 "#ifdef PATH_MAX\n"
2496 "  path_max = PATH_MAX;\n"
2497 "#else\n"
2498 "  path_max = pathconf(path, _PC_PATH_MAX);\n"
2499 "  if (path_max E<lt>= 0)\n"
2500 "    path_max = 4096;\n"
2501 "#endif\n"
2502 msgstr ""
2503
2504 #. type: Plain text
2505 #: build/C/man3/realpath.3:170
2506 msgid "(But see the BUGS section.)"
2507 msgstr ""
2508
2509 #.      2012-05-05, According to Casper Dik, the statement about
2510 #.      Solaris was not true at least as far back as 1997, and
2511 #.      may never have been true.
2512 #
2513 #.  The 4.4BSD, Linux and SUSv2 versions always return an absolute
2514 #.  pathname.
2515 #.  Solaris may return a relative pathname when the
2516 #.  .I path
2517 #.  argument is relative.
2518 #. type: Plain text
2519 #: build/C/man3/realpath.3:184
2520 msgid ""
2521 "The prototype of B<realpath>()  is given in I<E<lt>unistd.hE<gt>> in libc4 "
2522 "and libc5, but in I<E<lt>stdlib.hE<gt>> everywhere else."
2523 msgstr ""
2524
2525 #. type: SS
2526 #: build/C/man3/realpath.3:184
2527 #, no-wrap
2528 msgid "GNU extensions"
2529 msgstr ""
2530
2531 #. type: Plain text
2532 #: build/C/man3/realpath.3:195
2533 msgid ""
2534 "If the call fails with either B<EACCES> or B<ENOENT> and I<resolved_path> is "
2535 "not NULL, then the prefix of I<path> that is not readable or does not exist "
2536 "is returned in I<resolved_path>."
2537 msgstr ""
2538
2539 #. type: Plain text
2540 #: build/C/man3/realpath.3:220
2541 msgid ""
2542 "The POSIX.1-2001 standard version of this function is broken by design, "
2543 "since it is impossible to determine a suitable size for the output buffer, "
2544 "I<resolved_path>.  According to POSIX.1-2001 a buffer of size B<PATH_MAX> "
2545 "suffices, but B<PATH_MAX> need not be a defined constant, and may have to be "
2546 "obtained using B<pathconf>(3).  And asking B<pathconf>(3)  does not really "
2547 "help, since, on the one hand POSIX warns that the result of B<pathconf>(3)  "
2548 "may be huge and unsuitable for mallocing memory, and on the other hand "
2549 "B<pathconf>(3)  may return -1 to signify that B<PATH_MAX> is not bounded.  "
2550 "The I<resolved_path\\ ==\\ NULL> feature, not standardized in POSIX.1-2001, "
2551 "but standardized in POSIX.1-2008, allows this design problem to be avoided."
2552 msgstr ""
2553
2554 #. type: Plain text
2555 #: build/C/man3/realpath.3:226
2556 msgid ""
2557 "The libc4 and libc5 implementation contained a buffer overflow (fixed in "
2558 "libc-5.4.13).  Thus, set-user-ID programs like B<mount>(8)  needed a private "
2559 "version."
2560 msgstr ""
2561
2562 #. type: Plain text
2563 #: build/C/man3/realpath.3:232
2564 msgid ""
2565 "B<readlink>(2), B<canonicalize_file_name>(3), B<getcwd>(3), B<pathconf>(3), "
2566 "B<sysconf>(3)"
2567 msgstr ""
2568
2569 #. type: TH
2570 #: build/C/man3/setjmp.3:27
2571 #, no-wrap
2572 msgid "SETJMP"
2573 msgstr ""
2574
2575 #. type: TH
2576 #: build/C/man3/setjmp.3:27
2577 #, no-wrap
2578 msgid "2009-06-26"
2579 msgstr ""
2580
2581 #. type: Plain text
2582 #: build/C/man3/setjmp.3:30
2583 msgid "setjmp, sigsetjmp - save stack context for nonlocal goto"
2584 msgstr ""
2585
2586 #. type: Plain text
2587 #: build/C/man3/setjmp.3:32
2588 msgid "B<#include E<lt>setjmp.hE<gt>>"
2589 msgstr ""
2590
2591 #. type: Plain text
2592 #: build/C/man3/setjmp.3:35
2593 #, no-wrap
2594 msgid "B<int setjmp(jmp_buf >I<env>B<);>\n"
2595 msgstr ""
2596
2597 #. type: Plain text
2598 #: build/C/man3/setjmp.3:37
2599 #, no-wrap
2600 msgid "B<int sigsetjmp(sigjmp_buf >I<env>B<, int >I<savesigs>B<);>\n"
2601 msgstr ""
2602
2603 #. type: Plain text
2604 #: build/C/man3/setjmp.3:46
2605 msgid "B<setjmp>(): see NOTES."
2606 msgstr ""
2607
2608 #. type: Plain text
2609 #: build/C/man3/setjmp.3:49
2610 msgid ""
2611 "B<sigsetjmp>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || "
2612 "_POSIX_C_SOURCE"
2613 msgstr ""
2614
2615 #. type: Plain text
2616 #: build/C/man3/setjmp.3:65
2617 msgid ""
2618 "B<setjmp>()  and B<longjmp>(3)  are useful for dealing with errors and "
2619 "interrupts encountered in a low-level subroutine of a program.  B<setjmp>()  "
2620 "saves the stack context/environment in I<env> for later use by "
2621 "B<longjmp>(3).  The stack context will be invalidated if the function which "
2622 "called B<setjmp>()  returns."
2623 msgstr ""
2624
2625 #. type: Plain text
2626 #: build/C/man3/setjmp.3:78
2627 msgid ""
2628 "B<sigsetjmp>()  is similar to B<setjmp>().  If, and only if, I<savesigs> is "
2629 "nonzero, the process's current signal mask is saved in I<env> and will be "
2630 "restored if a B<siglongjmp>(3)  is later performed with this I<env>."
2631 msgstr ""
2632
2633 #. type: Plain text
2634 #: build/C/man3/setjmp.3:88
2635 msgid ""
2636 "B<setjmp>()  and B<sigsetjmp>()  return 0 if returning directly, and nonzero "
2637 "when returning from B<longjmp>(3)  or B<siglongjmp>(3)  using the saved "
2638 "context."
2639 msgstr ""
2640
2641 #. type: Plain text
2642 #: build/C/man3/setjmp.3:93
2643 msgid ""
2644 "C89, C99, and POSIX.1-2001 specify B<setjmp>().  POSIX.1-2001 specifies "
2645 "B<sigsetjmp>()."
2646 msgstr ""
2647
2648 #. type: Plain text
2649 #: build/C/man3/setjmp.3:114
2650 msgid ""
2651 "POSIX does not specify whether B<setjmp>()  will save the signal mask.  In "
2652 "System V it will not.  In 4.3BSD it will, and there is a function B<_setjmp> "
2653 "that will not.  By default, Linux/glibc follows the System V behavior, but "
2654 "the BSD behavior is provided if the B<_BSD_SOURCE> feature test macro is "
2655 "defined and none of B<_POSIX_SOURCE>, B<_POSIX_C_SOURCE>, B<_XOPEN_SOURCE>, "
2656 "B<_XOPEN_SOURCE_EXTENDED>, B<_GNU_SOURCE>, or B<_SVID_SOURCE> is defined."
2657 msgstr ""
2658
2659 #. type: Plain text
2660 #: build/C/man3/setjmp.3:119
2661 msgid ""
2662 "If you want to portably save and restore signal masks, use B<sigsetjmp>()  "
2663 "and B<siglongjmp>(3)."
2664 msgstr ""
2665
2666 #. type: Plain text
2667 #: build/C/man3/setjmp.3:126
2668 msgid ""
2669 "B<setjmp>()  and B<sigsetjmp>()  make programs hard to understand and "
2670 "maintain.  If possible an alternative should be used."
2671 msgstr ""
2672
2673 #. type: Plain text
2674 #: build/C/man3/setjmp.3:129
2675 msgid "B<longjmp>(3), B<siglongjmp>(3)"
2676 msgstr ""
2677
2678 #. type: TH
2679 #: build/C/man3/xcrypt.3:13
2680 #, no-wrap
2681 msgid "XCRYPT"
2682 msgstr ""
2683
2684 #. type: TH
2685 #: build/C/man3/xcrypt.3:13
2686 #, no-wrap
2687 msgid "2003-04-04"
2688 msgstr ""
2689
2690 #. type: Plain text
2691 #: build/C/man3/xcrypt.3:16
2692 msgid "xencrypt, xdecrypt, passwd2des - RFS password encryption"
2693 msgstr ""
2694
2695 #. type: Plain text
2696 #: build/C/man3/xcrypt.3:18
2697 msgid "B<#include E<lt>rpc/des_crypt.hE<gt>>"
2698 msgstr ""
2699
2700 #. type: Plain text
2701 #: build/C/man3/xcrypt.3:20
2702 msgid "B<void passwd2des(char >I<*passwd>B<, char *>I<key>B<);>"
2703 msgstr ""
2704
2705 #. type: Plain text
2706 #: build/C/man3/xcrypt.3:22
2707 msgid "B<int xencrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
2708 msgstr ""
2709
2710 #. type: Plain text
2711 #: build/C/man3/xcrypt.3:24
2712 msgid "B<int xdecrypt(char *>I<secret>B<, char *>I<passwd>B<);>"
2713 msgstr ""
2714
2715 #. type: Plain text
2716 #: build/C/man3/xcrypt.3:40
2717 msgid ""
2718 "The function B<passwd2des>()  takes a character string I<passwd> of "
2719 "arbitrary length and fills a character array I<key> of length 8.  The array "
2720 "I<key> is suitable for use as DES key.  It has odd parity set in bit 0 of "
2721 "each byte.  Both other functions described here use this function to turn "
2722 "their argument I<passwd> into a DES key."
2723 msgstr ""
2724
2725 #.  (over the alphabet 0123456789abcdefABCDEF),
2726 #.  (over the alphabet 0123456789abcdef)
2727 #. type: Plain text
2728 #: build/C/man3/xcrypt.3:57
2729 msgid ""
2730 "The B<xencrypt>()  function takes the ASCII character string I<secret> given "
2731 "in hex, which must have a length that is a multiple of 16, encrypts it using "
2732 "the DES key derived from I<passwd> by B<passwd2des>(), and outputs the "
2733 "result again in I<secret> as a hex string of the same length."
2734 msgstr ""
2735
2736 #. type: Plain text
2737 #: build/C/man3/xcrypt.3:61
2738 msgid "The B<xdecrypt>()  function performs the converse operation."
2739 msgstr ""
2740
2741 #. type: Plain text
2742 #: build/C/man3/xcrypt.3:67
2743 msgid ""
2744 "The functions B<xencrypt>()  and B<xdecrypt>()  return 1 on success and 0 on "
2745 "error."
2746 msgstr ""
2747
2748 #. type: Plain text
2749 #: build/C/man3/xcrypt.3:70
2750 msgid ""
2751 "These routines are present in libc 4.6.27 and later, and in glibc 2.1 and "
2752 "later."
2753 msgstr ""
2754
2755 #. type: Plain text
2756 #: build/C/man3/xcrypt.3:72
2757 msgid "The prototypes are missing from the abovementioned include file."
2758 msgstr ""
2759
2760 #. type: Plain text
2761 #: build/C/man3/xcrypt.3:74
2762 msgid "B<cbc_crypt>(3)"
2763 msgstr ""