OSDN Git Service

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