OSDN Git Service

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