OSDN Git Service

LDP: Update POT and ja.po to LDP v3.67
[linuxjm/LDP_man-pages.git] / po4a / stdlib / po / stdlib.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: 2014-06-03 01:29+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=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
18
19 #. type: TH
20 #: build/C/man3/MB_CUR_MAX.3:17
21 #, no-wrap
22 msgid "MB_CUR_MAX"
23 msgstr ""
24
25 #. type: TH
26 #: build/C/man3/MB_CUR_MAX.3:17 build/C/man3/MB_LEN_MAX.3:17
27 #, no-wrap
28 msgid "1999-07-04"
29 msgstr ""
30
31 #. type: TH
32 #: build/C/man3/MB_CUR_MAX.3:17 build/C/man3/MB_LEN_MAX.3:17 build/C/man2/_exit.2:29 build/C/man3/atexit.3:33 build/C/man3/clearenv.3:26 build/C/man3/exit.3:29 build/C/man3/getloadavg.3:34 build/C/man3/strtod.3:45 build/C/man7/vdso.7:13
33 #, no-wrap
34 msgid "Linux"
35 msgstr ""
36
37 #. type: TH
38 #: build/C/man3/MB_CUR_MAX.3:17 build/C/man3/MB_LEN_MAX.3:17 build/C/man2/_exit.2:29 build/C/man3/a64l.3:9 build/C/man3/atexit.3:33 build/C/man3/atof.3:31 build/C/man3/atoi.3:33 build/C/man3/canonicalize_file_name.3:26 build/C/man3/cfree.3:24 build/C/man3/clearenv.3:26 build/C/man3/drand48.3:30 build/C/man3/drand48_r.3:27 build/C/man3/ecvt.3:32 build/C/man3/ecvt_r.3:30 build/C/man3/exit.3:29 build/C/man3/gcvt.3:30 build/C/man3/getauxval.3:29 build/C/man3/getenv.3:33 build/C/man3/getloadavg.3:34 build/C/man3/getsubopt.3:25 build/C/man3/malloc.3:33 build/C/man3/mblen.3:16 build/C/man3/mbstowcs.3:18 build/C/man3/mbtowc.3:16 build/C/man3/mkdtemp.3:26 build/C/man3/mkstemp.3:35 build/C/man3/mktemp.3:34 build/C/man3/on_exit.3:31 build/C/man3/putenv.3:36 build/C/man3/qecvt.3:28 build/C/man3/rand.3:41 build/C/man3/random.3:33 build/C/man3/random_r.3:26 build/C/man3/rpmatch.3:29 build/C/man3/setenv.3:37 build/C/man3/strtod.3:45 build/C/man3/strtoimax.3:24 build/C/man3/strtol.3:31 build/C/man3/strtoul.3:33 build/C/man3/system.3:31 build/C/man7/vdso.7:13 build/C/man3/wcstombs.3:16 build/C/man3/wctomb.3:16
39 #, no-wrap
40 msgid "Linux Programmer's Manual"
41 msgstr ""
42
43 #. type: SH
44 #: build/C/man3/MB_CUR_MAX.3:18 build/C/man3/MB_LEN_MAX.3:18 build/C/man2/_exit.2:30 build/C/man3/a64l.3:10 build/C/man3/atexit.3:34 build/C/man3/atof.3:32 build/C/man3/atoi.3:34 build/C/man3/canonicalize_file_name.3:27 build/C/man3/cfree.3:25 build/C/man3/clearenv.3:27 build/C/man3/drand48.3:31 build/C/man3/drand48_r.3:28 build/C/man3/ecvt.3:33 build/C/man3/ecvt_r.3:31 build/C/man3/exit.3:30 build/C/man3/gcvt.3:31 build/C/man3/getauxval.3:30 build/C/man3/getenv.3:34 build/C/man3/getloadavg.3:35 build/C/man3/getsubopt.3:26 build/C/man3/malloc.3:34 build/C/man3/mblen.3:17 build/C/man3/mbstowcs.3:19 build/C/man3/mbtowc.3:17 build/C/man3/mkdtemp.3:27 build/C/man3/mkstemp.3:36 build/C/man3/mktemp.3:35 build/C/man3/on_exit.3:32 build/C/man3/putenv.3:37 build/C/man3/qecvt.3:29 build/C/man3/rand.3:42 build/C/man3/random.3:34 build/C/man3/random_r.3:27 build/C/man3/rpmatch.3:30 build/C/man3/setenv.3:38 build/C/man3/strtod.3:46 build/C/man3/strtoimax.3:25 build/C/man3/strtol.3:32 build/C/man3/strtoul.3:34 build/C/man3/system.3:32 build/C/man7/vdso.7:14 build/C/man3/wcstombs.3:17 build/C/man3/wctomb.3:17
45 #, no-wrap
46 msgid "NAME"
47 msgstr ""
48
49 #. type: Plain text
50 #: build/C/man3/MB_CUR_MAX.3:20
51 msgid "MB_CUR_MAX - maximum length of a multibyte character in the current locale"
52 msgstr ""
53
54 #. type: SH
55 #: build/C/man3/MB_CUR_MAX.3:20 build/C/man3/MB_LEN_MAX.3:20 build/C/man2/_exit.2:32 build/C/man3/a64l.3:12 build/C/man3/atexit.3:36 build/C/man3/atof.3:34 build/C/man3/atoi.3:36 build/C/man3/canonicalize_file_name.3:29 build/C/man3/cfree.3:27 build/C/man3/clearenv.3:29 build/C/man3/drand48.3:34 build/C/man3/drand48_r.3:32 build/C/man3/ecvt.3:35 build/C/man3/ecvt_r.3:33 build/C/man3/exit.3:32 build/C/man3/gcvt.3:33 build/C/man3/getauxval.3:32 build/C/man3/getenv.3:36 build/C/man3/getloadavg.3:37 build/C/man3/getsubopt.3:28 build/C/man3/malloc.3:36 build/C/man3/mblen.3:19 build/C/man3/mbstowcs.3:21 build/C/man3/mbtowc.3:19 build/C/man3/mkdtemp.3:29 build/C/man3/mkstemp.3:38 build/C/man3/mktemp.3:37 build/C/man3/on_exit.3:34 build/C/man3/putenv.3:39 build/C/man3/qecvt.3:31 build/C/man3/rand.3:44 build/C/man3/random.3:36 build/C/man3/random_r.3:30 build/C/man3/rpmatch.3:32 build/C/man3/setenv.3:40 build/C/man3/strtod.3:48 build/C/man3/strtoimax.3:27 build/C/man3/strtol.3:34 build/C/man3/strtoul.3:36 build/C/man3/system.3:34 build/C/man7/vdso.7:16 build/C/man3/wcstombs.3:19 build/C/man3/wctomb.3:19
56 #, no-wrap
57 msgid "SYNOPSIS"
58 msgstr ""
59
60 #. type: Plain text
61 #: build/C/man3/MB_CUR_MAX.3:23 build/C/man3/atexit.3:39 build/C/man3/atof.3:37 build/C/man3/atoi.3:39 build/C/man3/cfree.3:31 build/C/man3/clearenv.3:32 build/C/man3/drand48.3:37 build/C/man3/drand48_r.3:35 build/C/man3/ecvt_r.3:36 build/C/man3/exit.3:35 build/C/man3/gcvt.3:36 build/C/man3/getenv.3:39 build/C/man3/malloc.3:39 build/C/man3/mblen.3:22 build/C/man3/mbstowcs.3:24 build/C/man3/mbtowc.3:22 build/C/man3/mkdtemp.3:32 build/C/man3/mkstemp.3:41 build/C/man3/mktemp.3:40 build/C/man3/on_exit.3:37 build/C/man3/putenv.3:42 build/C/man3/rand.3:47 build/C/man3/random.3:39 build/C/man3/random_r.3:33 build/C/man3/rpmatch.3:35 build/C/man3/setenv.3:43 build/C/man3/strtol.3:37 build/C/man3/strtoul.3:39 build/C/man3/system.3:37 build/C/man3/wcstombs.3:22 build/C/man3/wctomb.3:22
62 #, no-wrap
63 msgid "B<#include E<lt>stdlib.hE<gt>>\n"
64 msgstr ""
65
66 #. type: SH
67 #: build/C/man3/MB_CUR_MAX.3:24 build/C/man3/MB_LEN_MAX.3:24 build/C/man2/_exit.2:56 build/C/man3/a64l.3:33 build/C/man3/atexit.3:42 build/C/man3/atof.3:40 build/C/man3/atoi.3:64 build/C/man3/canonicalize_file_name.3:35 build/C/man3/cfree.3:52 build/C/man3/clearenv.3:43 build/C/man3/drand48.3:75 build/C/man3/drand48_r.3:83 build/C/man3/ecvt.3:69 build/C/man3/ecvt_r.3:64 build/C/man3/exit.3:38 build/C/man3/gcvt.3:64 build/C/man3/getauxval.3:38 build/C/man3/getenv.3:52 build/C/man3/getloadavg.3:44 build/C/man3/getsubopt.3:50 build/C/man3/malloc.3:45 build/C/man3/mblen.3:25 build/C/man3/mbstowcs.3:27 build/C/man3/mbtowc.3:25 build/C/man3/mkdtemp.3:55 build/C/man3/mkstemp.3:76 build/C/man3/mktemp.3:66 build/C/man3/on_exit.3:48 build/C/man3/putenv.3:54 build/C/man3/qecvt.3:66 build/C/man3/rand.3:62 build/C/man3/random.3:64 build/C/man3/random_r.3:58 build/C/man3/rpmatch.3:46 build/C/man3/setenv.3:61 build/C/man3/strtod.3:73 build/C/man3/strtoimax.3:35 build/C/man3/strtol.3:59 build/C/man3/strtoul.3:62 build/C/man3/system.3:40 build/C/man7/vdso.7:20 build/C/man3/wcstombs.3:25 build/C/man3/wctomb.3:25
68 #, no-wrap
69 msgid "DESCRIPTION"
70 msgstr ""
71
72 #. type: Plain text
73 #: build/C/man3/MB_CUR_MAX.3:31
74 msgid ""
75 "The B<MB_CUR_MAX> macro defines an integer expression giving the maximum "
76 "number of bytes needed to represent a single wide character in the current "
77 "locale.  It is locale dependent and therefore not a compile-time constant."
78 msgstr ""
79
80 #. type: SH
81 #: build/C/man3/MB_CUR_MAX.3:31 build/C/man3/MB_LEN_MAX.3:29 build/C/man2/_exit.2:79 build/C/man3/atexit.3:71 build/C/man3/atof.3:55 build/C/man3/atoi.3:91 build/C/man3/canonicalize_file_name.3:61 build/C/man3/cfree.3:96 build/C/man3/clearenv.3:50 build/C/man3/drand48_r.3:96 build/C/man3/ecvt.3:99 build/C/man3/ecvt_r.3:86 build/C/man3/exit.3:86 build/C/man3/gcvt.3:72 build/C/man3/getauxval.3:173 build/C/man3/getenv.3:88 build/C/man3/getloadavg.3:55 build/C/man3/getsubopt.3:110 build/C/man3/malloc.3:132 build/C/man3/mblen.3:75 build/C/man3/mbstowcs.3:84 build/C/man3/mbtowc.3:93 build/C/man3/mkdtemp.3:68 build/C/man3/mkstemp.3:155 build/C/man3/mktemp.3:80 build/C/man3/on_exit.3:76 build/C/man3/putenv.3:67 build/C/man3/rand.3:118 build/C/man3/random.3:118 build/C/man3/random_r.3:100 build/C/man3/rpmatch.3:73 build/C/man3/setenv.3:105 build/C/man3/strtod.3:128 build/C/man3/strtoimax.3:45 build/C/man3/strtol.3:117 build/C/man3/strtoul.3:127 build/C/man3/system.3:73 build/C/man3/wcstombs.3:79 build/C/man3/wctomb.3:63
82 #, no-wrap
83 msgid "RETURN VALUE"
84 msgstr ""
85
86 #. type: Plain text
87 #: build/C/man3/MB_CUR_MAX.3:35
88 msgid ""
89 "An integer in the range [1, B<MB_LEN_MAX>].  The value 1 denotes traditional "
90 "8-bit encoded characters."
91 msgstr ""
92
93 #. type: SH
94 #: build/C/man3/MB_CUR_MAX.3:35 build/C/man3/MB_LEN_MAX.3:31 build/C/man2/_exit.2:81 build/C/man3/a64l.3:71 build/C/man3/atexit.3:76 build/C/man3/atof.3:65 build/C/man3/atoi.3:105 build/C/man3/canonicalize_file_name.3:73 build/C/man3/cfree.3:112 build/C/man3/clearenv.3:60 build/C/man3/drand48.3:260 build/C/man3/drand48_r.3:112 build/C/man3/ecvt.3:117 build/C/man3/ecvt_r.3:88 build/C/man3/exit.3:96 build/C/man3/gcvt.3:77 build/C/man3/getauxval.3:192 build/C/man3/getenv.3:96 build/C/man3/getloadavg.3:70 build/C/man3/getsubopt.3:134 build/C/man3/malloc.3:171 build/C/man3/mblen.3:92 build/C/man3/mbstowcs.3:94 build/C/man3/mbtowc.3:113 build/C/man3/mkdtemp.3:86 build/C/man3/mkstemp.3:195 build/C/man3/mktemp.3:95 build/C/man3/on_exit.3:81 build/C/man3/putenv.3:79 build/C/man3/qecvt.3:96 build/C/man3/rand.3:129 build/C/man3/random.3:161 build/C/man3/random_r.3:137 build/C/man3/rpmatch.3:99 build/C/man3/setenv.3:128 build/C/man3/strtod.3:172 build/C/man3/strtoimax.3:69 build/C/man3/strtol.3:173 build/C/man3/strtoul.3:177 build/C/man3/system.3:110 build/C/man3/wcstombs.3:89 build/C/man3/wctomb.3:89
95 #, no-wrap
96 msgid "CONFORMING TO"
97 msgstr ""
98
99 #. type: Plain text
100 #: build/C/man3/MB_CUR_MAX.3:37 build/C/man3/MB_LEN_MAX.3:33 build/C/man3/strtoimax.3:71
101 msgid "C99, POSIX.1-2001."
102 msgstr ""
103
104 #. type: SH
105 #: build/C/man3/MB_CUR_MAX.3:37 build/C/man3/MB_LEN_MAX.3:44 build/C/man2/_exit.2:124 build/C/man3/a64l.3:93 build/C/man3/atexit.3:161 build/C/man3/atof.3:67 build/C/man3/atoi.3:125 build/C/man3/canonicalize_file_name.3:75 build/C/man3/cfree.3:117 build/C/man3/clearenv.3:97 build/C/man3/drand48.3:266 build/C/man3/drand48_r.3:114 build/C/man3/ecvt.3:135 build/C/man3/ecvt_r.3:95 build/C/man3/exit.3:183 build/C/man3/gcvt.3:86 build/C/man3/getauxval.3:218 build/C/man3/getenv.3:129 build/C/man3/getloadavg.3:74 build/C/man3/getsubopt.3:232 build/C/man3/malloc.3:261 build/C/man3/mblen.3:106 build/C/man3/mbstowcs.3:216 build/C/man3/mbtowc.3:128 build/C/man3/mkdtemp.3:91 build/C/man3/mkstemp.3:233 build/C/man3/mktemp.3:118 build/C/man3/on_exit.3:88 build/C/man3/putenv.3:119 build/C/man3/qecvt.3:107 build/C/man3/rand.3:217 build/C/man3/random.3:197 build/C/man3/random_r.3:141 build/C/man3/rpmatch.3:144 build/C/man3/setenv.3:153 build/C/man3/strtod.3:191 build/C/man3/strtoimax.3:71 build/C/man3/strtol.3:297 build/C/man3/strtoul.3:225 build/C/man3/system.3:202 build/C/man7/vdso.7:494 build/C/man3/wcstombs.3:103 build/C/man3/wctomb.3:103
106 #, no-wrap
107 msgid "SEE ALSO"
108 msgstr ""
109
110 #. type: Plain text
111 #: build/C/man3/MB_CUR_MAX.3:44
112 msgid ""
113 "B<MB_LEN_MAX>(3), B<mblen>(3), B<mbstowcs>(3), B<mbtowc>(3), B<wcstombs>(3), "
114 "B<wctomb>(3)"
115 msgstr ""
116
117 #. type: SH
118 #: build/C/man3/MB_CUR_MAX.3:44 build/C/man3/MB_LEN_MAX.3:46 build/C/man2/_exit.2:136 build/C/man3/a64l.3:97 build/C/man3/atexit.3:165 build/C/man3/atof.3:73 build/C/man3/atoi.3:130 build/C/man3/canonicalize_file_name.3:78 build/C/man3/cfree.3:119 build/C/man3/clearenv.3:103 build/C/man3/drand48.3:269 build/C/man3/drand48_r.3:118 build/C/man3/ecvt.3:141 build/C/man3/ecvt_r.3:99 build/C/man3/exit.3:190 build/C/man3/gcvt.3:90 build/C/man3/getauxval.3:222 build/C/man3/getenv.3:137 build/C/man3/getloadavg.3:77 build/C/man3/getsubopt.3:234 build/C/man3/malloc.3:285 build/C/man3/mblen.3:108 build/C/man3/mbstowcs.3:222 build/C/man3/mbtowc.3:135 build/C/man3/mkdtemp.3:98 build/C/man3/mkstemp.3:239 build/C/man3/mktemp.3:123 build/C/man3/on_exit.3:92 build/C/man3/putenv.3:125 build/C/man3/qecvt.3:112 build/C/man3/rand.3:220 build/C/man3/random.3:202 build/C/man3/random_r.3:145 build/C/man3/rpmatch.3:150 build/C/man3/setenv.3:158 build/C/man3/strtod.3:197 build/C/man3/strtoimax.3:77 build/C/man3/strtol.3:303 build/C/man3/strtoul.3:231 build/C/man3/system.3:210 build/C/man7/vdso.7:510 build/C/man3/wcstombs.3:109 build/C/man3/wctomb.3:110
119 #, no-wrap
120 msgid "COLOPHON"
121 msgstr ""
122
123 #. type: Plain text
124 #: build/C/man3/MB_CUR_MAX.3:52 build/C/man3/MB_LEN_MAX.3:54 build/C/man2/_exit.2:144 build/C/man3/a64l.3:105 build/C/man3/atexit.3:173 build/C/man3/atof.3:81 build/C/man3/atoi.3:138 build/C/man3/canonicalize_file_name.3:86 build/C/man3/cfree.3:127 build/C/man3/clearenv.3:111 build/C/man3/drand48.3:277 build/C/man3/drand48_r.3:126 build/C/man3/ecvt.3:149 build/C/man3/ecvt_r.3:107 build/C/man3/exit.3:198 build/C/man3/gcvt.3:98 build/C/man3/getauxval.3:230 build/C/man3/getenv.3:145 build/C/man3/getloadavg.3:85 build/C/man3/getsubopt.3:242 build/C/man3/malloc.3:293 build/C/man3/mblen.3:116 build/C/man3/mbstowcs.3:230 build/C/man3/mbtowc.3:143 build/C/man3/mkdtemp.3:106 build/C/man3/mkstemp.3:247 build/C/man3/mktemp.3:131 build/C/man3/on_exit.3:100 build/C/man3/putenv.3:133 build/C/man3/qecvt.3:120 build/C/man3/rand.3:228 build/C/man3/random.3:210 build/C/man3/random_r.3:153 build/C/man3/rpmatch.3:158 build/C/man3/setenv.3:166 build/C/man3/strtod.3:205 build/C/man3/strtoimax.3:85 build/C/man3/strtol.3:311 build/C/man3/strtoul.3:239 build/C/man3/system.3:218 build/C/man7/vdso.7:518 build/C/man3/wcstombs.3:117 build/C/man3/wctomb.3:118
125 msgid ""
126 "This page is part of release 3.67 of the Linux I<man-pages> project.  A "
127 "description of the project, information about reporting bugs, and the latest "
128 "version of this page, can be found at "
129 "\\%http://www.kernel.org/doc/man-pages/."
130 msgstr ""
131
132 #. type: TH
133 #: build/C/man3/MB_LEN_MAX.3:17
134 #, no-wrap
135 msgid "MB_LEN_MAX"
136 msgstr ""
137
138 #. type: Plain text
139 #: build/C/man3/MB_LEN_MAX.3:20
140 msgid "MB_LEN_MAX - maximum multibyte length of a character across all locales"
141 msgstr ""
142
143 #. type: Plain text
144 #: build/C/man3/MB_LEN_MAX.3:23
145 #, no-wrap
146 msgid "B<#include E<lt>limits.hE<gt>>\n"
147 msgstr ""
148
149 #. type: Plain text
150 #: build/C/man3/MB_LEN_MAX.3:29
151 msgid ""
152 "The B<MB_LEN_MAX> macro is the upper bound for the number of bytes needed to "
153 "represent a single wide character, across all locales."
154 msgstr ""
155
156 #. type: Plain text
157 #: build/C/man3/MB_LEN_MAX.3:31
158 msgid "A constant integer greater than zero."
159 msgstr ""
160
161 #. type: SH
162 #: build/C/man3/MB_LEN_MAX.3:33 build/C/man2/_exit.2:86 build/C/man3/a64l.3:73 build/C/man3/atexit.3:78 build/C/man3/atoi.3:115 build/C/man3/clearenv.3:74 build/C/man3/drand48.3:262 build/C/man3/ecvt.3:129 build/C/man3/ecvt_r.3:90 build/C/man3/exit.3:98 build/C/man3/getauxval.3:194 build/C/man3/getenv.3:102 build/C/man3/getsubopt.3:136 build/C/man3/malloc.3:173 build/C/man3/mblen.3:94 build/C/man3/mbstowcs.3:96 build/C/man3/mbtowc.3:115 build/C/man3/mkstemp.3:208 build/C/man3/mktemp.3:99 build/C/man3/putenv.3:81 build/C/man3/qecvt.3:102 build/C/man3/rand.3:141 build/C/man3/random.3:163 build/C/man3/setenv.3:130 build/C/man3/strtod.3:177 build/C/man3/strtol.3:178 build/C/man3/strtoul.3:182 build/C/man3/system.3:112 build/C/man7/vdso.7:129 build/C/man3/wcstombs.3:91 build/C/man3/wctomb.3:91
163 #, no-wrap
164 msgid "NOTES"
165 msgstr ""
166
167 #. type: Plain text
168 #: build/C/man3/MB_LEN_MAX.3:44
169 msgid ""
170 "The entities B<MB_LEN_MAX> and I<sizeof(wchar_t)> are totally unrelated.  In "
171 "glibc, B<MB_LEN_MAX> is typically 6 while I<sizeof(wchar_t)> is 4."
172 msgstr ""
173
174 #. type: Plain text
175 #: build/C/man3/MB_LEN_MAX.3:46
176 msgid "B<MB_CUR_MAX>(3)"
177 msgstr ""
178
179 #. type: TH
180 #: build/C/man2/_exit.2:29
181 #, no-wrap
182 msgid "_EXIT"
183 msgstr ""
184
185 #. type: TH
186 #: build/C/man2/_exit.2:29 build/C/man3/gcvt.3:30
187 #, no-wrap
188 msgid "2010-09-20"
189 msgstr ""
190
191 #. type: Plain text
192 #: build/C/man2/_exit.2:32
193 msgid "_exit, _Exit - terminate the calling process"
194 msgstr ""
195
196 #. type: Plain text
197 #: build/C/man2/_exit.2:34
198 msgid "B<#include E<lt>unistd.hE<gt>>"
199 msgstr ""
200
201 #. type: Plain text
202 #: build/C/man2/_exit.2:36
203 msgid "B<void _exit(int >I<status>B<);>"
204 msgstr ""
205
206 #. type: Plain text
207 #: build/C/man2/_exit.2:38 build/C/man3/a64l.3:14 build/C/man3/canonicalize_file_name.3:33 build/C/man3/ecvt.3:37 build/C/man3/getsubopt.3:30 build/C/man3/qecvt.3:33 build/C/man3/strtod.3:50
208 msgid "B<#include E<lt>stdlib.hE<gt>>"
209 msgstr ""
210
211 #. type: Plain text
212 #: build/C/man2/_exit.2:40
213 msgid "B<void _Exit(int >I<status>B<);>"
214 msgstr ""
215
216 #. type: Plain text
217 #: build/C/man2/_exit.2:44 build/C/man3/a64l.3:22 build/C/man3/atoi.3:52 build/C/man3/cfree.3:48 build/C/man3/clearenv.3:39 build/C/man3/drand48.3:60 build/C/man3/drand48_r.3:68 build/C/man3/ecvt.3:47 build/C/man3/ecvt_r.3:53 build/C/man3/gcvt.3:43 build/C/man3/getenv.3:48 build/C/man3/getsubopt.3:37 build/C/man3/mkdtemp.3:39 build/C/man3/mkstemp.3:54 build/C/man3/mktemp.3:47 build/C/man3/on_exit.3:44 build/C/man3/putenv.3:50 build/C/man3/qecvt.3:45 build/C/man3/rand.3:58 build/C/man3/random.3:52 build/C/man3/random_r.3:47 build/C/man3/rpmatch.3:42 build/C/man3/setenv.3:52 build/C/man3/strtod.3:60 build/C/man3/strtol.3:47 build/C/man3/strtoul.3:50
218 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
219 msgstr ""
220
221 #. type: Plain text
222 #: build/C/man2/_exit.2:48
223 msgid "B<_Exit>():"
224 msgstr ""
225
226 #. type: Plain text
227 #: build/C/man2/_exit.2:51 build/C/man3/strtod.3:68
228 msgid ""
229 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
230 "200112L;"
231 msgstr ""
232
233 #. type: Plain text
234 #: build/C/man2/_exit.2:54 build/C/man3/atoi.3:62 build/C/man3/strtod.3:71 build/C/man3/strtol.3:57 build/C/man3/strtoul.3:60
235 msgid "or I<cc\\ -std=c99>"
236 msgstr ""
237
238 #. type: Plain text
239 #: build/C/man2/_exit.2:67
240 msgid ""
241 "The function B<_exit>()  terminates the calling process \"immediately\".  "
242 "Any open file descriptors belonging to the process are closed; any children "
243 "of the process are inherited by process 1, I<init>, and the process's parent "
244 "is sent a B<SIGCHLD> signal."
245 msgstr ""
246
247 #. type: Plain text
248 #: build/C/man2/_exit.2:74
249 msgid ""
250 "The value I<status> is returned to the parent process as the process's exit "
251 "status, and can be collected using one of the B<wait>(2)  family of calls."
252 msgstr ""
253
254 #. type: Plain text
255 #: build/C/man2/_exit.2:79
256 msgid "The function B<_Exit>()  is equivalent to B<_exit>()."
257 msgstr ""
258
259 #. type: Plain text
260 #: build/C/man2/_exit.2:81
261 msgid "These functions do not return."
262 msgstr ""
263
264 #. type: Plain text
265 #: build/C/man2/_exit.2:86
266 msgid "SVr4, POSIX.1-2001, 4.3BSD.  The function B<_Exit>()  was introduced by C99."
267 msgstr ""
268
269 #. type: Plain text
270 #: build/C/man2/_exit.2:90
271 msgid ""
272 "For a discussion on the effects of an exit, the transmission of exit status, "
273 "zombie processes, signals sent, and so on, see B<exit>(3)."
274 msgstr ""
275
276 #. type: Plain text
277 #: build/C/man2/_exit.2:117
278 msgid ""
279 "The function B<_exit>()  is like B<exit>(3), but does not call any functions "
280 "registered with B<atexit>(3)  or B<on_exit>(3).  Whether it flushes standard "
281 "I/O buffers and removes temporary files created with B<tmpfile>(3)  is "
282 "implementation-dependent.  On the other hand, B<_exit>()  does close open "
283 "file descriptors, and this may cause an unknown delay, waiting for pending "
284 "output to finish.  If the delay is undesired, it may be useful to call "
285 "functions like B<tcflush>(3)  before calling B<_exit>().  Whether any "
286 "pending I/O is canceled, and which pending I/O may be canceled upon "
287 "B<_exit>(), is implementation-dependent."
288 msgstr ""
289
290 #. type: Plain text
291 #: build/C/man2/_exit.2:124
292 msgid ""
293 "In glibc up to version 2.3, the B<_exit>()  wrapper function invoked the "
294 "kernel system call of the same name.  Since glibc 2.3, the wrapper function "
295 "invokes B<exit_group>(2), in order to terminate all of the threads in a "
296 "process."
297 msgstr ""
298
299 #. type: Plain text
300 #: build/C/man2/_exit.2:136
301 msgid ""
302 "B<execve>(2), B<exit_group>(2), B<fork>(2), B<kill>(2), B<wait>(2), "
303 "B<wait4>(2), B<waitpid>(2), B<atexit>(3), B<exit>(3), B<on_exit>(3), "
304 "B<termios>(3)"
305 msgstr ""
306
307 #. type: TH
308 #: build/C/man3/a64l.3:9
309 #, no-wrap
310 msgid "A64L"
311 msgstr ""
312
313 #. type: TH
314 #: build/C/man3/a64l.3:9 build/C/man3/drand48.3:30 build/C/man3/mblen.3:16
315 #, no-wrap
316 msgid "2013-06-21"
317 msgstr ""
318
319 #. type: Plain text
320 #: build/C/man3/a64l.3:12
321 msgid "a64l, l64a - convert between long and base-64"
322 msgstr ""
323
324 #. type: Plain text
325 #: build/C/man3/a64l.3:16
326 msgid "B<long a64l(char *>I<str64>B<);>"
327 msgstr ""
328
329 #. type: Plain text
330 #: build/C/man3/a64l.3:18
331 msgid "B<char *l64a(long >I<value>B<);>"
332 msgstr ""
333
334 #. type: Plain text
335 #: build/C/man3/a64l.3:26
336 msgid "B<a64l>(), B<l64a>():"
337 msgstr ""
338
339 #. type: Plain text
340 #: build/C/man3/a64l.3:31 build/C/man3/ecvt.3:66
341 msgid ""
342 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
343 "_XOPEN_SOURCE_EXTENDED"
344 msgstr ""
345
346 #. type: Plain text
347 #: build/C/man3/a64l.3:48
348 msgid ""
349 "These functions provide a conversion between 32-bit long integers and "
350 "little-endian base-64 ASCII strings (of length zero to six).  If the string "
351 "used as argument for B<a64l>()  has length greater than six, only the first "
352 "six bytes are used.  If the type I<long> has more than 32 bits, then "
353 "B<l64a>()  uses only the low order 32 bits of I<value>, and B<a64l>()  "
354 "sign-extends its 32-bit result."
355 msgstr ""
356
357 #. type: Plain text
358 #: build/C/man3/a64l.3:50
359 msgid "The 64 digits in the base-64 system are:"
360 msgstr ""
361
362 #. type: Plain text
363 #: build/C/man3/a64l.3:58
364 #, no-wrap
365 msgid ""
366 "\\&\\(aq.\\(aq\trepresents a 0\n"
367 "\\&\\(aq/\\(aq\trepresents a 1\n"
368 "0-9\trepresent  2-11\n"
369 "A-Z\trepresent 12-37\n"
370 "a-z\trepresent 38-63\n"
371 msgstr ""
372
373 #. type: Plain text
374 #: build/C/man3/a64l.3:62
375 msgid "So 123 = 59*64^0 + 1*64^1 = \"v/\"."
376 msgstr ""
377
378 #. type: SH
379 #: build/C/man3/a64l.3:62 build/C/man3/atof.3:57 build/C/man3/atoi.3:93 build/C/man3/drand48.3:245 build/C/man3/drand48_r.3:98 build/C/man3/ecvt.3:110 build/C/man3/exit.3:90 build/C/man3/getauxval.3:187 build/C/man3/getloadavg.3:65 build/C/man3/getsubopt.3:129 build/C/man3/mblen.3:87 build/C/man3/qecvt.3:85 build/C/man3/random.3:152 build/C/man3/random_r.3:128 build/C/man3/strtod.3:160 build/C/man3/strtoimax.3:58 build/C/man3/strtol.3:161 build/C/man3/strtoul.3:165 build/C/man3/wctomb.3:84
380 #, no-wrap
381 msgid "ATTRIBUTES"
382 msgstr ""
383
384 #. type: SS
385 #: build/C/man3/a64l.3:63 build/C/man3/atof.3:58 build/C/man3/atoi.3:94 build/C/man3/drand48.3:246 build/C/man3/drand48_r.3:99 build/C/man3/ecvt.3:111 build/C/man3/exit.3:91 build/C/man3/getauxval.3:188 build/C/man3/getloadavg.3:66 build/C/man3/getsubopt.3:130 build/C/man3/mblen.3:88 build/C/man3/qecvt.3:86 build/C/man3/random.3:153 build/C/man3/random_r.3:129 build/C/man3/strtod.3:161 build/C/man3/strtoimax.3:59 build/C/man3/strtol.3:162 build/C/man3/strtoul.3:166 build/C/man3/wctomb.3:85
386 #, no-wrap
387 msgid "Multithreading (see pthreads(7))"
388 msgstr ""
389
390 #. type: Plain text
391 #: build/C/man3/a64l.3:67
392 msgid "The B<l64a>()  function is not thread-safe."
393 msgstr ""
394
395 #. type: Plain text
396 #: build/C/man3/a64l.3:71
397 msgid "The B<a64l>()  function is thread-safe."
398 msgstr ""
399
400 #. type: Plain text
401 #: build/C/man3/a64l.3:73 build/C/man3/getsubopt.3:136
402 msgid "POSIX.1-2001."
403 msgstr ""
404
405 #. type: Plain text
406 #: build/C/man3/a64l.3:78
407 msgid ""
408 "The value returned by B<l64a>()  may be a pointer to a static buffer, "
409 "possibly overwritten by later calls."
410 msgstr ""
411
412 #. type: Plain text
413 #: build/C/man3/a64l.3:87
414 msgid ""
415 "The behavior of B<l64a>()  is undefined when I<value> is negative.  If "
416 "I<value> is zero, it returns an empty string."
417 msgstr ""
418
419 #. type: Plain text
420 #: build/C/man3/a64l.3:90
421 msgid ""
422 "These functions are broken in glibc before 2.2.5 (puts most significant "
423 "digit first)."
424 msgstr ""
425
426 #. type: Plain text
427 #: build/C/man3/a64l.3:93
428 msgid "This is not the encoding used by B<uuencode>(1)."
429 msgstr ""
430
431 #.  .BR itoa (3),
432 #. type: Plain text
433 #: build/C/man3/a64l.3:97
434 msgid "B<uuencode>(1), B<strtoul>(3)"
435 msgstr ""
436
437 #. type: TH
438 #: build/C/man3/atexit.3:33
439 #, no-wrap
440 msgid "ATEXIT"
441 msgstr ""
442
443 #. type: TH
444 #: build/C/man3/atexit.3:33 build/C/man3/on_exit.3:31
445 #, no-wrap
446 msgid "2008-12-05"
447 msgstr ""
448
449 #. type: Plain text
450 #: build/C/man3/atexit.3:36
451 msgid "atexit - register a function to be called at normal process termination"
452 msgstr ""
453
454 #. type: Plain text
455 #: build/C/man3/atexit.3:41
456 #, no-wrap
457 msgid "B<int atexit(void (*>I<function>B<)(void));>\n"
458 msgstr ""
459
460 #. type: Plain text
461 #: build/C/man3/atexit.3:54
462 msgid ""
463 "The B<atexit>()  function registers the given I<function> to be called at "
464 "normal process termination, either via B<exit>(3)  or via return from the "
465 "program's I<main>().  Functions so registered are called in the reverse "
466 "order of their registration; no arguments are passed."
467 msgstr ""
468
469 #. type: Plain text
470 #: build/C/man3/atexit.3:57 build/C/man3/on_exit.3:69
471 msgid ""
472 "The same function may be registered multiple times: it is called once for "
473 "each registration."
474 msgstr ""
475
476 #. type: Plain text
477 #: build/C/man3/atexit.3:63
478 msgid ""
479 "POSIX.1-2001 requires that an implementation allow at least B<ATEXIT_MAX> "
480 "(32) such functions to be registered.  The actual limit supported by an "
481 "implementation can be obtained using B<sysconf>(3)."
482 msgstr ""
483
484 #. type: Plain text
485 #: build/C/man3/atexit.3:71 build/C/man3/on_exit.3:76
486 msgid ""
487 "When a child process is created via B<fork>(2), it inherits copies of its "
488 "parent's registrations.  Upon a successful call to one of the B<exec>(3)  "
489 "functions, all registrations are removed."
490 msgstr ""
491
492 #. type: Plain text
493 #: build/C/man3/atexit.3:76
494 msgid ""
495 "The B<atexit>()  function returns the value 0 if successful; otherwise it "
496 "returns a nonzero value."
497 msgstr ""
498
499 #. type: Plain text
500 #: build/C/man3/atexit.3:78
501 msgid "SVr4, 4.3BSD, C89, C99, POSIX.1-2001."
502 msgstr ""
503
504 #. type: Plain text
505 #: build/C/man3/atexit.3:85
506 msgid ""
507 "Functions registered using B<atexit>()  (and B<on_exit>(3))  are not called "
508 "if a process terminates abnormally because of the delivery of a signal."
509 msgstr ""
510
511 #. type: Plain text
512 #: build/C/man3/atexit.3:92
513 msgid ""
514 "If one of the functions registered functions calls B<_exit>(2), then any "
515 "remaining functions are not invoked, and the other process termination steps "
516 "performed by B<exit>(3)  are not performed."
517 msgstr ""
518
519 #.  This can happen on OpenBSD 4.2 for example, and is documented
520 #.  as occurring on FreeBSD as well.
521 #.  Glibc does "the Right Thing" -- invocation of the remaining
522 #.  exit handlers carries on as normal.
523 #. type: Plain text
524 #: build/C/man3/atexit.3:109
525 msgid ""
526 "POSIX.1-2001 says that the result of calling B<exit>(3)  more than once "
527 "(i.e., calling B<exit>(3)  within a function registered using B<atexit>())  "
528 "is undefined.  On some systems (but not Linux), this can result in an "
529 "infinite recursion; portable programs should not invoke B<exit>(3)  inside a "
530 "function registered using B<atexit>()."
531 msgstr ""
532
533 #. type: Plain text
534 #: build/C/man3/atexit.3:118
535 msgid ""
536 "The B<atexit>()  and B<on_exit>(3)  functions register functions on the same "
537 "list: at normal process termination, the registered functions are invoked in "
538 "reverse order of their registration by these two functions."
539 msgstr ""
540
541 #.  In glibc, things seem to be handled okay
542 #. type: Plain text
543 #: build/C/man3/atexit.3:124
544 msgid ""
545 "POSIX.1-2001 says that the result is undefined if B<longjmp>(3)  is used to "
546 "terminate execution of one of the functions registered B<atexit>()."
547 msgstr ""
548
549 #. type: SS
550 #: build/C/man3/atexit.3:124
551 #, no-wrap
552 msgid "Linux notes"
553 msgstr ""
554
555 #. type: Plain text
556 #: build/C/man3/atexit.3:131
557 msgid ""
558 "Since glibc 2.2.3, B<atexit>()  (and B<on_exit>(3))  can be used within a "
559 "shared library to establish functions that are called when the shared "
560 "library is unloaded."
561 msgstr ""
562
563 #. type: SH
564 #: build/C/man3/atexit.3:131 build/C/man3/getsubopt.3:143 build/C/man3/mbstowcs.3:108 build/C/man3/rand.3:160 build/C/man3/rpmatch.3:119 build/C/man3/strtod.3:186 build/C/man3/strtol.3:216 build/C/man3/strtoul.3:220
565 #, no-wrap
566 msgid "EXAMPLE"
567 msgstr ""
568
569 #. type: Plain text
570 #: build/C/man3/atexit.3:136
571 #, no-wrap
572 msgid ""
573 "#include E<lt>stdio.hE<gt>\n"
574 "#include E<lt>stdlib.hE<gt>\n"
575 "#include E<lt>unistd.hE<gt>\n"
576 msgstr ""
577
578 #. type: Plain text
579 #: build/C/man3/atexit.3:142
580 #, no-wrap
581 msgid ""
582 "void\n"
583 "bye(void)\n"
584 "{\n"
585 "    printf(\"That was all, folks\\en\");\n"
586 "}\n"
587 msgstr ""
588
589 #. type: Plain text
590 #: build/C/man3/atexit.3:148
591 #, no-wrap
592 msgid ""
593 "int\n"
594 "main(void)\n"
595 "{\n"
596 "    long a;\n"
597 "    int i;\n"
598 msgstr ""
599
600 #. type: Plain text
601 #: build/C/man3/atexit.3:151
602 #, no-wrap
603 msgid ""
604 "    a = sysconf(_SC_ATEXIT_MAX);\n"
605 "    printf(\"ATEXIT_MAX = %ld\\en\", a);\n"
606 msgstr ""
607
608 #. type: Plain text
609 #: build/C/man3/atexit.3:157
610 #, no-wrap
611 msgid ""
612 "    i = atexit(bye);\n"
613 "    if (i != 0) {\n"
614 "        fprintf(stderr, \"cannot set exit function\\en\");\n"
615 "        exit(EXIT_FAILURE);\n"
616 "    }\n"
617 msgstr ""
618
619 #. type: Plain text
620 #: build/C/man3/atexit.3:160 build/C/man3/getsubopt.3:231 build/C/man3/mbstowcs.3:215 build/C/man3/rand.3:215 build/C/man3/strtol.3:296
621 #, no-wrap
622 msgid ""
623 "    exit(EXIT_SUCCESS);\n"
624 "}\n"
625 msgstr ""
626
627 #. type: Plain text
628 #: build/C/man3/atexit.3:165
629 msgid "B<_exit>(2), B<exit>(3), B<on_exit>(3)"
630 msgstr ""
631
632 #. type: TH
633 #: build/C/man3/atof.3:31
634 #, no-wrap
635 msgid "ATOF"
636 msgstr ""
637
638 #. type: TH
639 #: build/C/man3/atof.3:31 build/C/man3/atoi.3:33 build/C/man3/strtod.3:45 build/C/man3/strtoimax.3:24
640 #, no-wrap
641 msgid "2014-01-22"
642 msgstr ""
643
644 #. type: TH
645 #: build/C/man3/atof.3:31 build/C/man3/atoi.3:33 build/C/man3/canonicalize_file_name.3:26 build/C/man3/drand48_r.3:27 build/C/man3/ecvt_r.3:30 build/C/man3/getauxval.3:29 build/C/man3/getenv.3:33 build/C/man3/getsubopt.3:25 build/C/man3/malloc.3:33 build/C/man3/mblen.3:16 build/C/man3/mbstowcs.3:18 build/C/man3/mbtowc.3:16 build/C/man3/mkdtemp.3:26 build/C/man3/mkstemp.3:35 build/C/man3/mktemp.3:34 build/C/man3/on_exit.3:31 build/C/man3/putenv.3:36 build/C/man3/qecvt.3:28 build/C/man3/random.3:33 build/C/man3/random_r.3:26 build/C/man3/rpmatch.3:29 build/C/man3/setenv.3:37 build/C/man3/strtol.3:31 build/C/man3/strtoul.3:33 build/C/man3/wcstombs.3:16 build/C/man3/wctomb.3:16
646 #, no-wrap
647 msgid "GNU"
648 msgstr ""
649
650 #. type: Plain text
651 #: build/C/man3/atof.3:34
652 msgid "atof - convert a string to a double"
653 msgstr ""
654
655 #. type: Plain text
656 #: build/C/man3/atof.3:39
657 #, no-wrap
658 msgid "B<double atof(const char *>I<nptr>B<);>\n"
659 msgstr ""
660
661 #. type: Plain text
662 #: build/C/man3/atof.3:47
663 msgid ""
664 "The B<atof>()  function converts the initial portion of the string pointed "
665 "to by I<nptr> to I<double>.  The behavior is the same as"
666 msgstr ""
667
668 #. type: Plain text
669 #: build/C/man3/atof.3:50
670 msgid "strtod(nptr, NULL);"
671 msgstr ""
672
673 #. type: Plain text
674 #: build/C/man3/atof.3:55
675 msgid "except that B<atof>()  does not detect errors."
676 msgstr ""
677
678 #. type: Plain text
679 #: build/C/man3/atof.3:57 build/C/man3/atoi.3:93
680 msgid "The converted value."
681 msgstr ""
682
683 #. type: Plain text
684 #: build/C/man3/atof.3:65
685 msgid ""
686 "The B<atof>()  function is thread-safe with exceptions.  It can be safely "
687 "used in multithreaded applications, as long as B<setlocale>(3)  is not "
688 "called to change the locale during its execution."
689 msgstr ""
690
691 #. type: Plain text
692 #: build/C/man3/atof.3:67
693 msgid "SVr4, POSIX.1-2001, 4.3BSD, C89, C99."
694 msgstr ""
695
696 #. type: Plain text
697 #: build/C/man3/atof.3:73
698 msgid "B<atoi>(3), B<atol>(3), B<strtod>(3), B<strtol>(3), B<strtoul>(3)"
699 msgstr ""
700
701 #. type: TH
702 #: build/C/man3/atoi.3:33
703 #, no-wrap
704 msgid "ATOI"
705 msgstr ""
706
707 #. type: Plain text
708 #: build/C/man3/atoi.3:36
709 msgid "atoi, atol, atoll, atoq - convert a string to an integer"
710 msgstr ""
711
712 #. type: Plain text
713 #: build/C/man3/atoi.3:41
714 #, no-wrap
715 msgid "B<int atoi(const char *>I<nptr>B<);>\n"
716 msgstr ""
717
718 #. type: Plain text
719 #: build/C/man3/atoi.3:43
720 #, no-wrap
721 msgid "B<long atol(const char *>I<nptr>B<);>\n"
722 msgstr ""
723
724 #. type: Plain text
725 #: build/C/man3/atoi.3:45
726 #, no-wrap
727 msgid "B<long long atoll(const char *>I<nptr>B<);>\n"
728 msgstr ""
729
730 #. type: Plain text
731 #: build/C/man3/atoi.3:47
732 #, no-wrap
733 msgid "B<long long atoq(const char *>I<nptr>B<);>\n"
734 msgstr ""
735
736 #. type: Plain text
737 #: build/C/man3/atoi.3:56
738 msgid "B<atoll>():"
739 msgstr ""
740
741 #. type: Plain text
742 #: build/C/man3/atoi.3:59
743 msgid ""
744 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 600 || "
745 "_ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
746 msgstr ""
747
748 #. type: Plain text
749 #: build/C/man3/atoi.3:71
750 msgid ""
751 "The B<atoi>()  function converts the initial portion of the string pointed "
752 "to by I<nptr> to I<int>.  The behavior is the same as"
753 msgstr ""
754
755 #. type: Plain text
756 #: build/C/man3/atoi.3:74
757 msgid "strtol(nptr, NULL, 10);"
758 msgstr ""
759
760 #. type: Plain text
761 #: build/C/man3/atoi.3:79
762 msgid "except that B<atoi>()  does not detect errors."
763 msgstr ""
764
765 #. type: Plain text
766 #: build/C/man3/atoi.3:91
767 msgid ""
768 "The B<atol>()  and B<atoll>()  functions behave the same as B<atoi>(), "
769 "except that they convert the initial portion of the string to their return "
770 "type of I<long> or I<long long>.  B<atoq>()  is an obsolete name for "
771 "B<atoll>()."
772 msgstr ""
773
774 #. type: Plain text
775 #: build/C/man3/atoi.3:105
776 msgid ""
777 "The B<atoi>(), B<atol>(), and B<atoll>()  functions are thread-safe with "
778 "exceptions.  These functions can be safely used in multithreaded "
779 "applications, as long as B<setlocale>(3)  is not called to change the locale "
780 "during their execution."
781 msgstr ""
782
783 #. type: Plain text
784 #: build/C/man3/atoi.3:115
785 msgid ""
786 "SVr4, POSIX.1-2001, 4.3BSD, C99.  C89 and POSIX.1-1996 include the functions "
787 "B<atoi>()  and B<atol>()  only.  B<atoq>()  is a GNU extension."
788 msgstr ""
789
790 #. type: Plain text
791 #: build/C/man3/atoi.3:125
792 msgid ""
793 "The nonstandard B<atoq>()  function is not present in libc 4.6.27 or glibc "
794 "2, but is present in libc5 and libc 4.7 (though only as an inline function "
795 "in I<E<lt>stdlib.hE<gt>> until libc 5.4.44).  The B<atoll>()  function is "
796 "present in glibc 2 since version 2.0.2, but not in libc4 or libc5."
797 msgstr ""
798
799 #. type: Plain text
800 #: build/C/man3/atoi.3:130
801 msgid "B<atof>(3), B<strtod>(3), B<strtol>(3), B<strtoul>(3)"
802 msgstr ""
803
804 #. type: TH
805 #: build/C/man3/canonicalize_file_name.3:26
806 #, no-wrap
807 msgid "CANONICALIZE_FILE_NAME"
808 msgstr ""
809
810 #. type: TH
811 #: build/C/man3/canonicalize_file_name.3:26
812 #, no-wrap
813 msgid "2013-05-11"
814 msgstr ""
815
816 #. type: Plain text
817 #: build/C/man3/canonicalize_file_name.3:29
818 msgid "canonicalize_file_name - return the canonicalized absolute pathname"
819 msgstr ""
820
821 #. type: Plain text
822 #: build/C/man3/canonicalize_file_name.3:31
823 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
824 msgstr ""
825
826 #. type: Plain text
827 #: build/C/man3/canonicalize_file_name.3:35
828 msgid "B<char *canonicalize_file_name(const char *>I<path>B<);>"
829 msgstr ""
830
831 #. type: Plain text
832 #: build/C/man3/canonicalize_file_name.3:49
833 msgid ""
834 "The B<canonicalize_file_name>()  function returns a null-terminated string "
835 "containing the canonicalized absolute pathname corresponding to I<path>.  In "
836 "the returned string, symbolic links are resolved, as are I<.> and I<..> "
837 "pathname components.  Consecutive slash (I</>)  characters are replaced by a "
838 "single slash."
839 msgstr ""
840
841 #. type: Plain text
842 #: build/C/man3/canonicalize_file_name.3:55
843 msgid ""
844 "The returned string is dynamically allocated by B<canonicalize_file_name>()  "
845 "and the caller should deallocate it with B<free>(3)  when it is no longer "
846 "required."
847 msgstr ""
848
849 #. type: Plain text
850 #: build/C/man3/canonicalize_file_name.3:59
851 msgid "The call I<canonicalize_file_name(path)> is equivalent to the call:"
852 msgstr ""
853
854 #. type: Plain text
855 #: build/C/man3/canonicalize_file_name.3:61
856 #, no-wrap
857 msgid "    realpath(path, NULL);\n"
858 msgstr ""
859
860 #. type: Plain text
861 #: build/C/man3/canonicalize_file_name.3:70
862 msgid ""
863 "On success, B<canonicalize_file_name>()  returns a null-terminated string.  "
864 "On error (e.g., a pathname component is unreadable or does not exist), "
865 "B<canonicalize_file_name>()  returns NULL and sets I<errno> to indicate the "
866 "error."
867 msgstr ""
868
869 #. type: SH
870 #: build/C/man3/canonicalize_file_name.3:70 build/C/man3/getauxval.3:181 build/C/man3/mkdtemp.3:75 build/C/man3/mkstemp.3:161 build/C/man3/mktemp.3:91 build/C/man3/putenv.3:75 build/C/man3/random.3:140 build/C/man3/random_r.3:105 build/C/man3/rpmatch.3:82 build/C/man3/setenv.3:119 build/C/man3/strtod.3:156 build/C/man3/strtol.3:144 build/C/man3/strtoul.3:148
871 #, no-wrap
872 msgid "ERRORS"
873 msgstr ""
874
875 #. type: Plain text
876 #: build/C/man3/canonicalize_file_name.3:73
877 msgid "See B<realpath>(3)."
878 msgstr ""
879
880 #. type: Plain text
881 #: build/C/man3/canonicalize_file_name.3:75
882 msgid "This function is a GNU extension."
883 msgstr ""
884
885 #. type: Plain text
886 #: build/C/man3/canonicalize_file_name.3:78
887 msgid "B<readlink>(2), B<realpath>(3)"
888 msgstr ""
889
890 #. type: TH
891 #: build/C/man3/cfree.3:24
892 #, no-wrap
893 msgid "CFREE"
894 msgstr ""
895
896 #. type: TH
897 #: build/C/man3/cfree.3:24 build/C/man3/ecvt_r.3:30 build/C/man3/rpmatch.3:29
898 #, no-wrap
899 msgid "2007-07-26"
900 msgstr ""
901
902 #. type: Plain text
903 #: build/C/man3/cfree.3:27
904 msgid "cfree - free allocated memory"
905 msgstr ""
906
907 #. type: Plain text
908 #: build/C/man3/cfree.3:34
909 #, no-wrap
910 msgid ""
911 "/* In SunOS 4 */\n"
912 "B<int cfree(void *>I<ptr>B<);>\n"
913 msgstr ""
914
915 #. type: Plain text
916 #: build/C/man3/cfree.3:37
917 #, no-wrap
918 msgid ""
919 "/* In glibc or FreeBSD libcompat */\n"
920 "B<void cfree(void *>I<ptr>B<);>\n"
921 msgstr ""
922
923 #. type: Plain text
924 #: build/C/man3/cfree.3:40
925 #, no-wrap
926 msgid ""
927 "/* In SCO OpenServer */\n"
928 "B<void cfree(char *>I<ptr>B<, unsigned >I<num>B<, unsigned >I<size>B<);>\n"
929 msgstr ""
930
931 #. type: Plain text
932 #: build/C/man3/cfree.3:43
933 #, no-wrap
934 msgid ""
935 "/* In Solaris watchmalloc.so.1 */\n"
936 "B<void cfree(void *>I<ptr>B<, size_t >I<nelem>B<, size_t >I<elsize>B<);>\n"
937 msgstr ""
938
939 #. type: Plain text
940 #: build/C/man3/cfree.3:52
941 msgid "B<cfree>(): _BSD_SOURCE || _SVID_SOURCE"
942 msgstr ""
943
944 #. type: Plain text
945 #: build/C/man3/cfree.3:57
946 msgid "This function should never be used.  Use B<free>(3)  instead."
947 msgstr ""
948
949 #. type: SS
950 #: build/C/man3/cfree.3:57
951 #, no-wrap
952 msgid "1-arg cfree"
953 msgstr ""
954
955 #. type: Plain text
956 #: build/C/man3/cfree.3:63
957 msgid ""
958 "In glibc, the function B<cfree>()  is a synonym for B<free>(3), \"added for "
959 "compatibility with SunOS\"."
960 msgstr ""
961
962 #. type: Plain text
963 #: build/C/man3/cfree.3:69
964 msgid ""
965 "Other systems have other functions with this name.  The declaration is "
966 "sometimes in I<E<lt>stdlib.hE<gt>> and sometimes in I<E<lt>malloc.hE<gt>>."
967 msgstr ""
968
969 #. type: SS
970 #: build/C/man3/cfree.3:69
971 #, no-wrap
972 msgid "3-arg cfree"
973 msgstr ""
974
975 #. type: Plain text
976 #: build/C/man3/cfree.3:74
977 msgid ""
978 "Some SCO and Solaris versions have malloc libraries with a 3-argument "
979 "B<cfree>(), apparently as an analog to B<calloc>(3)."
980 msgstr ""
981
982 #. type: Plain text
983 #: build/C/man3/cfree.3:76
984 msgid "If you need it while porting something, add"
985 msgstr ""
986
987 #. type: Plain text
988 #: build/C/man3/cfree.3:79
989 msgid "#define cfree(p, n, s) free((p))"
990 msgstr ""
991
992 #. type: Plain text
993 #: build/C/man3/cfree.3:82
994 msgid "to your file."
995 msgstr ""
996
997 #. type: Plain text
998 #: build/C/man3/cfree.3:91
999 msgid ""
1000 "A frequently asked question is \"Can I use B<free>(3)  to free memory "
1001 "allocated with B<calloc>(3), or do I need B<cfree>()?\" Answer: use "
1002 "B<free>(3)."
1003 msgstr ""
1004
1005 #. type: Plain text
1006 #: build/C/man3/cfree.3:96
1007 msgid ""
1008 "An SCO manual writes: \"The cfree routine is provided for compliance to the "
1009 "iBCSe2 standard and simply calls free.  The num and size arguments to cfree "
1010 "are not used.\""
1011 msgstr ""
1012
1013 #. type: Plain text
1014 #: build/C/man3/cfree.3:112
1015 msgid ""
1016 "The SunOS version of B<cfree>()  (which is a synonym for B<free>(3))  "
1017 "returns 1 on success and 0 on failure.  In case of error, I<errno> is set to "
1018 "B<EINVAL>: the value of I<ptr> was not a pointer to a block previously "
1019 "allocated by one of the routines in the B<malloc>(3)  family."
1020 msgstr ""
1021
1022 #. type: Plain text
1023 #: build/C/man3/cfree.3:117
1024 msgid ""
1025 "The 3-argument version of B<cfree>()  as used by SCO conforms to the iBCSe2 "
1026 "standard: Intel386 Binary Compatibility Specification, Edition 2."
1027 msgstr ""
1028
1029 #. type: Plain text
1030 #: build/C/man3/cfree.3:119
1031 msgid "B<malloc>(3)"
1032 msgstr ""
1033
1034 #. type: TH
1035 #: build/C/man3/clearenv.3:26
1036 #, no-wrap
1037 msgid "CLEARENV"
1038 msgstr ""
1039
1040 #. type: TH
1041 #: build/C/man3/clearenv.3:26
1042 #, no-wrap
1043 msgid "2010-10-04"
1044 msgstr ""
1045
1046 #. type: Plain text
1047 #: build/C/man3/clearenv.3:29
1048 msgid "clearenv - clear the environment"
1049 msgstr ""
1050
1051 #. type: Plain text
1052 #: build/C/man3/clearenv.3:34
1053 #, no-wrap
1054 msgid "B<int clearenv(void);>\n"
1055 msgstr ""
1056
1057 #. type: Plain text
1058 #: build/C/man3/clearenv.3:43
1059 msgid "B<clearenv>(): _SVID_SOURCE || _BSD_SOURCE"
1060 msgstr ""
1061
1062 #. type: Plain text
1063 #: build/C/man3/clearenv.3:50
1064 msgid ""
1065 "The B<clearenv>()  function clears the environment of all name-value pairs "
1066 "and sets the value of the external variable I<environ> to NULL."
1067 msgstr ""
1068
1069 #.  Most versions of UNIX return -1 on error, or do not even have errors.
1070 #.  Glibc info and the Watcom C library document "a nonzero value".
1071 #. type: Plain text
1072 #: build/C/man3/clearenv.3:57
1073 msgid ""
1074 "The B<clearenv>()  function returns zero on success, and a nonzero value on "
1075 "failure."
1076 msgstr ""
1077
1078 #. type: SH
1079 #: build/C/man3/clearenv.3:57 build/C/man3/getauxval.3:183 build/C/man3/getenv.3:93 build/C/man3/getloadavg.3:63 build/C/man3/mkdtemp.3:84 build/C/man3/mkstemp.3:188
1080 #, no-wrap
1081 msgid "VERSIONS"
1082 msgstr ""
1083
1084 #. type: Plain text
1085 #: build/C/man3/clearenv.3:60
1086 msgid "Not in libc4, libc5.  In glibc since glibc 2.0."
1087 msgstr ""
1088
1089 #. type: Plain text
1090 #: build/C/man3/clearenv.3:74
1091 msgid ""
1092 "Various UNIX variants (DG/UX, HP-UX, QNX, ...).  POSIX.9 (bindings for "
1093 "FORTRAN77).  POSIX.1-1996 did not accept B<clearenv>()  and B<putenv>(3), "
1094 "but changed its mind and scheduled these functions for some later issue of "
1095 "this standard (cf. B.4.6.1).  However, POSIX.1-2001 adds only B<putenv>(3), "
1096 "and rejected B<clearenv>()."
1097 msgstr ""
1098
1099 #. type: Plain text
1100 #: build/C/man3/clearenv.3:78
1101 msgid ""
1102 "Used in security-conscious applications.  If it is unavailable the "
1103 "assignment"
1104 msgstr ""
1105
1106 #. type: Plain text
1107 #: build/C/man3/clearenv.3:81
1108 #, no-wrap
1109 msgid "    environ = NULL;\n"
1110 msgstr ""
1111
1112 #. type: Plain text
1113 #: build/C/man3/clearenv.3:84
1114 msgid "will probably do."
1115 msgstr ""
1116
1117 #.  .LP
1118 #.  HP-UX has a ENOMEM error return.
1119 #. type: Plain text
1120 #: build/C/man3/clearenv.3:97
1121 msgid ""
1122 "The DG/UX and Tru64 man pages write: If I<environ> has been modified by "
1123 "anything other than the B<putenv>(3), B<getenv>(3), or B<clearenv>()  "
1124 "functions, then B<clearenv>()  will return an error and the process "
1125 "environment will remain unchanged."
1126 msgstr ""
1127
1128 #. type: Plain text
1129 #: build/C/man3/clearenv.3:103
1130 msgid "B<getenv>(3), B<putenv>(3), B<setenv>(3), B<unsetenv>(3), B<environ>(7)"
1131 msgstr ""
1132
1133 #. type: TH
1134 #: build/C/man3/drand48.3:30
1135 #, no-wrap
1136 msgid "DRAND48"
1137 msgstr ""
1138
1139 #. type: Plain text
1140 #: build/C/man3/drand48.3:34
1141 msgid ""
1142 "drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, "
1143 "lcong48 - generate uniformly distributed pseudo-random numbers"
1144 msgstr ""
1145
1146 #. type: Plain text
1147 #: build/C/man3/drand48.3:39
1148 #, no-wrap
1149 msgid "B<double drand48(void);>\n"
1150 msgstr ""
1151
1152 #. type: Plain text
1153 #: build/C/man3/drand48.3:41
1154 #, no-wrap
1155 msgid "B<double erand48(unsigned short >I<xsubi>B<[3]);>\n"
1156 msgstr ""
1157
1158 #. type: Plain text
1159 #: build/C/man3/drand48.3:43
1160 #, no-wrap
1161 msgid "B<long int lrand48(void);>\n"
1162 msgstr ""
1163
1164 #. type: Plain text
1165 #: build/C/man3/drand48.3:45
1166 #, no-wrap
1167 msgid "B<long int nrand48(unsigned short >I<xsubi>B<[3]);>\n"
1168 msgstr ""
1169
1170 #. type: Plain text
1171 #: build/C/man3/drand48.3:47
1172 #, no-wrap
1173 msgid "B<long int mrand48(void);>\n"
1174 msgstr ""
1175
1176 #. type: Plain text
1177 #: build/C/man3/drand48.3:49
1178 #, no-wrap
1179 msgid "B<long int jrand48(unsigned short >I<xsubi>B<[3]);>\n"
1180 msgstr ""
1181
1182 #. type: Plain text
1183 #: build/C/man3/drand48.3:51
1184 #, no-wrap
1185 msgid "B<void srand48(long int >I<seedval>B<);>\n"
1186 msgstr ""
1187
1188 #. type: Plain text
1189 #: build/C/man3/drand48.3:53
1190 #, no-wrap
1191 msgid "B<unsigned short *seed48(unsigned short >I<seed16v>B<[3]);>\n"
1192 msgstr ""
1193
1194 #. type: Plain text
1195 #: build/C/man3/drand48.3:55
1196 #, no-wrap
1197 msgid "B<void lcong48(unsigned short >I<param>B<[7]);>\n"
1198 msgstr ""
1199
1200 #.  .BR drand48 (),
1201 #.  .BR erand48 (),
1202 #.  .BR lrand48 (),
1203 #.  .BR nrand48 (),
1204 #.  .BR mrand48 (),
1205 #.  .BR jrand48 (),
1206 #.  .BR srand48 (),
1207 #.  .BR seed48 (),
1208 #.  .BR lcong48 ():
1209 #. type: Plain text
1210 #: build/C/man3/drand48.3:74
1211 msgid "All functions shown above: _SVID_SOURCE || _XOPEN_SOURCE"
1212 msgstr ""
1213
1214 #. type: Plain text
1215 #: build/C/man3/drand48.3:78
1216 msgid ""
1217 "These functions generate pseudo-random numbers using the linear congruential "
1218 "algorithm and 48-bit integer arithmetic."
1219 msgstr ""
1220
1221 #. type: Plain text
1222 #: build/C/man3/drand48.3:86
1223 msgid ""
1224 "The B<drand48>()  and B<erand48>()  functions return nonnegative "
1225 "double-precision floating-point values uniformly distributed between [0.0, "
1226 "1.0)."
1227 msgstr ""
1228
1229 #. type: Plain text
1230 #: build/C/man3/drand48.3:93
1231 msgid ""
1232 "The B<lrand48>()  and B<nrand48>()  functions return nonnegative long "
1233 "integers uniformly distributed between 0 and 2^31."
1234 msgstr ""
1235
1236 #. type: Plain text
1237 #: build/C/man3/drand48.3:100
1238 msgid ""
1239 "The B<mrand48>()  and B<jrand48>()  functions return signed long integers "
1240 "uniformly distributed between -2^31 and 2^31."
1241 msgstr ""
1242
1243 #. type: Plain text
1244 #: build/C/man3/drand48.3:119
1245 msgid ""
1246 "The B<srand48>(), B<seed48>()  and B<lcong48>()  functions are "
1247 "initialization functions, one of which should be called before using "
1248 "B<drand48>(), B<lrand48>()  or B<mrand48>().  The functions B<erand48>(), "
1249 "B<nrand48>()  and B<jrand48>()  do not require an initialization function to "
1250 "be called first."
1251 msgstr ""
1252
1253 #. type: Plain text
1254 #: build/C/man3/drand48.3:123
1255 msgid ""
1256 "All the functions work by generating a sequence of 48-bit integers, I<Xi>, "
1257 "according to the linear congruential formula:"
1258 msgstr ""
1259
1260 #. type: Plain text
1261 #: build/C/man3/drand48.3:127
1262 #, no-wrap
1263 msgid "B<Xn+1 = (aXn + c) mod m, where n E<gt>= 0>\n"
1264 msgstr ""
1265
1266 #. type: Plain text
1267 #: build/C/man3/drand48.3:140
1268 msgid ""
1269 "The parameter I<m> = 2^48, hence 48-bit integer arithmetic is performed.  "
1270 "Unless B<lcong48>()  is called, I<a> and I<c> are given by:"
1271 msgstr ""
1272
1273 #. type: Plain text
1274 #: build/C/man3/drand48.3:145
1275 #, no-wrap
1276 msgid ""
1277 "B<a = 0x5DEECE66D>\n"
1278 "B<c = 0xB>\n"
1279 msgstr ""
1280
1281 #. type: Plain text
1282 #: build/C/man3/drand48.3:165
1283 msgid ""
1284 "The value returned by any of the functions B<drand48>(), B<erand48>(), "
1285 "B<lrand48>(), B<nrand48>(), B<mrand48>()  or B<jrand48>()  is computed by "
1286 "first generating the next 48-bit I<Xi> in the sequence.  Then the "
1287 "appropriate number of bits, according to the type of data item to be "
1288 "returned, is copied from the high-order bits of I<Xi> and transformed into "
1289 "the returned value."
1290 msgstr ""
1291
1292 #. type: Plain text
1293 #: build/C/man3/drand48.3:191
1294 msgid ""
1295 "The functions B<drand48>(), B<lrand48>()  and B<mrand48>()  store the last "
1296 "48-bit I<Xi> generated in an internal buffer.  The functions B<erand48>(), "
1297 "B<nrand48>()  and B<jrand48>()  require the calling program to provide "
1298 "storage for the successive I<Xi> values in the array argument I<xsubi>.  The "
1299 "functions are initialized by placing the initial value of I<Xi> into the "
1300 "array before calling the function for the first time."
1301 msgstr ""
1302
1303 #. type: Plain text
1304 #: build/C/man3/drand48.3:200
1305 msgid ""
1306 "The initializer function B<srand48>()  sets the high order 32-bits of I<Xi> "
1307 "to the argument I<seedval>.  The low order 16-bits are set to the arbitrary "
1308 "value 0x330E."
1309 msgstr ""
1310
1311 #. type: Plain text
1312 #: build/C/man3/drand48.3:214
1313 msgid ""
1314 "The initializer function B<seed48>()  sets the value of I<Xi> to the 48-bit "
1315 "value specified in the array argument I<seed16v>.  The previous value of "
1316 "I<Xi> is copied into an internal buffer and a pointer to this buffer is "
1317 "returned by B<seed48>()."
1318 msgstr ""
1319
1320 #. type: Plain text
1321 #: build/C/man3/drand48.3:245
1322 msgid ""
1323 "The initialization function B<lcong48>()  allows the user to specify initial "
1324 "values for I<Xi>, I<a> and I<c>.  Array argument elements I<param[0-2]> "
1325 "specify I<Xi>, I<param[3-5]> specify I<a>, and I<param[6]> specifies I<c>.  "
1326 "After B<lcong48>()  has been called, a subsequent call to either "
1327 "B<srand48>()  or B<seed48>()  will restore the standard values of I<a> and "
1328 "I<c>."
1329 msgstr ""
1330
1331 #. type: Plain text
1332 #: build/C/man3/drand48.3:260
1333 msgid ""
1334 "The B<drand48>(), B<erand48>(), B<lrand48>(), B<nrand48>(), B<mrand48>(), "
1335 "B<jrand48>(), B<srand48>(), B<seed48>(), and B<lcong48>()  functions record "
1336 "global state information for the random number generator, so they are not "
1337 "thread-safe."
1338 msgstr ""
1339
1340 #. type: Plain text
1341 #: build/C/man3/drand48.3:262
1342 msgid "SVr4, POSIX.1-2001."
1343 msgstr ""
1344
1345 #. type: Plain text
1346 #: build/C/man3/drand48.3:266
1347 msgid ""
1348 "These functions are declared obsolete by SVID 3, which states that "
1349 "B<rand>(3)  should be used instead."
1350 msgstr ""
1351
1352 #. type: Plain text
1353 #: build/C/man3/drand48.3:269
1354 msgid "B<rand>(3), B<random>(3)"
1355 msgstr ""
1356
1357 #. type: TH
1358 #: build/C/man3/drand48_r.3:27
1359 #, no-wrap
1360 msgid "DRAND48_R"
1361 msgstr ""
1362
1363 #. type: TH
1364 #: build/C/man3/drand48_r.3:27
1365 #, no-wrap
1366 msgid "2013-09-09"
1367 msgstr ""
1368
1369 #. type: Plain text
1370 #: build/C/man3/drand48_r.3:32
1371 msgid ""
1372 "drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, "
1373 "seed48_r, lcong48_r - generate uniformly distributed pseudo-random numbers "
1374 "reentrantly"
1375 msgstr ""
1376
1377 #. type: Plain text
1378 #: build/C/man3/drand48_r.3:37
1379 #, no-wrap
1380 msgid "B<int drand48_r(struct drand48_data *>I<buffer>B<, double *>I<result>B<);>\n"
1381 msgstr ""
1382
1383 #. type: Plain text
1384 #: build/C/man3/drand48_r.3:39
1385 #, no-wrap
1386 msgid "B<int erand48_r(unsigned short >I<xsubi>B<[3]>I<,>\n"
1387 msgstr ""
1388
1389 #. type: Plain text
1390 #: build/C/man3/drand48_r.3:41
1391 #, no-wrap
1392 msgid "B<              struct drand48_data *>I<buffer>B<, double *>I<result>B<);>\n"
1393 msgstr ""
1394
1395 #. type: Plain text
1396 #: build/C/man3/drand48_r.3:43
1397 #, no-wrap
1398 msgid ""
1399 "B<int lrand48_r(struct drand48_data *>I<buffer>B<, long int "
1400 "*>I<result>B<);>\n"
1401 msgstr ""
1402
1403 #. type: Plain text
1404 #: build/C/man3/drand48_r.3:45
1405 #, no-wrap
1406 msgid "B<int nrand48_r(unsigned short int >I<xsubi[3]>B<,>\n"
1407 msgstr ""
1408
1409 #. type: Plain text
1410 #: build/C/man3/drand48_r.3:47 build/C/man3/drand48_r.3:53
1411 #, no-wrap
1412 msgid ""
1413 "B<              struct drand48_data *>I<buffer>B<, long int "
1414 "*>I<result>B<);>\n"
1415 msgstr ""
1416
1417 #. type: Plain text
1418 #: build/C/man3/drand48_r.3:49
1419 #, no-wrap
1420 msgid ""
1421 "B<int mrand48_r(struct drand48_data *>I<buffer>B<,long int "
1422 "*>I<result>B<);>\n"
1423 msgstr ""
1424
1425 #. type: Plain text
1426 #: build/C/man3/drand48_r.3:51
1427 #, no-wrap
1428 msgid "B<int jrand48_r(unsigned short int >I<xsubi[3]>B<,>\n"
1429 msgstr ""
1430
1431 #. type: Plain text
1432 #: build/C/man3/drand48_r.3:55
1433 #, no-wrap
1434 msgid ""
1435 "B<int srand48_r(long int >I<seedval>B<, struct drand48_data "
1436 "*>I<buffer>B<);>\n"
1437 msgstr ""
1438
1439 #. type: Plain text
1440 #: build/C/man3/drand48_r.3:57
1441 #, no-wrap
1442 msgid "B<int seed48_r(unsigned short int >I<seed16v[3]>B<,>\n"
1443 msgstr ""
1444
1445 #. type: Plain text
1446 #: build/C/man3/drand48_r.3:59
1447 #, no-wrap
1448 msgid "B<             struct drand48_data *>I<buffer>B<);>\n"
1449 msgstr ""
1450
1451 #. type: Plain text
1452 #: build/C/man3/drand48_r.3:61
1453 #, no-wrap
1454 msgid "B<int lcong48_r(unsigned short int >I<param[7]>B<,>\n"
1455 msgstr ""
1456
1457 #. type: Plain text
1458 #: build/C/man3/drand48_r.3:63
1459 #, no-wrap
1460 msgid "B<              struct drand48_data *>I<buffer>B<);>\n"
1461 msgstr ""
1462
1463 #.  .BR drand48_r (),
1464 #.  .BR erand48_r (),
1465 #.  .BR lrand48_r (),
1466 #.  .BR nrand48_r (),
1467 #.  .BR mrand48_r (),
1468 #.  .BR jrand48_r (),
1469 #.  .BR srand48_r (),
1470 #.  .BR seed48_r (),
1471 #.  .BR lcong48_r ():
1472 #. type: Plain text
1473 #: build/C/man3/drand48_r.3:82
1474 msgid "All functions shown above: _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
1475 msgstr ""
1476
1477 #. type: Plain text
1478 #: build/C/man3/drand48_r.3:89
1479 msgid ""
1480 "These functions are the reentrant analogs of the functions described in "
1481 "B<drand48>(3).  Instead of modifying the global random generator state, they "
1482 "use the supplied data I<buffer>."
1483 msgstr ""
1484
1485 #. type: Plain text
1486 #: build/C/man3/drand48_r.3:96
1487 msgid ""
1488 "Before the first use, this struct must be initialized, for example, by "
1489 "filling it with zeros, or by calling one of the functions B<srand48_r>(), "
1490 "B<seed48_r>(), or B<lcong48_r>()."
1491 msgstr ""
1492
1493 #. type: Plain text
1494 #: build/C/man3/drand48_r.3:98
1495 msgid "The return value is 0."
1496 msgstr ""
1497
1498 #. type: Plain text
1499 #: build/C/man3/drand48_r.3:112
1500 msgid ""
1501 "The B<drand48_r>(), B<erand48_r>(), B<lrand48_r>(), B<nrand48_r>(), "
1502 "B<mrand48_r>(), B<jrand48_r>(), B<srand48_r>(), B<seed48_r>(), and "
1503 "B<lcong48_r>()  functions are thread-safe."
1504 msgstr ""
1505
1506 #. type: Plain text
1507 #: build/C/man3/drand48_r.3:114
1508 msgid "These functions are GNU extensions and are not portable."
1509 msgstr ""
1510
1511 #. type: Plain text
1512 #: build/C/man3/drand48_r.3:118 build/C/man3/random_r.3:145
1513 msgid "B<drand48>(3), B<rand>(3), B<random>(3)"
1514 msgstr ""
1515
1516 #. type: TH
1517 #: build/C/man3/ecvt.3:32
1518 #, no-wrap
1519 msgid "ECVT"
1520 msgstr ""
1521
1522 #. type: TH
1523 #: build/C/man3/ecvt.3:32
1524 #, no-wrap
1525 msgid "2013-07-04"
1526 msgstr ""
1527
1528 #. type: Plain text
1529 #: build/C/man3/ecvt.3:35
1530 msgid "ecvt, fcvt - convert a floating-point number to a string"
1531 msgstr ""
1532
1533 #. type: Plain text
1534 #: build/C/man3/ecvt.3:40
1535 msgid ""
1536 "B<char *ecvt(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,> "
1537 "B<int *>I<sign>B<);>"
1538 msgstr ""
1539
1540 #. type: Plain text
1541 #: build/C/man3/ecvt.3:43
1542 msgid ""
1543 "B<char *fcvt(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,> "
1544 "B<int *>I<sign>B<);>"
1545 msgstr ""
1546
1547 #. type: Plain text
1548 #: build/C/man3/ecvt.3:51
1549 msgid "B<ecvt>(), B<fcvt>():"
1550 msgstr ""
1551
1552 #. type: TP
1553 #: build/C/man3/ecvt.3:54 build/C/man3/gcvt.3:49 build/C/man3/mktemp.3:53
1554 #, no-wrap
1555 msgid "Since glibc 2.12:"
1556 msgstr ""
1557
1558 #. type: Plain text
1559 #: build/C/man3/ecvt.3:61 build/C/man3/gcvt.3:56
1560 #, no-wrap
1561 msgid ""
1562 "_SVID_SOURCE ||\n"
1563 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
1564 "        _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
1565 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
1566 msgstr ""
1567
1568 #. type: TP
1569 #: build/C/man3/ecvt.3:62 build/C/man3/gcvt.3:57 build/C/man3/mktemp.3:59
1570 #, no-wrap
1571 msgid "Before glibc 2.12:"
1572 msgstr ""
1573
1574 #. type: Plain text
1575 #: build/C/man3/ecvt.3:92
1576 msgid ""
1577 "The B<ecvt>()  function converts I<number> to a null-terminated string of "
1578 "I<ndigits> digits (where I<ndigits> is reduced to a system-specific limit "
1579 "determined by the precision of a I<double>), and returns a pointer to the "
1580 "string.  The high-order digit is nonzero, unless I<number> is zero.  The low "
1581 "order digit is rounded.  The string itself does not contain a decimal point; "
1582 "however, the position of the decimal point relative to the start of the "
1583 "string is stored in I<*decpt>.  A negative value for I<*decpt> means that "
1584 "the decimal point is to the left of the start of the string.  If the sign of "
1585 "I<number> is negative, I<*sign> is set to a nonzero value, otherwise it is "
1586 "set to 0.  If I<number> is zero, it is unspecified whether I<*decpt> is 0 or "
1587 "1."
1588 msgstr ""
1589
1590 #. type: Plain text
1591 #: build/C/man3/ecvt.3:99
1592 msgid ""
1593 "The B<fcvt>()  function is identical to B<ecvt>(), except that I<ndigits> "
1594 "specifies the number of digits after the decimal point."
1595 msgstr ""
1596
1597 #. type: Plain text
1598 #: build/C/man3/ecvt.3:110
1599 msgid ""
1600 "Both the B<ecvt>()  and B<fcvt>()  functions return a pointer to a static "
1601 "string containing the ASCII representation of I<number>.  The static string "
1602 "is overwritten by each call to B<ecvt>()  or B<fcvt>()."
1603 msgstr ""
1604
1605 #. type: Plain text
1606 #: build/C/man3/ecvt.3:117
1607 msgid "The B<ecvt>()  and B<fcvt>()  functions are not thread-safe."
1608 msgstr ""
1609
1610 #. type: Plain text
1611 #: build/C/man3/ecvt.3:129
1612 msgid ""
1613 "SVr2; marked as LEGACY in POSIX.1-2001.  POSIX.1-2008 removes the "
1614 "specifications of B<ecvt>()  and B<fcvt>(), recommending the use of "
1615 "B<sprintf>(3)  instead (though B<snprintf>(3)  may be preferable)."
1616 msgstr ""
1617
1618 #. type: Plain text
1619 #: build/C/man3/ecvt.3:135
1620 msgid ""
1621 "Linux libc4 and libc5 specified the type of I<ndigits> as I<size_t>.  Not "
1622 "all locales use a point as the radix character (\"decimal point\")."
1623 msgstr ""
1624
1625 #. type: Plain text
1626 #: build/C/man3/ecvt.3:141
1627 msgid "B<ecvt_r>(3), B<gcvt>(3), B<qecvt>(3), B<setlocale>(3), B<sprintf>(3)"
1628 msgstr ""
1629
1630 #. type: TH
1631 #: build/C/man3/ecvt_r.3:30
1632 #, no-wrap
1633 msgid "ECVT_R"
1634 msgstr ""
1635
1636 #. type: Plain text
1637 #: build/C/man3/ecvt_r.3:33
1638 msgid ""
1639 "ecvt_r, fcvt_r, qecvt_r, qfcvt_r - convert a floating-point number to a "
1640 "string"
1641 msgstr ""
1642
1643 #. type: Plain text
1644 #: build/C/man3/ecvt_r.3:39
1645 #, no-wrap
1646 msgid ""
1647 "B<int ecvt_r(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,>\n"
1648 "B<           int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1649 msgstr ""
1650
1651 #. type: Plain text
1652 #: build/C/man3/ecvt_r.3:42
1653 #, no-wrap
1654 msgid ""
1655 "B<int fcvt_r(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,>\n"
1656 "B<           int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1657 msgstr ""
1658
1659 #. type: Plain text
1660 #: build/C/man3/ecvt_r.3:45
1661 #, no-wrap
1662 msgid ""
1663 "B<int qecvt_r(long double >I<number>B<, int >I<ndigits>B<, int "
1664 "*>I<decpt>B<,>\n"
1665 "B<           int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1666 msgstr ""
1667
1668 #. type: Plain text
1669 #: build/C/man3/ecvt_r.3:48
1670 #, no-wrap
1671 msgid ""
1672 "B<int qfcvt_r(long double >I<number>B<, int >I<ndigits>B<, int "
1673 "*>I<decpt>B<,>\n"
1674 "B<           int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1675 msgstr ""
1676
1677 #. type: Plain text
1678 #: build/C/man3/ecvt_r.3:60
1679 msgid "B<ecvt_r>(), B<fcvt_r>(), B<qecvt_r>(), B<qfcvt_r>():"
1680 msgstr ""
1681
1682 #. type: Plain text
1683 #: build/C/man3/ecvt_r.3:62
1684 msgid "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
1685 msgstr ""
1686
1687 #. type: Plain text
1688 #: build/C/man3/ecvt_r.3:86
1689 msgid ""
1690 "The functions B<ecvt_r>(), B<fcvt_r>(), B<qecvt_r>()  and B<qfcvt_r>()  are "
1691 "identical to B<ecvt>(3), B<fcvt>(3), B<qecvt>(3)  and B<qfcvt>(3), "
1692 "respectively, except that they do not return their result in a static "
1693 "buffer, but instead use the supplied I<buf> of size I<len>.  See B<ecvt>(3)  "
1694 "and B<qecvt>(3)."
1695 msgstr ""
1696
1697 #. type: Plain text
1698 #: build/C/man3/ecvt_r.3:88
1699 msgid "These functions return 0 on success, and -1 otherwise."
1700 msgstr ""
1701
1702 #. type: Plain text
1703 #: build/C/man3/ecvt_r.3:90
1704 msgid "These functions are GNU extensions."
1705 msgstr ""
1706
1707 #. type: Plain text
1708 #: build/C/man3/ecvt_r.3:95
1709 msgid "These functions are obsolete.  Instead, B<sprintf>(3)  is recommended."
1710 msgstr ""
1711
1712 #. type: Plain text
1713 #: build/C/man3/ecvt_r.3:99
1714 msgid "B<ecvt>(3), B<qecvt>(3), B<sprintf>(3)"
1715 msgstr ""
1716
1717 #. type: TH
1718 #: build/C/man3/exit.3:29
1719 #, no-wrap
1720 msgid "EXIT"
1721 msgstr ""
1722
1723 #. type: TH
1724 #: build/C/man3/exit.3:29 build/C/man3/random.3:33 build/C/man3/random_r.3:26
1725 #, no-wrap
1726 msgid "2014-03-25"
1727 msgstr ""
1728
1729 #. type: Plain text
1730 #: build/C/man3/exit.3:32
1731 msgid "exit - cause normal process termination"
1732 msgstr ""
1733
1734 #. type: Plain text
1735 #: build/C/man3/exit.3:37
1736 #, no-wrap
1737 msgid "B<void exit(int >I<status>B<);>\n"
1738 msgstr ""
1739
1740 #. type: Plain text
1741 #: build/C/man3/exit.3:45
1742 msgid ""
1743 "The B<exit>()  function causes normal process termination and the value of "
1744 "I<status & 0377> is returned to the parent (see B<wait>(2))."
1745 msgstr ""
1746
1747 #. type: Plain text
1748 #: build/C/man3/exit.3:72
1749 msgid ""
1750 "All functions registered with B<atexit>(3)  and B<on_exit>(3)  are called, "
1751 "in the reverse order of their registration.  (It is possible for one of "
1752 "these functions to use B<atexit>(3)  or B<on_exit>(3)  to register an "
1753 "additional function to be executed during exit processing; the new "
1754 "registration is added to the front of the list of functions that remain to "
1755 "be called.)  If one of these functions does not return (e.g., it calls "
1756 "B<_exit>(2), or kills itself with a signal), then none of the remaining "
1757 "functions is called, and further exit processing (in particular, flushing of "
1758 "B<stdio>(3)  streams) is abandoned.  If a function has been registered "
1759 "multiple times using B<atexit>(3)  or B<on_exit>(3), then it is called as "
1760 "many times as it was registered."
1761 msgstr ""
1762
1763 #. type: Plain text
1764 #: build/C/man3/exit.3:79
1765 msgid ""
1766 "All open B<stdio>(3)  streams are flushed and closed.  Files created by "
1767 "B<tmpfile>(3)  are removed."
1768 msgstr ""
1769
1770 #. type: Plain text
1771 #: build/C/man3/exit.3:86
1772 msgid ""
1773 "The C standard specifies two constants, B<EXIT_SUCCESS> and B<EXIT_FAILURE>, "
1774 "that may be passed to B<exit>()  to indicate successful or unsuccessful "
1775 "termination, respectively."
1776 msgstr ""
1777
1778 #. type: Plain text
1779 #: build/C/man3/exit.3:90
1780 msgid "The B<exit>()  function does not return."
1781 msgstr ""
1782
1783 #. type: Plain text
1784 #: build/C/man3/exit.3:96
1785 msgid ""
1786 "The B<exit>()  function uses a global variable that is not protected, so it "
1787 "is not thread-safe."
1788 msgstr ""
1789
1790 #. type: Plain text
1791 #: build/C/man3/exit.3:98
1792 msgid "SVr4, 4.3BSD, POSIX.1-2001, C89, C99."
1793 msgstr ""
1794
1795 #. type: Plain text
1796 #: build/C/man3/exit.3:115
1797 msgid ""
1798 "It is undefined what happens if one of the functions registered using "
1799 "B<atexit>(3)  and B<on_exit>(3)  calls either B<exit>()  or B<longjmp>(3).  "
1800 "Note that a call to B<execve>(2)  removes registrations created using "
1801 "B<atexit>(3)  and B<on_exit>(3)."
1802 msgstr ""
1803
1804 #. type: Plain text
1805 #: build/C/man3/exit.3:124
1806 msgid ""
1807 "The use of B<EXIT_SUCCESS> and B<EXIT_FAILURE> is slightly more portable (to "
1808 "non-UNIX environments) than the use of 0 and some nonzero value like 1 or "
1809 "-1.  In particular, VMS uses a different convention."
1810 msgstr ""
1811
1812 #. type: Plain text
1813 #: build/C/man3/exit.3:127
1814 msgid ""
1815 "BSD has attempted to standardize exit codes; see the file "
1816 "I<E<lt>sysexits.hE<gt>>."
1817 msgstr ""
1818
1819 #. type: Plain text
1820 #: build/C/man3/exit.3:152
1821 msgid ""
1822 "After B<exit>(), the exit status must be transmitted to the parent process.  "
1823 "There are three cases.  If the parent has set B<SA_NOCLDWAIT>, or has set "
1824 "the B<SIGCHLD> handler to B<SIG_IGN>, the status is discarded.  If the "
1825 "parent was waiting on the child, it is notified of the exit status.  In both "
1826 "cases the exiting process dies immediately.  If the parent has not indicated "
1827 "that it is not interested in the exit status, but is not waiting, the "
1828 "exiting process turns into a \"zombie\" process (which is nothing but a "
1829 "container for the single byte representing the exit status) so that the "
1830 "parent can learn the exit status when it later calls one of the B<wait>(2)  "
1831 "functions."
1832 msgstr ""
1833
1834 #. type: Plain text
1835 #: build/C/man3/exit.3:162
1836 msgid ""
1837 "If the implementation supports the B<SIGCHLD> signal, this signal is sent to "
1838 "the parent.  If the parent has set B<SA_NOCLDWAIT>, it is undefined whether "
1839 "a B<SIGCHLD> signal is sent."
1840 msgstr ""
1841
1842 #. type: Plain text
1843 #: build/C/man3/exit.3:171
1844 msgid ""
1845 "If the process is a session leader and its controlling terminal is the "
1846 "controlling terminal of the session, then each process in the foreground "
1847 "process group of this controlling terminal is sent a B<SIGHUP> signal, and "
1848 "the terminal is disassociated from this session, allowing it to be acquired "
1849 "by a new controlling process."
1850 msgstr ""
1851
1852 #. type: Plain text
1853 #: build/C/man3/exit.3:183
1854 msgid ""
1855 "If the exit of the process causes a process group to become orphaned, and if "
1856 "any member of the newly orphaned process group is stopped, then a B<SIGHUP> "
1857 "signal followed by a B<SIGCONT> signal will be sent to each process in this "
1858 "process group.  See B<setpgid>(2)  for an explanation of orphaned process "
1859 "groups."
1860 msgstr ""
1861
1862 #. type: Plain text
1863 #: build/C/man3/exit.3:190
1864 msgid ""
1865 "B<_exit>(2), B<setpgid>(2), B<wait>(2), B<atexit>(3), B<on_exit>(3), "
1866 "B<tmpfile>(3)"
1867 msgstr ""
1868
1869 #. type: TH
1870 #: build/C/man3/gcvt.3:30
1871 #, no-wrap
1872 msgid "GCVT"
1873 msgstr ""
1874
1875 #. type: Plain text
1876 #: build/C/man3/gcvt.3:33
1877 msgid "gcvt - convert a floating-point number to a string"
1878 msgstr ""
1879
1880 #. type: Plain text
1881 #: build/C/man3/gcvt.3:38
1882 #, no-wrap
1883 msgid "B<char *gcvt(double >I<number>B<, size_t >I<ndigit>B<, char *>I<buf>B<);>\n"
1884 msgstr ""
1885
1886 #. type: Plain text
1887 #: build/C/man3/gcvt.3:46
1888 msgid "B<gcvt>():"
1889 msgstr ""
1890
1891 #. type: Plain text
1892 #: build/C/man3/gcvt.3:61
1893 msgid ""
1894 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE && "
1895 "_XOPEN_SOURCE_EXTENDED"
1896 msgstr ""
1897
1898 #. type: Plain text
1899 #: build/C/man3/gcvt.3:72
1900 msgid ""
1901 "The B<gcvt>()  function converts I<number> to a minimal length "
1902 "null-terminated ASCII string and stores the result in I<buf>.  It produces "
1903 "I<ndigit> significant digits in either B<printf>(3)  F format or E format."
1904 msgstr ""
1905
1906 #. type: Plain text
1907 #: build/C/man3/gcvt.3:77
1908 msgid ""
1909 "The B<gcvt>()  function returns the address of the string pointed to by "
1910 "I<buf>."
1911 msgstr ""
1912
1913 #. type: Plain text
1914 #: build/C/man3/gcvt.3:86
1915 msgid ""
1916 "Marked as LEGACY in POSIX.1-2001.  POSIX.1-2008 removes the specification of "
1917 "B<gcvt>(), recommending the use of B<sprintf>(3)  instead (though "
1918 "B<snprintf>(3)  may be preferable)."
1919 msgstr ""
1920
1921 #. type: Plain text
1922 #: build/C/man3/gcvt.3:90
1923 msgid "B<ecvt>(3), B<fcvt>(3), B<sprintf>(3)"
1924 msgstr ""
1925
1926 #. type: TH
1927 #: build/C/man3/getauxval.3:29
1928 #, no-wrap
1929 msgid "GETAUXVAL"
1930 msgstr ""
1931
1932 #. type: TH
1933 #: build/C/man3/getauxval.3:29 build/C/man3/getsubopt.3:25
1934 #, no-wrap
1935 msgid "2014-04-08"
1936 msgstr ""
1937
1938 #. type: Plain text
1939 #: build/C/man3/getauxval.3:32
1940 msgid "getauxval - retrieve a value from the auxiliary vector"
1941 msgstr ""
1942
1943 #. type: Plain text
1944 #: build/C/man3/getauxval.3:35
1945 #, no-wrap
1946 msgid "B<#include E<lt>sys/auxv.hE<gt>>\n"
1947 msgstr ""
1948
1949 #. type: Plain text
1950 #: build/C/man3/getauxval.3:37
1951 #, no-wrap
1952 msgid "B<unsigned long getauxval(unsigned long >I<type>B<);>\n"
1953 msgstr ""
1954
1955 #. type: Plain text
1956 #: build/C/man3/getauxval.3:45
1957 msgid ""
1958 "The B<getauxval>()  function retrieves values from the auxiliary vector, a "
1959 "mechanism that the kernel's ELF binary loader uses to pass certain "
1960 "information to user space when a program is executed."
1961 msgstr ""
1962
1963 #. type: Plain text
1964 #: build/C/man3/getauxval.3:53
1965 msgid ""
1966 "Each entry in the auxiliary vector consists of a pair of values: a type that "
1967 "identifies what this entry represents, and a value for that type.  Given the "
1968 "argument I<type>, B<getauxval>()  returns the corresponding value."
1969 msgstr ""
1970
1971 #. type: Plain text
1972 #: build/C/man3/getauxval.3:60
1973 msgid ""
1974 "The value returned for each I<type> is given in the following list.  Not all "
1975 "I<type> values are present on all architectures."
1976 msgstr ""
1977
1978 #. type: TP
1979 #: build/C/man3/getauxval.3:60
1980 #, no-wrap
1981 msgid "B<AT_BASE>"
1982 msgstr ""
1983
1984 #. type: Plain text
1985 #: build/C/man3/getauxval.3:63
1986 msgid "The base address of the program interpreter (usually, the dynamic linker)."
1987 msgstr ""
1988
1989 #. type: TP
1990 #: build/C/man3/getauxval.3:63
1991 #, no-wrap
1992 msgid "B<AT_BASE_PLATFORM>"
1993 msgstr ""
1994
1995 #. type: Plain text
1996 #: build/C/man3/getauxval.3:68
1997 msgid ""
1998 "A string identifying the real platform; may differ from B<AT_PLATFORM> "
1999 "(PowerPC only)."
2000 msgstr ""
2001
2002 #. type: TP
2003 #: build/C/man3/getauxval.3:68
2004 #, no-wrap
2005 msgid "B<AT_CLKTCK>"
2006 msgstr ""
2007
2008 #. type: Plain text
2009 #: build/C/man3/getauxval.3:75
2010 msgid ""
2011 "The frequency with which B<times>(2)  counts.  This value can also be "
2012 "obtained via I<sysconf(_SC_CLK_TCK)>."
2013 msgstr ""
2014
2015 #. type: TP
2016 #: build/C/man3/getauxval.3:75
2017 #, no-wrap
2018 msgid "B<AT_DCACHEBSIZE>"
2019 msgstr ""
2020
2021 #. type: Plain text
2022 #: build/C/man3/getauxval.3:78
2023 msgid "The data cache block size."
2024 msgstr ""
2025
2026 #. type: TP
2027 #: build/C/man3/getauxval.3:78
2028 #, no-wrap
2029 msgid "B<AT_EGID>"
2030 msgstr ""
2031
2032 #. type: Plain text
2033 #: build/C/man3/getauxval.3:81
2034 msgid "The effective group ID of the thread."
2035 msgstr ""
2036
2037 #. type: TP
2038 #: build/C/man3/getauxval.3:81
2039 #, no-wrap
2040 msgid "B<AT_ENTRY>"
2041 msgstr ""
2042
2043 #. type: Plain text
2044 #: build/C/man3/getauxval.3:84
2045 msgid "The entry address of the executable."
2046 msgstr ""
2047
2048 #. type: TP
2049 #: build/C/man3/getauxval.3:84
2050 #, no-wrap
2051 msgid "B<AT_EUID>"
2052 msgstr ""
2053
2054 #. type: Plain text
2055 #: build/C/man3/getauxval.3:87
2056 msgid "The effective user ID of the thread."
2057 msgstr ""
2058
2059 #. type: TP
2060 #: build/C/man3/getauxval.3:87
2061 #, no-wrap
2062 msgid "B<AT_EXECFD>"
2063 msgstr ""
2064
2065 #. type: Plain text
2066 #: build/C/man3/getauxval.3:90
2067 msgid "File descriptor of program."
2068 msgstr ""
2069
2070 #. type: TP
2071 #: build/C/man3/getauxval.3:90
2072 #, no-wrap
2073 msgid "B<AT_EXECFN>"
2074 msgstr ""
2075
2076 #. type: Plain text
2077 #: build/C/man3/getauxval.3:93
2078 msgid "Pathname used to execute program."
2079 msgstr ""
2080
2081 #. type: TP
2082 #: build/C/man3/getauxval.3:93
2083 #, no-wrap
2084 msgid "B<AT_FLAGS>"
2085 msgstr ""
2086
2087 #. type: Plain text
2088 #: build/C/man3/getauxval.3:96
2089 msgid "Flags (unused)."
2090 msgstr ""
2091
2092 #. type: TP
2093 #: build/C/man3/getauxval.3:96
2094 #, no-wrap
2095 msgid "B<AT_FPUCW>"
2096 msgstr ""
2097
2098 #. type: Plain text
2099 #: build/C/man3/getauxval.3:101
2100 msgid ""
2101 "Used FPU control word (SuperH architecture only).  This gives some "
2102 "information about the FPU initialization performed by the kernel."
2103 msgstr ""
2104
2105 #. type: TP
2106 #: build/C/man3/getauxval.3:101
2107 #, no-wrap
2108 msgid "B<AT_GID>"
2109 msgstr ""
2110
2111 #. type: Plain text
2112 #: build/C/man3/getauxval.3:104
2113 msgid "The real group ID of the thread."
2114 msgstr ""
2115
2116 #. type: TP
2117 #: build/C/man3/getauxval.3:104
2118 #, no-wrap
2119 msgid "B<AT_HWCAP>"
2120 msgstr ""
2121
2122 #. type: Plain text
2123 #: build/C/man3/getauxval.3:114
2124 msgid ""
2125 "A pointer to a multibyte mask of bits whose settings indicate detailed "
2126 "processor capabilities.  The contents of the bit mask are hardware dependent "
2127 "(for example, see the kernel source file "
2128 "I<arch/x86/include/asm/cpufeature.h> for details relating to the Intel x86 "
2129 "architecture).  A human-readable version of the same information is "
2130 "available via I</proc/cpuinfo>."
2131 msgstr ""
2132
2133 #. type: TP
2134 #: build/C/man3/getauxval.3:114
2135 #, no-wrap
2136 msgid "B<AT_ICACHEBSIZE>"
2137 msgstr ""
2138
2139 #.  .TP
2140 #.  .BR AT_IGNORE
2141 #.  .TP
2142 #.  .BR AT_IGNOREPPC
2143 #.  .TP
2144 #.  .BR AT_NOTELF
2145 #. type: Plain text
2146 #: build/C/man3/getauxval.3:123
2147 msgid "The instruction cache block size."
2148 msgstr ""
2149
2150 #. type: TP
2151 #: build/C/man3/getauxval.3:123
2152 #, no-wrap
2153 msgid "B<AT_PAGESZ>"
2154 msgstr ""
2155
2156 #. type: Plain text
2157 #: build/C/man3/getauxval.3:127
2158 msgid "The system page size (the same value returned by I<sysconf(_SC_PAGESIZE)>)."
2159 msgstr ""
2160
2161 #. type: TP
2162 #: build/C/man3/getauxval.3:127
2163 #, no-wrap
2164 msgid "B<AT_PHDR>"
2165 msgstr ""
2166
2167 #. type: Plain text
2168 #: build/C/man3/getauxval.3:130
2169 msgid "The address of the program headers of the executable."
2170 msgstr ""
2171
2172 #. type: TP
2173 #: build/C/man3/getauxval.3:130
2174 #, no-wrap
2175 msgid "B<AT_PHENT>"
2176 msgstr ""
2177
2178 #. type: Plain text
2179 #: build/C/man3/getauxval.3:133
2180 msgid "The size of program header entry."
2181 msgstr ""
2182
2183 #. type: TP
2184 #: build/C/man3/getauxval.3:133
2185 #, no-wrap
2186 msgid "B<AT_PHNUM>"
2187 msgstr ""
2188
2189 #. type: Plain text
2190 #: build/C/man3/getauxval.3:136
2191 msgid "The number of program headers."
2192 msgstr ""
2193
2194 #. type: TP
2195 #: build/C/man3/getauxval.3:136
2196 #, no-wrap
2197 msgid "B<AT_PLATFORM>"
2198 msgstr ""
2199
2200 #. type: Plain text
2201 #: build/C/man3/getauxval.3:143
2202 msgid ""
2203 "A pointer to a string that identifies the hardware platform that the program "
2204 "is running on.  The dynamic linker uses this in the interpretation of "
2205 "I<rpath> values."
2206 msgstr ""
2207
2208 #. type: TP
2209 #: build/C/man3/getauxval.3:143
2210 #, no-wrap
2211 msgid "B<AT_RANDOM>"
2212 msgstr ""
2213
2214 #. type: Plain text
2215 #: build/C/man3/getauxval.3:146
2216 msgid "The address of sixteen bytes containing a random value."
2217 msgstr ""
2218
2219 #. type: TP
2220 #: build/C/man3/getauxval.3:146
2221 #, no-wrap
2222 msgid "B<AT_SECURE>"
2223 msgstr ""
2224
2225 #. type: Plain text
2226 #: build/C/man3/getauxval.3:158
2227 msgid ""
2228 "Has a nonzero value if this executable should be treated securely.  Most "
2229 "commonly, a nonzero value indicates that the process is executing a "
2230 "set-user-ID or set-group-ID program; alternatively, a nonzero value may be "
2231 "triggered by a Linux Security Module.  When this value is nonzero, the "
2232 "dynamic linker disables the use of certain environment variables (see "
2233 "B<ld-linux.so>(8))  and glibc changes other aspects of its behavior.  (See "
2234 "also B<secure_getenv>(3).)"
2235 msgstr ""
2236
2237 #. type: TP
2238 #: build/C/man3/getauxval.3:158
2239 #, no-wrap
2240 msgid "B<AT_SYSINFO>"
2241 msgstr ""
2242
2243 #. type: Plain text
2244 #: build/C/man3/getauxval.3:162
2245 msgid ""
2246 "The entry point to the system call function in the vDSO.  Not present/needed "
2247 "on all architectures (e.g., absent on x86-64)."
2248 msgstr ""
2249
2250 #. type: TP
2251 #: build/C/man3/getauxval.3:162
2252 #, no-wrap
2253 msgid "B<AT_SYSINFO_EHDR>"
2254 msgstr ""
2255
2256 #. type: Plain text
2257 #: build/C/man3/getauxval.3:167
2258 msgid ""
2259 "The address of a page containing the virtual Dynamic Shared Object (vDSO)  "
2260 "that the kernel creates in order to provide fast implementations of certain "
2261 "system calls."
2262 msgstr ""
2263
2264 #. type: TP
2265 #: build/C/man3/getauxval.3:167
2266 #, no-wrap
2267 msgid "B<AT_UCACHEBSIZE>"
2268 msgstr ""
2269
2270 #. type: Plain text
2271 #: build/C/man3/getauxval.3:170
2272 msgid "The unified cache block size."
2273 msgstr ""
2274
2275 #. type: TP
2276 #: build/C/man3/getauxval.3:170
2277 #, no-wrap
2278 msgid "B<AT_UID>"
2279 msgstr ""
2280
2281 #. type: Plain text
2282 #: build/C/man3/getauxval.3:173
2283 msgid "The real user ID of the thread."
2284 msgstr ""
2285
2286 #. type: Plain text
2287 #: build/C/man3/getauxval.3:181
2288 msgid ""
2289 "On success, B<getauxval>()  returns the value corresponding to I<type>.  If "
2290 "I<type> is not found, 0 is returned."
2291 msgstr ""
2292
2293 #. type: Plain text
2294 #: build/C/man3/getauxval.3:183
2295 msgid "No errors are diagnosed."
2296 msgstr ""
2297
2298 #. type: Plain text
2299 #: build/C/man3/getauxval.3:187
2300 msgid "The B<getauxval>()  function was added to glibc in version 2.16."
2301 msgstr ""
2302
2303 #. type: Plain text
2304 #: build/C/man3/getauxval.3:192
2305 msgid "The B<getauxval>()  function is thread-safe."
2306 msgstr ""
2307
2308 #. type: Plain text
2309 #: build/C/man3/getauxval.3:194
2310 msgid "This function is a nonstandard glibc extension."
2311 msgstr ""
2312
2313 #. type: Plain text
2314 #: build/C/man3/getauxval.3:203
2315 msgid ""
2316 "The primary consumer of the information in the auxiliary vector is the "
2317 "dynamic linker B<ld-linux.so>(8).  The auxiliary vector is a convenient and "
2318 "efficient shortcut that allows the kernel to communicate a certain set of "
2319 "standard information that the dynamic linker usually or always needs.  In "
2320 "some cases, the same information could be obtained by system calls, but "
2321 "using the auxiliary vector is cheaper."
2322 msgstr ""
2323
2324 #. type: Plain text
2325 #: build/C/man3/getauxval.3:209
2326 msgid ""
2327 "The auxiliary vector resides just above the argument list and environment in "
2328 "the process address space.  The auxiliary vector supplied to a program can "
2329 "be viewed by setting the B<LD_SHOW_AUXV> environment variable when running a "
2330 "program:"
2331 msgstr ""
2332
2333 #. type: Plain text
2334 #: build/C/man3/getauxval.3:211
2335 #, no-wrap
2336 msgid "    $ LD_SHOW_AUXV=1 sleep 1\n"
2337 msgstr ""
2338
2339 #. type: Plain text
2340 #: build/C/man3/getauxval.3:218
2341 msgid ""
2342 "The auxiliary vector of any process can (subject to file permissions)  be "
2343 "obtained via I</proc/PID/auxv>; see B<proc>(5)  for more information."
2344 msgstr ""
2345
2346 #. type: Plain text
2347 #: build/C/man3/getauxval.3:222
2348 msgid "B<secure_getenv>(3), B<vdso>(7), B<ld-linux.so>(8)"
2349 msgstr ""
2350
2351 #. type: TH
2352 #: build/C/man3/getenv.3:33
2353 #, no-wrap
2354 msgid "GETENV"
2355 msgstr ""
2356
2357 #. type: TH
2358 #: build/C/man3/getenv.3:33
2359 #, no-wrap
2360 msgid "2012-08-14"
2361 msgstr ""
2362
2363 #. type: Plain text
2364 #: build/C/man3/getenv.3:36
2365 msgid "getenv, secure_getenv - get an environment variable"
2366 msgstr ""
2367
2368 #. type: Plain text
2369 #: build/C/man3/getenv.3:41
2370 #, no-wrap
2371 msgid "B<char *getenv(const char *>I<name>B<);>\n"
2372 msgstr ""
2373
2374 #. type: Plain text
2375 #: build/C/man3/getenv.3:43
2376 #, no-wrap
2377 msgid "B<char *secure_getenv(const char *>I<name>B<);>\n"
2378 msgstr ""
2379
2380 #. type: Plain text
2381 #: build/C/man3/getenv.3:52
2382 msgid "B<secure_getenv>(): _GNU_SOURCE"
2383 msgstr ""
2384
2385 #. type: Plain text
2386 #: build/C/man3/getenv.3:61
2387 msgid ""
2388 "The B<getenv>()  function searches the environment list to find the "
2389 "environment variable I<name>, and returns a pointer to the corresponding "
2390 "I<value> string."
2391 msgstr ""
2392
2393 #. type: Plain text
2394 #: build/C/man3/getenv.3:69
2395 msgid ""
2396 "The GNU-specific B<secure_getenv>()  function is just like B<getenv>()  "
2397 "except that it returns NULL in cases where \"secure execution\" is "
2398 "required.  Secure execution is required if one of the following conditions "
2399 "was true when the program run by the calling process was loaded:"
2400 msgstr ""
2401
2402 #. type: IP
2403 #: build/C/man3/getenv.3:69 build/C/man3/getenv.3:74 build/C/man3/getenv.3:76 build/C/man3/system.3:77 build/C/man3/system.3:82 build/C/man3/system.3:86 build/C/man3/system.3:91
2404 #, no-wrap
2405 msgid "*"
2406 msgstr ""
2407
2408 #. type: Plain text
2409 #: build/C/man3/getenv.3:74
2410 msgid ""
2411 "the process's effective user ID did not match its real user ID or the "
2412 "process's effective group ID did not match its real group ID (typically this "
2413 "is the result of executing a set-user-ID or set-group-ID program);"
2414 msgstr ""
2415
2416 #. type: Plain text
2417 #: build/C/man3/getenv.3:76
2418 msgid "the effective capability bit was set on the executable file; or"
2419 msgstr ""
2420
2421 #. type: Plain text
2422 #: build/C/man3/getenv.3:78
2423 msgid "the process has a nonempty permitted capability set."
2424 msgstr ""
2425
2426 #. type: Plain text
2427 #: build/C/man3/getenv.3:81
2428 msgid ""
2429 "Secure execution may also required if triggered by some Linux security "
2430 "modules."
2431 msgstr ""
2432
2433 #. type: Plain text
2434 #: build/C/man3/getenv.3:88
2435 msgid ""
2436 "The B<secure_getenv>()  function is intended for use in general-purpose "
2437 "libraries to avoid vulnerabilities that could occur if set-user-ID or "
2438 "set-group-ID programs accidentally trusted the environment."
2439 msgstr ""
2440
2441 #. type: Plain text
2442 #: build/C/man3/getenv.3:93
2443 msgid ""
2444 "The B<getenv>()  function returns a pointer to the value in the environment, "
2445 "or NULL if there is no match."
2446 msgstr ""
2447
2448 #. type: Plain text
2449 #: build/C/man3/getenv.3:96
2450 msgid "B<secure_getenv>()  first appeared in glibc 2.17."
2451 msgstr ""
2452
2453 #. type: Plain text
2454 #: build/C/man3/getenv.3:99
2455 msgid "B<getenv>(): SVr4, POSIX.1-2001, 4.3BSD, C89, C99."
2456 msgstr ""
2457
2458 #. type: Plain text
2459 #: build/C/man3/getenv.3:102
2460 msgid "B<secure_getenv>()  is a GNU extension."
2461 msgstr ""
2462
2463 #. type: Plain text
2464 #: build/C/man3/getenv.3:104
2465 msgid "The strings in the environment list are of the form I<name=value>."
2466 msgstr ""
2467
2468 #. type: Plain text
2469 #: build/C/man3/getenv.3:110
2470 msgid ""
2471 "As typically implemented, B<getenv>()  returns a pointer to a string within "
2472 "the environment list.  The caller must take care not to modify this string, "
2473 "since that would change the environment of the process."
2474 msgstr ""
2475
2476 #. type: Plain text
2477 #: build/C/man3/getenv.3:123
2478 msgid ""
2479 "The implementation of B<getenv>()  is not required to be reentrant.  The "
2480 "string pointed to by the return value of B<getenv>()  may be statically "
2481 "allocated, and can be modified by a subsequent call to B<getenv>(), "
2482 "B<putenv>(3), B<setenv>(3), or B<unsetenv>(3)."
2483 msgstr ""
2484
2485 #. type: Plain text
2486 #: build/C/man3/getenv.3:129
2487 msgid ""
2488 "The \"secure execution\" mode of B<secure_getenv>()  is controlled by the "
2489 "B<AT_SECURE> flag contained in the auxiliary vector passed from the kernel "
2490 "to user space."
2491 msgstr ""
2492
2493 #. type: Plain text
2494 #: build/C/man3/getenv.3:137
2495 msgid ""
2496 "B<clearenv>(3), B<getauxval>(3), B<putenv>(3), B<setenv>(3), B<unsetenv>(3), "
2497 "B<capabilities>(7), B<environ>(7)"
2498 msgstr ""
2499
2500 #. type: TH
2501 #: build/C/man3/getloadavg.3:34
2502 #, no-wrap
2503 msgid "GETLOADAVG"
2504 msgstr ""
2505
2506 #. type: TH
2507 #: build/C/man3/getloadavg.3:34
2508 #, no-wrap
2509 msgid "2014-04-01"
2510 msgstr ""
2511
2512 #. type: Plain text
2513 #: build/C/man3/getloadavg.3:37
2514 msgid "getloadavg - get system load averages"
2515 msgstr ""
2516
2517 #. type: Plain text
2518 #: build/C/man3/getloadavg.3:41
2519 #, no-wrap
2520 msgid ""
2521 "B<#define _BSD_SOURCE>         /* See feature_test_macros(7) */\n"
2522 "B<#include E<lt>stdlib.hE<gt>>\n"
2523 msgstr ""
2524
2525 #. type: Plain text
2526 #: build/C/man3/getloadavg.3:43
2527 #, no-wrap
2528 msgid "B<int getloadavg(double >I<loadavg[]>B<, int >I<nelem>B<);>\n"
2529 msgstr ""
2530
2531 #. type: Plain text
2532 #: build/C/man3/getloadavg.3:55
2533 msgid ""
2534 "The B<getloadavg>()  function returns the number of processes in the system "
2535 "run queue averaged over various periods of time.  Up to I<nelem> samples are "
2536 "retrieved and assigned to successive elements of I<loadavg>[].  The system "
2537 "imposes a maximum of 3 samples, representing averages over the last 1, 5, "
2538 "and 15 minutes, respectively."
2539 msgstr ""
2540
2541 #.  .SH HISTORY
2542 #.  The
2543 #.  BR getloadavg ()
2544 #.  function appeared in
2545 #.  4.3BSD Reno .
2546 #. type: Plain text
2547 #: build/C/man3/getloadavg.3:63
2548 msgid ""
2549 "If the load average was unobtainable, -1 is returned; otherwise, the number "
2550 "of samples actually retrieved is returned."
2551 msgstr ""
2552
2553 #. type: Plain text
2554 #: build/C/man3/getloadavg.3:65
2555 msgid "This function is available in glibc since version 2.2."
2556 msgstr ""
2557
2558 #. type: Plain text
2559 #: build/C/man3/getloadavg.3:70
2560 msgid "The B<getloadavg>()  function is thread-safe."
2561 msgstr ""
2562
2563 #.  mdoc seems to have a bug - there must be no newline here
2564 #. type: Plain text
2565 #: build/C/man3/getloadavg.3:74
2566 msgid "Not in POSIX.1-2001.  Present on the BSDs and Solaris."
2567 msgstr ""
2568
2569 #. type: Plain text
2570 #: build/C/man3/getloadavg.3:77
2571 msgid "B<uptime>(1), B<proc>(5)"
2572 msgstr ""
2573
2574 #. type: TH
2575 #: build/C/man3/getsubopt.3:25
2576 #, no-wrap
2577 msgid "GETSUBOPT"
2578 msgstr ""
2579
2580 #. type: Plain text
2581 #: build/C/man3/getsubopt.3:28
2582 msgid "getsubopt - parse suboption arguments from a string"
2583 msgstr ""
2584
2585 #. type: Plain text
2586 #: build/C/man3/getsubopt.3:33
2587 msgid ""
2588 "B<int getsubopt(char **>I<optionp>B<, char * const *>I<tokens>B<, char "
2589 "**>I<valuep>B<);>"
2590 msgstr ""
2591
2592 #. type: Plain text
2593 #: build/C/man3/getsubopt.3:40
2594 msgid "B<getsubopt>():"
2595 msgstr ""
2596
2597 #. type: Plain text
2598 #: build/C/man3/getsubopt.3:45
2599 msgid "_XOPEN_SOURCE\\ E<gt>= 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
2600 msgstr ""
2601
2602 #. type: Plain text
2603 #: build/C/man3/getsubopt.3:47
2604 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
2605 msgstr ""
2606
2607 #. type: Plain text
2608 #: build/C/man3/getsubopt.3:64
2609 msgid ""
2610 "B<getsubopt>()  parses the list of comma-separated suboptions provided in "
2611 "I<optionp>.  (Such a suboption list is typically produced when B<getopt>(3)  "
2612 "is used to parse a command line; see for example the I<-o> option of "
2613 "B<mount>(8).)  Each suboption may include an associated value, which is "
2614 "separated from the suboption name by an equal sign.  The following is an "
2615 "example of the kind of string that might be passed in I<optionp>:"
2616 msgstr ""
2617
2618 #. type: Plain text
2619 #: build/C/man3/getsubopt.3:67
2620 msgid "B<ro,name=xyz>"
2621 msgstr ""
2622
2623 #. type: Plain text
2624 #: build/C/man3/getsubopt.3:77
2625 msgid ""
2626 "The I<tokens> argument is a pointer to a NULL-terminated array of pointers "
2627 "to the tokens that B<getsubopt>()  will look for in I<optionp>.  The tokens "
2628 "should be distinct, null-terminated strings containing at least one "
2629 "character, with no embedded equal signs or commas."
2630 msgstr ""
2631
2632 #. type: Plain text
2633 #: build/C/man3/getsubopt.3:98
2634 msgid ""
2635 "Each call to B<getsubopt>()  returns information about the next unprocessed "
2636 "suboption in I<optionp>.  The first equal sign in a suboption (if any) is "
2637 "interpreted as a separator between the name and the value of that "
2638 "suboption.  The value extends to the next comma, or (for the last suboption) "
2639 "to the end of the string.  If the name of the suboption matches a known name "
2640 "from I<tokens>, and a value string was found, B<getsubopt>()  sets "
2641 "I<*valuep> to the address of that string.  The first comma in I<optionp> is "
2642 "overwritten with a null byte, so I<*valuep> is precisely the \"value "
2643 "string\" for that suboption."
2644 msgstr ""
2645
2646 #. type: Plain text
2647 #: build/C/man3/getsubopt.3:102
2648 msgid ""
2649 "If the suboption is recognized, but no value string was found, I<*valuep> is "
2650 "set to NULL."
2651 msgstr ""
2652
2653 #. type: Plain text
2654 #: build/C/man3/getsubopt.3:110
2655 msgid ""
2656 "When B<getsubopt>()  returns, I<optionp> points to the next suboption, or to "
2657 "the null byte (\\(aq\\e0\\(aq) at the end of the string if the last "
2658 "suboption was just processed."
2659 msgstr ""
2660
2661 #. type: Plain text
2662 #: build/C/man3/getsubopt.3:122
2663 msgid ""
2664 "If the first suboption in I<optionp> is recognized, B<getsubopt>()  returns "
2665 "the index of the matching suboption element in I<tokens>.  Otherwise, -1 is "
2666 "returned and I<*valuep> is the entire I<name>B<[=>I<value>B<]> string."
2667 msgstr ""
2668
2669 #. type: Plain text
2670 #: build/C/man3/getsubopt.3:129
2671 msgid ""
2672 "Since I<*optionp> is changed, the first suboption before the call to "
2673 "B<getsubopt>()  is not (necessarily) the same as the first suboption after "
2674 "B<getsubopt>()."
2675 msgstr ""
2676
2677 #. type: Plain text
2678 #: build/C/man3/getsubopt.3:134
2679 msgid "The B<getsubopt>()  function is thread-safe."
2680 msgstr ""
2681
2682 #. type: Plain text
2683 #: build/C/man3/getsubopt.3:143
2684 msgid ""
2685 "Since B<getsubopt>()  overwrites any commas it finds in the string "
2686 "I<*optionp>, that string must be writable; it cannot be a string constant."
2687 msgstr ""
2688
2689 #. type: Plain text
2690 #: build/C/man3/getsubopt.3:145
2691 msgid "The following program expects suboptions following a \"-o\" option."
2692 msgstr ""
2693
2694 #. type: Plain text
2695 #: build/C/man3/getsubopt.3:151
2696 #, no-wrap
2697 msgid ""
2698 "#define _XOPEN_SOURCE 500\n"
2699 "#include E<lt>stdlib.hE<gt>\n"
2700 "#include E<lt>assert.hE<gt>\n"
2701 "#include E<lt>stdio.hE<gt>\n"
2702 msgstr ""
2703
2704 #. type: Plain text
2705 #: build/C/man3/getsubopt.3:169
2706 #, no-wrap
2707 msgid ""
2708 "int\n"
2709 "main(int argc, char **argv)\n"
2710 "{\n"
2711 "    enum {\n"
2712 "        RO_OPT = 0,\n"
2713 "        RW_OPT,\n"
2714 "        NAME_OPT\n"
2715 "    };\n"
2716 "    char *const token[] = {\n"
2717 "        [RO_OPT]   = \"ro\",\n"
2718 "        [RW_OPT]   = \"rw\",\n"
2719 "        [NAME_OPT] = \"name\",\n"
2720 "        NULL\n"
2721 "    };\n"
2722 "    char *subopts;\n"
2723 "    char *value;\n"
2724 "    int opt;\n"
2725 msgstr ""
2726
2727 #. type: Plain text
2728 #: build/C/man3/getsubopt.3:174
2729 #, no-wrap
2730 msgid ""
2731 "    int readonly = 0;\n"
2732 "    int readwrite = 0;\n"
2733 "    char *name = NULL;\n"
2734 "    int errfnd = 0;\n"
2735 msgstr ""
2736
2737 #. type: Plain text
2738 #: build/C/man3/getsubopt.3:180
2739 #, no-wrap
2740 msgid ""
2741 "    while ((opt = getopt(argc, argv, \"o:\")) != -1) {\n"
2742 "        switch (opt) {\n"
2743 "        case \\(aqo\\(aq:\n"
2744 "            subopts = optarg;\n"
2745 "            while (*subopts != \\(aq\\e0\\(aq && !errfnd) {\n"
2746 msgstr ""
2747
2748 #. type: Plain text
2749 #: build/C/man3/getsubopt.3:185
2750 #, no-wrap
2751 msgid ""
2752 "            switch (getsubopt(&subopts, token, &value)) {\n"
2753 "            case RO_OPT:\n"
2754 "                readonly = 1;\n"
2755 "                break;\n"
2756 msgstr ""
2757
2758 #. type: Plain text
2759 #: build/C/man3/getsubopt.3:189
2760 #, no-wrap
2761 msgid ""
2762 "            case RW_OPT:\n"
2763 "                readwrite = 1;\n"
2764 "                break;\n"
2765 msgstr ""
2766
2767 #. type: Plain text
2768 #: build/C/man3/getsubopt.3:197
2769 #, no-wrap
2770 msgid ""
2771 "            case NAME_OPT:\n"
2772 "                if (value == NULL) {\n"
2773 "                    fprintf(stderr, \"Missing value for \"\n"
2774 "                            \"suboption \\(aq%s\\(aq\\en\", "
2775 "token[NAME_OPT]);\n"
2776 "                    errfnd = 1;\n"
2777 "                    continue;\n"
2778 "                }\n"
2779 msgstr ""
2780
2781 #. type: Plain text
2782 #: build/C/man3/getsubopt.3:200
2783 #, no-wrap
2784 msgid ""
2785 "                name = value;\n"
2786 "                break;\n"
2787 msgstr ""
2788
2789 #. type: Plain text
2790 #: build/C/man3/getsubopt.3:214
2791 #, no-wrap
2792 msgid ""
2793 "            default:\n"
2794 "                fprintf(stderr, \"No match found \"\n"
2795 "                        \"for token: /%s/\\en\", value);\n"
2796 "                errfnd = 1;\n"
2797 "                break;\n"
2798 "            }\n"
2799 "        }\n"
2800 "        if (readwrite && readonly) {\n"
2801 "            fprintf(stderr, \"Only one of \\(aq%s\\(aq and \\(aq%s\\(aq can "
2802 "be \"\n"
2803 "                    \"specified\\en\", token[RO_OPT], token[RW_OPT]);\n"
2804 "            errfnd = 1;\n"
2805 "        }\n"
2806 "        break;\n"
2807 msgstr ""
2808
2809 #. type: Plain text
2810 #: build/C/man3/getsubopt.3:219
2811 #, no-wrap
2812 msgid ""
2813 "        default:\n"
2814 "            errfnd = 1;\n"
2815 "        }\n"
2816 "    }\n"
2817 msgstr ""
2818
2819 #. type: Plain text
2820 #: build/C/man3/getsubopt.3:226
2821 #, no-wrap
2822 msgid ""
2823 "    if (errfnd || argc == 1) {\n"
2824 "        fprintf(stderr, \"\\enUsage: %s -o E<lt>suboptstringE<gt>\\en\", "
2825 "argv[0]);\n"
2826 "        fprintf(stderr, \"suboptions are \\(aqro\\(aq, \\(aqrw\\(aq, \"\n"
2827 "                \"and \\(aqname=E<lt>valueE<gt>\\(aq\\en\");\n"
2828 "        exit(EXIT_FAILURE);\n"
2829 "    }\n"
2830 msgstr ""
2831
2832 #. type: Plain text
2833 #: build/C/man3/getsubopt.3:228
2834 #, no-wrap
2835 msgid "    /* Remainder of program... */\n"
2836 msgstr ""
2837
2838 #. type: Plain text
2839 #: build/C/man3/getsubopt.3:234
2840 msgid "B<getopt>(3)"
2841 msgstr ""
2842
2843 #. type: TH
2844 #: build/C/man3/malloc.3:33
2845 #, no-wrap
2846 msgid "MALLOC"
2847 msgstr ""
2848
2849 #. type: TH
2850 #: build/C/man3/malloc.3:33
2851 #, no-wrap
2852 msgid "2014-05-21"
2853 msgstr ""
2854
2855 #. type: Plain text
2856 #: build/C/man3/malloc.3:36
2857 msgid "malloc, free, calloc, realloc - allocate and free dynamic memory"
2858 msgstr ""
2859
2860 #. type: Plain text
2861 #: build/C/man3/malloc.3:44
2862 #, no-wrap
2863 msgid ""
2864 "B<void *malloc(size_t >I<size>B<);>\n"
2865 "B<void free(void >I<*ptr>B<);>\n"
2866 "B<void *calloc(size_t >I<nmemb>B<, size_t >I<size>B<);>\n"
2867 "B<void *realloc(void >I<*ptr>B<, size_t >I<size>B<);>\n"
2868 msgstr ""
2869
2870 #.  glibc does this:
2871 #. type: Plain text
2872 #: build/C/man3/malloc.3:61
2873 msgid ""
2874 "The B<malloc>()  function allocates I<size> bytes and returns a pointer to "
2875 "the allocated memory.  I<The memory is not initialized>.  If I<size> is 0, "
2876 "then B<malloc>()  returns either NULL, or a unique pointer value that can "
2877 "later be successfully passed to B<free>()."
2878 msgstr ""
2879
2880 #. type: Plain text
2881 #: build/C/man3/malloc.3:77
2882 msgid ""
2883 "The B<free>()  function frees the memory space pointed to by I<ptr>, which "
2884 "must have been returned by a previous call to B<malloc>(), B<calloc>()  or "
2885 "B<realloc>().  Otherwise, or if I<free(ptr)> has already been called before, "
2886 "undefined behavior occurs.  If I<ptr> is NULL, no operation is performed."
2887 msgstr ""
2888
2889 #.  glibc does this:
2890 #. type: Plain text
2891 #: build/C/man3/malloc.3:96
2892 msgid ""
2893 "The B<calloc>()  function allocates memory for an array of I<nmemb> elements "
2894 "of I<size> bytes each and returns a pointer to the allocated memory.  The "
2895 "memory is set to zero.  If I<nmemb> or I<size> is 0, then B<calloc>()  "
2896 "returns either NULL, or a unique pointer value that can later be "
2897 "successfully passed to B<free>()."
2898 msgstr ""
2899
2900 #. type: Plain text
2901 #: build/C/man3/malloc.3:132
2902 msgid ""
2903 "The B<realloc>()  function changes the size of the memory block pointed to "
2904 "by I<ptr> to I<size> bytes.  The contents will be unchanged in the range "
2905 "from the start of the region up to the minimum of the old and new sizes.  If "
2906 "the new size is larger than the old size, the added memory will I<not> be "
2907 "initialized.  If I<ptr> is NULL, then the call is equivalent to "
2908 "I<malloc(size)>, for all values of I<size>; if I<size> is equal to zero, and "
2909 "I<ptr> is not NULL, then the call is equivalent to I<free(ptr)>.  Unless "
2910 "I<ptr> is NULL, it must have been returned by an earlier call to "
2911 "B<malloc>(), B<calloc>()  or B<realloc>().  If the area pointed to was "
2912 "moved, a I<free(ptr)> is done."
2913 msgstr ""
2914
2915 #. type: Plain text
2916 #: build/C/man3/malloc.3:152
2917 msgid ""
2918 "The B<malloc>()  and B<calloc>()  functions return a pointer to the "
2919 "allocated memory, which is suitably aligned for any built-in type.  On "
2920 "error, these functions return NULL.  NULL may also be returned by a "
2921 "successful call to B<malloc>()  with a I<size> of zero, or by a successful "
2922 "call to B<calloc>()  with I<nmemb> or I<size> equal to zero."
2923 msgstr ""
2924
2925 #. type: Plain text
2926 #: build/C/man3/malloc.3:156
2927 msgid "The B<free>()  function returns no value."
2928 msgstr ""
2929
2930 #. type: Plain text
2931 #: build/C/man3/malloc.3:171
2932 msgid ""
2933 "The B<realloc>()  function returns a pointer to the newly allocated memory, "
2934 "which is suitably aligned for any built-in type and may be different from "
2935 "I<ptr>, or NULL if the request fails.  If I<size> was equal to 0, either "
2936 "NULL or a pointer suitable to be passed to B<free>()  is returned.  If "
2937 "B<realloc>()  fails, the original block is left untouched; it is not freed "
2938 "or moved."
2939 msgstr ""
2940
2941 #. type: Plain text
2942 #: build/C/man3/malloc.3:173
2943 msgid "C89, C99."
2944 msgstr ""
2945
2946 #. type: Plain text
2947 #: build/C/man3/malloc.3:189
2948 msgid ""
2949 "By default, Linux follows an optimistic memory allocation strategy.  This "
2950 "means that when B<malloc>()  returns non-NULL there is no guarantee that the "
2951 "memory really is available.  In case it turns out that the system is out of "
2952 "memory, one or more processes will be killed by the OOM killer.  For more "
2953 "information, see the description of I</proc/sys/vm/overcommit_memory> and "
2954 "I</proc/sys/vm/oom_adj> in B<proc>(5), and the Linux kernel source file "
2955 "I<Documentation/vm/overcommit-accounting>."
2956 msgstr ""
2957
2958 #. type: Plain text
2959 #: build/C/man3/malloc.3:210
2960 msgid ""
2961 "Normally, B<malloc>()  allocates memory from the heap, and adjusts the size "
2962 "of the heap as required, using B<sbrk>(2).  When allocating blocks of memory "
2963 "larger than B<MMAP_THRESHOLD> bytes, the glibc B<malloc>()  implementation "
2964 "allocates the memory as a private anonymous mapping using B<mmap>(2).  "
2965 "B<MMAP_THRESHOLD> is 128 kB by default, but is adjustable using "
2966 "B<mallopt>(3).  Allocations performed using B<mmap>(2)  are unaffected by "
2967 "the B<RLIMIT_DATA> resource limit (see B<getrlimit>(2))."
2968 msgstr ""
2969
2970 #. type: Plain text
2971 #: build/C/man3/malloc.3:228
2972 msgid ""
2973 "To avoid corruption in multithreaded applications, mutexes are used "
2974 "internally to protect the memory-management data structures employed by "
2975 "these functions.  In a multithreaded application in which threads "
2976 "simultaneously allocate and free memory, there could be contention for these "
2977 "mutexes.  To scalably handle memory allocation in multithreaded "
2978 "applications, glibc creates additional I<memory allocation arenas> if mutex "
2979 "contention is detected.  Each arena is a large region of memory that is "
2980 "internally allocated by the system (using B<brk>(2)  or B<mmap>(2)), and "
2981 "managed with its own mutexes."
2982 msgstr ""
2983
2984 #. type: Plain text
2985 #: build/C/man3/malloc.3:246
2986 msgid ""
2987 "The UNIX 98 standard requires B<malloc>(), B<calloc>(), and B<realloc>()  to "
2988 "set I<errno> to B<ENOMEM> upon failure.  Glibc assumes that this is done "
2989 "(and the glibc versions of these routines do this); if you use a private "
2990 "malloc implementation that does not set I<errno>, then certain library "
2991 "routines may fail without having a reason in I<errno>."
2992 msgstr ""
2993
2994 #. type: Plain text
2995 #: build/C/man3/malloc.3:255
2996 msgid ""
2997 "Crashes in B<malloc>(), B<calloc>(), B<realloc>(), or B<free>()  are almost "
2998 "always related to heap corruption, such as overflowing an allocated chunk or "
2999 "freeing the same pointer twice."
3000 msgstr ""
3001
3002 #. type: Plain text
3003 #: build/C/man3/malloc.3:261
3004 msgid ""
3005 "The B<malloc>()  implementation is tunable via environment variables; see "
3006 "B<mallopt>(3)  for details."
3007 msgstr ""
3008
3009 #. type: Plain text
3010 #: build/C/man3/malloc.3:285
3011 msgid ""
3012 "B<brk>(2), B<mmap>(2), B<alloca>(3), B<malloc_get_state>(3), "
3013 "B<malloc_info>(3), B<malloc_trim>(3), B<malloc_usable_size>(3), "
3014 "B<mallopt>(3), B<mcheck>(3), B<mtrace>(3), B<posix_memalign>(3)"
3015 msgstr ""
3016
3017 #. type: TH
3018 #: build/C/man3/mblen.3:16
3019 #, no-wrap
3020 msgid "MBLEN"
3021 msgstr ""
3022
3023 #. type: Plain text
3024 #: build/C/man3/mblen.3:19
3025 msgid "mblen - determine number of bytes in next multibyte character"
3026 msgstr ""
3027
3028 #. type: Plain text
3029 #: build/C/man3/mblen.3:24
3030 #, no-wrap
3031 msgid "B<int mblen(const char *>I<s>B<, size_t >I<n>B<);>\n"
3032 msgstr ""
3033
3034 #. type: Plain text
3035 #: build/C/man3/mblen.3:43
3036 msgid ""
3037 "If I<s> is not NULL, the B<mblen>()  function inspects at most I<n> bytes of "
3038 "the multibyte string starting at I<s> and extracts the next complete "
3039 "multibyte character.  It uses a static anonymous shift state known only to "
3040 "the B<mblen>()  function.  If the multibyte character is not the null wide "
3041 "character, it returns the number of bytes that were consumed from I<s>.  If "
3042 "the multibyte character is the null wide character, it returns 0."
3043 msgstr ""
3044
3045 #. type: Plain text
3046 #: build/C/man3/mblen.3:57
3047 msgid ""
3048 "If the I<n> bytes starting at I<s> do not contain a complete multibyte "
3049 "character, B<mblen>()  returns -1.  This can happen even if I<n> is greater "
3050 "than or equal to I<MB_CUR_MAX>, if the multibyte string contains redundant "
3051 "shift sequences."
3052 msgstr ""
3053
3054 #. type: Plain text
3055 #: build/C/man3/mblen.3:64
3056 msgid ""
3057 "If the multibyte string starting at I<s> contains an invalid multibyte "
3058 "sequence before the next complete character, B<mblen>()  also returns -1."
3059 msgstr ""
3060
3061 #.  The Dinkumware doc and the Single UNIX specification say this, but
3062 #.  glibc doesn't implement this.
3063 #. type: Plain text
3064 #: build/C/man3/mblen.3:75
3065 msgid ""
3066 "If I<s> is NULL, the B<mblen>()  function resets the shift state, known to "
3067 "only this function, to the initial state, and returns nonzero if the "
3068 "encoding has nontrivial shift state, or zero if the encoding is stateless."
3069 msgstr ""
3070
3071 #. type: Plain text
3072 #: build/C/man3/mblen.3:87
3073 msgid ""
3074 "The B<mblen>()  function returns the number of bytes parsed from the "
3075 "multibyte sequence starting at I<s>, if a non-null wide character was "
3076 "recognized.  It returns 0, if a null wide character was recognized.  It "
3077 "returns -1, if an invalid multibyte sequence was encountered or if it "
3078 "couldn't parse a complete multibyte character."
3079 msgstr ""
3080
3081 #. type: Plain text
3082 #: build/C/man3/mblen.3:92
3083 msgid "The B<mblen>()  function is not thread-safe."
3084 msgstr ""
3085
3086 #. type: Plain text
3087 #: build/C/man3/mblen.3:94 build/C/man3/mbstowcs.3:96 build/C/man3/mbtowc.3:115 build/C/man3/wcstombs.3:91 build/C/man3/wctomb.3:91
3088 msgid "C99."
3089 msgstr ""
3090
3091 #. type: Plain text
3092 #: build/C/man3/mblen.3:101
3093 msgid ""
3094 "The behavior of B<mblen>()  depends on the B<LC_CTYPE> category of the "
3095 "current locale."
3096 msgstr ""
3097
3098 #. type: Plain text
3099 #: build/C/man3/mblen.3:106
3100 msgid ""
3101 "The function B<mbrlen>(3)  provides a better interface to the same "
3102 "functionality."
3103 msgstr ""
3104
3105 #. type: Plain text
3106 #: build/C/man3/mblen.3:108
3107 msgid "B<mbrlen>(3)"
3108 msgstr ""
3109
3110 #. type: TH
3111 #: build/C/man3/mbstowcs.3:18
3112 #, no-wrap
3113 msgid "MBSTOWCS"
3114 msgstr ""
3115
3116 #. type: TH
3117 #: build/C/man3/mbstowcs.3:18 build/C/man3/mbtowc.3:16 build/C/man3/strtol.3:31 build/C/man3/strtoul.3:33 build/C/man3/wcstombs.3:16 build/C/man3/wctomb.3:16
3118 #, no-wrap
3119 msgid "2014-03-18"
3120 msgstr ""
3121
3122 #. type: Plain text
3123 #: build/C/man3/mbstowcs.3:21
3124 msgid "mbstowcs - convert a multibyte string to a wide-character string"
3125 msgstr ""
3126
3127 #. type: Plain text
3128 #: build/C/man3/mbstowcs.3:26
3129 #, no-wrap
3130 msgid ""
3131 "B<size_t mbstowcs(wchar_t *>I<dest>B<, const char *>I<src>B<, size_t "
3132 ">I<n>B<);>\n"
3133 msgstr ""
3134
3135 #. type: Plain text
3136 #: build/C/man3/mbstowcs.3:45
3137 msgid ""
3138 "If I<dest> is not NULL, the B<mbstowcs>()  function converts the multibyte "
3139 "string I<src> to a wide-character string starting at I<dest>.  At most I<n> "
3140 "wide characters are written to I<dest>.  The conversion starts in the "
3141 "initial state.  The conversion can stop for three reasons:"
3142 msgstr ""
3143
3144 #. type: IP
3145 #: build/C/man3/mbstowcs.3:45
3146 #, no-wrap
3147 msgid "1."
3148 msgstr ""
3149
3150 #. type: Plain text
3151 #: build/C/man3/mbstowcs.3:50
3152 msgid ""
3153 "An invalid multibyte sequence has been encountered.  In this case, "
3154 "I<(size_t)\\ -1> is returned."
3155 msgstr ""
3156
3157 #. type: IP
3158 #: build/C/man3/mbstowcs.3:50
3159 #, no-wrap
3160 msgid "2."
3161 msgstr ""
3162
3163 #. type: Plain text
3164 #: build/C/man3/mbstowcs.3:58
3165 msgid ""
3166 "I<n> non-L\\(aq\\e0\\(aq wide characters have been stored at I<dest>.  In "
3167 "this case, the number of wide characters written to I<dest> is returned, but "
3168 "the shift state at this point is lost."
3169 msgstr ""
3170
3171 #. type: IP
3172 #: build/C/man3/mbstowcs.3:58
3173 #, no-wrap
3174 msgid "3."
3175 msgstr ""
3176
3177 #. type: Plain text
3178 #: build/C/man3/mbstowcs.3:64
3179 msgid ""
3180 "The multibyte string has been completely converted, including the "
3181 "terminating null wide character (\\(aq\\e0\\(aq).  In this case, the number "
3182 "of wide characters written to I<dest>, excluding the terminating null wide "
3183 "character, is returned."
3184 msgstr ""
3185
3186 #. type: Plain text
3187 #: build/C/man3/mbstowcs.3:70
3188 msgid ""
3189 "The programmer must ensure that there is room for at least I<n> wide "
3190 "characters at I<dest>."
3191 msgstr ""
3192
3193 #. type: Plain text
3194 #: build/C/man3/mbstowcs.3:78
3195 msgid ""
3196 "If I<dest> is NULL, I<n> is ignored, and the conversion proceeds as above, "
3197 "except that the converted wide characters are not written out to memory, and "
3198 "that no length limit exists."
3199 msgstr ""
3200
3201 #. type: Plain text
3202 #: build/C/man3/mbstowcs.3:84
3203 msgid ""
3204 "In order to avoid the case 2 above, the programmer should make sure I<n> is "
3205 "greater than or equal to I<mbstowcs(NULL,src,0)+1>."
3206 msgstr ""
3207
3208 #. type: Plain text
3209 #: build/C/man3/mbstowcs.3:94
3210 msgid ""
3211 "The B<mbstowcs>()  function returns the number of wide characters that make "
3212 "up the converted part of the wide-character string, not including the "
3213 "terminating null wide character.  If an invalid multibyte sequence was "
3214 "encountered, I<(size_t)\\ -1> is returned."
3215 msgstr ""
3216
3217 #. type: Plain text
3218 #: build/C/man3/mbstowcs.3:103
3219 msgid ""
3220 "The behavior of B<mbstowcs>()  depends on the B<LC_CTYPE> category of the "
3221 "current locale."
3222 msgstr ""
3223
3224 #. type: Plain text
3225 #: build/C/man3/mbstowcs.3:108
3226 msgid ""
3227 "The function B<mbsrtowcs>(3)  provides a better interface to the same "
3228 "functionality."
3229 msgstr ""
3230
3231 #. type: Plain text
3232 #: build/C/man3/mbstowcs.3:113
3233 msgid ""
3234 "The program below illustrates the use of B<mbstowcs>(), as well as some of "
3235 "the wide character classification functions.  An example run is the "
3236 "following:"
3237 msgstr ""
3238
3239 #. type: Plain text
3240 #: build/C/man3/mbstowcs.3:120
3241 #, no-wrap
3242 msgid ""
3243 "$ ./t_mbstowcs de_DE.UTF-8 Grüße!\n"
3244 "Length of source string (excluding terminator):\n"
3245 "    8 bytes\n"
3246 "    6 multibyte characters\n"
3247 msgstr ""
3248
3249 #. type: Plain text
3250 #: build/C/man3/mbstowcs.3:128
3251 #, no-wrap
3252 msgid ""
3253 "Wide character string is: Grüße! (6 characters)\n"
3254 "    G alpha upper\n"
3255 "    r alpha lower\n"
3256 "    Ã¼ alpha lower\n"
3257 "    ÃŸ alpha lower\n"
3258 "    e alpha lower\n"
3259 "    ! !alpha\n"
3260 msgstr ""
3261
3262 #. type: SS
3263 #: build/C/man3/mbstowcs.3:130 build/C/man3/strtol.3:248
3264 #, no-wrap
3265 msgid "Program source"
3266 msgstr ""
3267
3268 #. type: Plain text
3269 #: build/C/man3/mbstowcs.3:137
3270 #, no-wrap
3271 msgid ""
3272 "#include E<lt>locale.hE<gt>\n"
3273 "#include E<lt>wchar.hE<gt>\n"
3274 "#include E<lt>stdio.hE<gt>\n"
3275 "#include E<lt>string.hE<gt>\n"
3276 "#include E<lt>stdlib.hE<gt>\n"
3277 msgstr ""
3278
3279 #. type: Plain text
3280 #: build/C/man3/mbstowcs.3:144
3281 #, no-wrap
3282 msgid ""
3283 "int\n"
3284 "main(int argc, char *argv[])\n"
3285 "{\n"
3286 "    size_t mbslen;      /* Number of multibyte characters in source */\n"
3287 "    wchar_t *wcs;       /* Pointer to converted wide character string */\n"
3288 "    wchar_t *wp;\n"
3289 msgstr ""
3290
3291 #. type: Plain text
3292 #: build/C/man3/mbstowcs.3:149
3293 #, no-wrap
3294 msgid ""
3295 "    if (argc E<lt> 3) {\n"
3296 "        fprintf(stderr, \"Usage: %s E<lt>localeE<gt> E<lt>stringE<gt>\\en\", "
3297 "argv[0]);\n"
3298 "        exit(EXIT_FAILURE);\n"
3299 "    }\n"
3300 msgstr ""
3301
3302 #. type: Plain text
3303 #: build/C/man3/mbstowcs.3:151
3304 #, no-wrap
3305 msgid "    /* Apply the specified locale */\n"
3306 msgstr ""
3307
3308 #. type: Plain text
3309 #: build/C/man3/mbstowcs.3:156
3310 #, no-wrap
3311 msgid ""
3312 "    if (setlocale(LC_ALL, argv[1]) == NULL) {\n"
3313 "        perror(\"setlocale\");\n"
3314 "        exit(EXIT_FAILURE);\n"
3315 "    }\n"
3316 msgstr ""
3317
3318 #. type: Plain text
3319 #: build/C/man3/mbstowcs.3:159
3320 #, no-wrap
3321 msgid ""
3322 "    /* Calculate the length required to hold argv[2] converted to\n"
3323 "       a wide character string */\n"
3324 msgstr ""
3325
3326 #. type: Plain text
3327 #: build/C/man3/mbstowcs.3:165
3328 #, no-wrap
3329 msgid ""
3330 "    mbslen = mbstowcs(NULL, argv[2], 0);\n"
3331 "    if (mbslen == (size_t) -1) {\n"
3332 "        perror(\"mbstowcs\");\n"
3333 "        exit(EXIT_FAILURE);\n"
3334 "    }\n"
3335 msgstr ""
3336
3337 #. type: Plain text
3338 #: build/C/man3/mbstowcs.3:167
3339 #, no-wrap
3340 msgid "    /* Describe the source string to the user */\n"
3341 msgstr ""
3342
3343 #. type: Plain text
3344 #: build/C/man3/mbstowcs.3:171
3345 #, no-wrap
3346 msgid ""
3347 "    printf(\"Length of source string (excluding terminator):\\en\");\n"
3348 "    printf(\"    %zu bytes\\en\", strlen(argv[2]));\n"
3349 "    printf(\"    %zu multibyte characters\\en\\en\", mbslen);\n"
3350 msgstr ""
3351
3352 #. type: Plain text
3353 #: build/C/man3/mbstowcs.3:174
3354 #, no-wrap
3355 msgid ""
3356 "    /* Allocate wide character string of the desired size.  Add 1\n"
3357 "       to allow for terminating null wide character (L\\(aq\\e0\\(aq). */\n"
3358 msgstr ""
3359
3360 #. type: Plain text
3361 #: build/C/man3/mbstowcs.3:180
3362 #, no-wrap
3363 msgid ""
3364 "    wcs = calloc(mbslen + 1, sizeof(wchar_t));\n"
3365 "    if (wcs == NULL) {\n"
3366 "        perror(\"calloc\");\n"
3367 "        exit(EXIT_FAILURE);\n"
3368 "    }\n"
3369 msgstr ""
3370
3371 #. type: Plain text
3372 #: build/C/man3/mbstowcs.3:183
3373 #, no-wrap
3374 msgid ""
3375 "    /* Convert the multibyte character string in argv[2] to a\n"
3376 "       wide character string */\n"
3377 msgstr ""
3378
3379 #. type: Plain text
3380 #: build/C/man3/mbstowcs.3:188
3381 #, no-wrap
3382 msgid ""
3383 "    if (mbstowcs(wcs, argv[2], mbslen + 1) == (size_t) -1) {\n"
3384 "        perror(\"mbstowcs\");\n"
3385 "        exit(EXIT_FAILURE);\n"
3386 "    }\n"
3387 msgstr ""
3388
3389 #. type: Plain text
3390 #: build/C/man3/mbstowcs.3:191
3391 #, no-wrap
3392 msgid ""
3393 "    printf(\"Wide character string is: %ls (%zu characters)\\en\",\n"
3394 "            wcs, mbslen);\n"
3395 msgstr ""
3396
3397 #. type: Plain text
3398 #: build/C/man3/mbstowcs.3:194
3399 #, no-wrap
3400 msgid ""
3401 "    /* Now do some inspection of the classes of the characters in\n"
3402 "       the wide character string */\n"
3403 msgstr ""
3404
3405 #. type: Plain text
3406 #: build/C/man3/mbstowcs.3:197
3407 #, no-wrap
3408 msgid ""
3409 "    for (wp = wcs; *wp != 0; wp++) {\n"
3410 "        printf(\"    %lc \", (wint_t) *wp);\n"
3411 msgstr ""
3412
3413 #. type: Plain text
3414 #: build/C/man3/mbstowcs.3:201
3415 #, no-wrap
3416 msgid ""
3417 "        if (!iswalpha(*wp))\n"
3418 "            printf(\"!\");\n"
3419 "        printf(\"alpha \");\n"
3420 msgstr ""
3421
3422 #. type: Plain text
3423 #: build/C/man3/mbstowcs.3:205
3424 #, no-wrap
3425 msgid ""
3426 "        if (iswalpha(*wp)) {\n"
3427 "            if (iswupper(*wp))\n"
3428 "                printf(\"upper \");\n"
3429 msgstr ""
3430
3431 #. type: Plain text
3432 #: build/C/man3/mbstowcs.3:209
3433 #, no-wrap
3434 msgid ""
3435 "            if (iswlower(*wp))\n"
3436 "                printf(\"lower \");\n"
3437 "        }\n"
3438 msgstr ""
3439
3440 #. type: Plain text
3441 #: build/C/man3/mbstowcs.3:212
3442 #, no-wrap
3443 msgid ""
3444 "        putchar(\\(aq\\en\\(aq);\n"
3445 "    }\n"
3446 msgstr ""
3447
3448 #. type: Plain text
3449 #: build/C/man3/mbstowcs.3:222
3450 msgid "B<mblen>(3), B<mbsrtowcs>(3), B<mbtowc>(3), B<wctomb>(3), B<wcstombs>(3)"
3451 msgstr ""
3452
3453 #. type: TH
3454 #: build/C/man3/mbtowc.3:16
3455 #, no-wrap
3456 msgid "MBTOWC"
3457 msgstr ""
3458
3459 #. type: Plain text
3460 #: build/C/man3/mbtowc.3:19
3461 msgid "mbtowc - convert a multibyte sequence to a wide character"
3462 msgstr ""
3463
3464 #. type: Plain text
3465 #: build/C/man3/mbtowc.3:24
3466 #, no-wrap
3467 msgid "B<int mbtowc(wchar_t *>I<pwc>B<, const char *>I<s>B<, size_t >I<n>B<);>\n"
3468 msgstr ""
3469
3470 #. type: Plain text
3471 #: build/C/man3/mbtowc.3:50
3472 msgid ""
3473 "The main case for this function is when I<s> is not NULL and I<pwc> is not "
3474 "NULL.  In this case, the B<mbtowc>()  function inspects at most I<n> bytes "
3475 "of the multibyte string starting at I<s>, extracts the next complete "
3476 "multibyte character, converts it to a wide character and stores it at "
3477 "I<*pwc>.  It updates an internal shift state known only to the B<mbtowc>()  "
3478 "function.  If I<s> does not point to a null byte (\\(aq\\e0\\(aq), it "
3479 "returns the number of bytes that were consumed from I<s>, otherwise it "
3480 "returns 0."
3481 msgstr ""
3482
3483 #. type: Plain text
3484 #: build/C/man3/mbtowc.3:64
3485 msgid ""
3486 "If the I<n> bytes starting at I<s> do not contain a complete multibyte "
3487 "character, or if they contain an invalid multibyte sequence, B<mbtowc>()  "
3488 "returns -1.  This can happen even if I<n> E<gt>= I<MB_CUR_MAX>, if the "
3489 "multibyte string contains redundant shift sequences."
3490 msgstr ""
3491
3492 #. type: Plain text
3493 #: build/C/man3/mbtowc.3:74
3494 msgid ""
3495 "A different case is when I<s> is not NULL but I<pwc> is NULL.  In this case, "
3496 "the B<mbtowc>()  function behaves as above, except that it does not store "
3497 "the converted wide character in memory."
3498 msgstr ""
3499
3500 #.  The Dinkumware doc and the Single UNIX specification say this, but
3501 #.  glibc doesn't implement this.
3502 #. type: Plain text
3503 #: build/C/man3/mbtowc.3:93
3504 msgid ""
3505 "A third case is when I<s> is NULL.  In this case, I<pwc> and I<n> are "
3506 "ignored.  The B<mbtowc>()  function resets the shift state, only known to "
3507 "this function, to the initial state, and returns nonzero if the encoding has "
3508 "nontrivial shift state, or zero if the encoding is stateless."
3509 msgstr ""
3510
3511 #. type: Plain text
3512 #: build/C/man3/mbtowc.3:105
3513 msgid ""
3514 "If I<s> is not NULL, the B<mbtowc>()  function returns the number of "
3515 "consumed bytes starting at I<s>, or 0 if I<s> points to a null byte, or -1 "
3516 "upon failure."
3517 msgstr ""
3518
3519 #. type: Plain text
3520 #: build/C/man3/mbtowc.3:113
3521 msgid ""
3522 "If I<s> is NULL, the B<mbtowc>()  function returns nonzero if the encoding "
3523 "has nontrivial shift state, or zero if the encoding is stateless."
3524 msgstr ""
3525
3526 #. type: Plain text
3527 #: build/C/man3/mbtowc.3:122
3528 msgid ""
3529 "The behavior of B<mbtowc>()  depends on the B<LC_CTYPE> category of the "
3530 "current locale."
3531 msgstr ""
3532
3533 #. type: Plain text
3534 #: build/C/man3/mbtowc.3:128
3535 msgid ""
3536 "This function is not multithread safe.  The function B<mbrtowc>(3)  provides "
3537 "a better interface to the same functionality."
3538 msgstr ""
3539
3540 #. type: Plain text
3541 #: build/C/man3/mbtowc.3:135
3542 msgid ""
3543 "B<MB_CUR_MAX>(3), B<mblen>(3), B<mbrtowc>(3), B<mbstowcs>(3), B<wctomb>(3), "
3544 "B<wcstombs>(3)"
3545 msgstr ""
3546
3547 #. type: TH
3548 #: build/C/man3/mkdtemp.3:26
3549 #, no-wrap
3550 msgid "MKDTEMP"
3551 msgstr ""
3552
3553 #. type: TH
3554 #: build/C/man3/mkdtemp.3:26
3555 #, no-wrap
3556 msgid "2010-09-26"
3557 msgstr ""
3558
3559 #. type: Plain text
3560 #: build/C/man3/mkdtemp.3:29
3561 msgid "mkdtemp - create a unique temporary directory"
3562 msgstr ""
3563
3564 #. type: Plain text
3565 #: build/C/man3/mkdtemp.3:34
3566 #, no-wrap
3567 msgid "B<char *mkdtemp(char *>I<template>B<);>\n"
3568 msgstr ""
3569
3570 #. type: Plain text
3571 #: build/C/man3/mkdtemp.3:42
3572 msgid "B<mkdtemp>():"
3573 msgstr ""
3574
3575 #. type: Plain text
3576 #: build/C/man3/mkdtemp.3:47
3577 msgid "_BSD_SOURCE"
3578 msgstr ""
3579
3580 #. type: Plain text
3581 #: build/C/man3/mkdtemp.3:49
3582 msgid "|| /* Since glibc 2.10: */"
3583 msgstr ""
3584
3585 #. type: Plain text
3586 #: build/C/man3/mkdtemp.3:51
3587 msgid "(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)"
3588 msgstr ""
3589
3590 #. type: Plain text
3591 #: build/C/man3/mkdtemp.3:68
3592 msgid ""
3593 "The B<mkdtemp>()  function generates a uniquely named temporary directory "
3594 "from I<template>.  The last six characters of I<template> must be XXXXXX and "
3595 "these are replaced with a string that makes the directory name unique.  The "
3596 "directory is then created with permissions 0700.  Since it will be modified, "
3597 "I<template> must not be a string constant, but should be declared as a "
3598 "character array."
3599 msgstr ""
3600
3601 #. type: Plain text
3602 #: build/C/man3/mkdtemp.3:75
3603 msgid ""
3604 "The B<mkdtemp>()  function returns a pointer to the modified template string "
3605 "on success, and NULL on failure, in which case I<errno> is set "
3606 "appropriately."
3607 msgstr ""
3608
3609 #. type: TP
3610 #: build/C/man3/mkdtemp.3:76 build/C/man3/mkstemp.3:166 build/C/man3/mktemp.3:92 build/C/man3/random.3:141 build/C/man3/random.3:148 build/C/man3/random_r.3:106 build/C/man3/random_r.3:110 build/C/man3/random_r.3:119 build/C/man3/setenv.3:120 build/C/man3/strtol.3:145 build/C/man3/strtoul.3:149
3611 #, no-wrap
3612 msgid "B<EINVAL>"
3613 msgstr ""
3614
3615 #. type: Plain text
3616 #: build/C/man3/mkdtemp.3:80
3617 msgid ""
3618 "The last six characters of I<template> were not XXXXXX.  Now I<template> is "
3619 "unchanged."
3620 msgstr ""
3621
3622 #. type: Plain text
3623 #: build/C/man3/mkdtemp.3:84
3624 msgid "Also see B<mkdir>(2)  for other possible values for I<errno>."
3625 msgstr ""
3626
3627 #. type: Plain text
3628 #: build/C/man3/mkdtemp.3:86
3629 msgid "Available since glibc 2.1.91."
3630 msgstr ""
3631
3632 #.  As at 2006, this function is being considered for a revision of POSIX.1
3633 #.  Also in NetBSD 1.4.
3634 #. type: Plain text
3635 #: build/C/man3/mkdtemp.3:91
3636 msgid "POSIX.1-2008.  This function is present on the BSDs."
3637 msgstr ""
3638
3639 #. type: Plain text
3640 #: build/C/man3/mkdtemp.3:98
3641 msgid ""
3642 "B<mkdir>(2), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3), "
3643 "B<tmpnam>(3)"
3644 msgstr ""
3645
3646 #. type: TH
3647 #: build/C/man3/mkstemp.3:35
3648 #, no-wrap
3649 msgid "MKSTEMP"
3650 msgstr ""
3651
3652 #. type: TH
3653 #: build/C/man3/mkstemp.3:35
3654 #, no-wrap
3655 msgid "2013-12-28"
3656 msgstr ""
3657
3658 #. type: Plain text
3659 #: build/C/man3/mkstemp.3:38
3660 msgid "mkstemp, mkostemp, mkstemps, mkostemps - create a unique temporary file"
3661 msgstr ""
3662
3663 #. type: Plain text
3664 #: build/C/man3/mkstemp.3:43
3665 #, no-wrap
3666 msgid "B<int mkstemp(char *>I<template>B<);>\n"
3667 msgstr ""
3668
3669 #. type: Plain text
3670 #: build/C/man3/mkstemp.3:45
3671 #, no-wrap
3672 msgid "B<int mkostemp(char *>I<template>B<, int >I<flags>B<);>\n"
3673 msgstr ""
3674
3675 #. type: Plain text
3676 #: build/C/man3/mkstemp.3:47
3677 #, no-wrap
3678 msgid "B<int mkstemps(char *>I<template>B<, int >I<suffixlen>B<);>\n"
3679 msgstr ""
3680
3681 #. type: Plain text
3682 #: build/C/man3/mkstemp.3:49
3683 #, no-wrap
3684 msgid ""
3685 "B<int mkostemps(char *>I<template>B<, int >I<suffixlen>B<, int "
3686 ">I<flags>B<);>\n"
3687 msgstr ""
3688
3689 #. type: Plain text
3690 #: build/C/man3/mkstemp.3:57
3691 msgid "B<mkstemp>():"
3692 msgstr ""
3693
3694 #. type: Plain text
3695 #: build/C/man3/mkstemp.3:62 build/C/man3/mktemp.3:63
3696 msgid ""
3697 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
3698 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
3699 msgstr ""
3700
3701 #. type: Plain text
3702 #: build/C/man3/mkstemp.3:64
3703 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
3704 msgstr ""
3705
3706 #. type: Plain text
3707 #: build/C/man3/mkstemp.3:70
3708 msgid "B<mkostemp>(): _GNU_SOURCE"
3709 msgstr ""
3710
3711 #. type: Plain text
3712 #: build/C/man3/mkstemp.3:73
3713 msgid "B<mkstemps>(): _BSD_SOURCE || _SVID_SOURCE"
3714 msgstr ""
3715
3716 #. type: Plain text
3717 #: build/C/man3/mkstemp.3:76
3718 msgid "B<mkostemps>(): _GNU_SOURCE"
3719 msgstr ""
3720
3721 #. type: Plain text
3722 #: build/C/man3/mkstemp.3:83
3723 msgid ""
3724 "The B<mkstemp>()  function generates a unique temporary filename from "
3725 "I<template>, creates and opens the file, and returns an open file descriptor "
3726 "for the file."
3727 msgstr ""
3728
3729 #. type: Plain text
3730 #: build/C/man3/mkstemp.3:91
3731 msgid ""
3732 "The last six characters of I<template> must be \"XXXXXX\" and these are "
3733 "replaced with a string that makes the filename unique.  Since it will be "
3734 "modified, I<template> must not be a string constant, but should be declared "
3735 "as a character array."
3736 msgstr ""
3737
3738 #. type: Plain text
3739 #: build/C/man3/mkstemp.3:99
3740 msgid ""
3741 "The file is created with permissions 0600, that is, read plus write for "
3742 "owner only.  The returned file descriptor provides both read and write "
3743 "access to the file.  The file is opened with the B<open>(2)  B<O_EXCL> flag, "
3744 "guaranteeing that the caller is the process that creates the file."
3745 msgstr ""
3746
3747 #.  Reportedly, FreeBSD
3748 #. type: Plain text
3749 #: build/C/man3/mkstemp.3:130
3750 msgid ""
3751 "The B<mkostemp>()  function is like B<mkstemp>(), with the difference that "
3752 "the following bits\\(emwith the same meaning as for B<open>(2)\\(emmay be "
3753 "specified in I<flags>: B<O_APPEND>, B<O_CLOEXEC>, and B<O_SYNC>.  Note that "
3754 "when creating the file, B<mkostemp>()  includes the values B<O_RDWR>, "
3755 "B<O_CREAT>, and B<O_EXCL> in the I<flags> argument given to B<open>(2); "
3756 "including these values in the I<flags> argument given to B<mkostemp>()  is "
3757 "unnecessary, and produces errors on some systems."
3758 msgstr ""
3759
3760 #. type: Plain text
3761 #: build/C/man3/mkstemp.3:146
3762 msgid ""
3763 "The B<mkstemps>()  function is like B<mkstemp>(), except that the string in "
3764 "I<template> contains a suffix of I<suffixlen> characters.  Thus, I<template> "
3765 "is of the form I<prefixXXXXXXsuffix>, and the string XXXXXX is modified as "
3766 "for B<mkstemp>()."
3767 msgstr ""
3768
3769 #. type: Plain text
3770 #: build/C/man3/mkstemp.3:155
3771 msgid ""
3772 "The B<mkostemps>()  function is to B<mkstemps>()  as B<mkostemp>()  is to "
3773 "B<mkstemp>()."
3774 msgstr ""
3775
3776 #. type: Plain text
3777 #: build/C/man3/mkstemp.3:161
3778 msgid ""
3779 "On success, these functions return the file descriptor of the temporary "
3780 "file.  On error, -1 is returned, and I<errno> is set appropriately."
3781 msgstr ""
3782
3783 #. type: TP
3784 #: build/C/man3/mkstemp.3:162
3785 #, no-wrap
3786 msgid "B<EEXIST>"
3787 msgstr ""
3788
3789 #. type: Plain text
3790 #: build/C/man3/mkstemp.3:166
3791 msgid ""
3792 "Could not create a unique temporary filename.  Now the contents of "
3793 "I<template> are undefined."
3794 msgstr ""
3795
3796 #. type: Plain text
3797 #: build/C/man3/mkstemp.3:174
3798 msgid ""
3799 "For B<mkstemp>()  and B<mkostemp>(): The last six characters of I<template> "
3800 "were not XXXXXX; now I<template> is unchanged."
3801 msgstr ""
3802
3803 #. type: Plain text
3804 #: build/C/man3/mkstemp.3:185
3805 msgid ""
3806 "For B<mkstemps>()  and B<mkostemps>(): I<template> is less than I<(6 + "
3807 "suffixlen)> characters long, or the last 6 characters before the suffix in "
3808 "I<template> were not XXXXXX."
3809 msgstr ""
3810
3811 #. type: Plain text
3812 #: build/C/man3/mkstemp.3:188
3813 msgid ""
3814 "These functions may also fail with any of the errors described for "
3815 "B<open>(2)."
3816 msgstr ""
3817
3818 #. type: Plain text
3819 #: build/C/man3/mkstemp.3:195
3820 msgid ""
3821 "B<mkostemp>()  is available since glibc 2.7.  B<mkstemps>()  and "
3822 "B<mkostemps>()  are available since glibc 2.11."
3823 msgstr ""
3824
3825 #. type: Plain text
3826 #: build/C/man3/mkstemp.3:198
3827 msgid "B<mkstemp>(): 4.3BSD, POSIX.1-2001."
3828 msgstr ""
3829
3830 #.  mkstemps() appears to be at least on the BSDs, Mac OS X, Solaris,
3831 #.  and Tru64.
3832 #. type: Plain text
3833 #: build/C/man3/mkstemp.3:203
3834 msgid "B<mkstemps>(): unstandardized, but appears on several other systems."
3835 msgstr ""
3836
3837 #. type: Plain text
3838 #: build/C/man3/mkstemp.3:208
3839 msgid "B<mkostemp>()  and B<mkostemps>(): are glibc extensions."
3840 msgstr ""
3841
3842 #. type: Plain text
3843 #: build/C/man3/mkstemp.3:215
3844 msgid ""
3845 "In glibc versions 2.06 and earlier, the file is created with permissions "
3846 "0666, that is, read and write for all users.  This old behavior may be a "
3847 "security risk, especially since other UNIX flavors use 0600, and somebody "
3848 "might overlook this detail when porting programs.  POSIX.1-2008 adds a "
3849 "requirement that the file be created with mode 0600."
3850 msgstr ""
3851
3852 #. type: Plain text
3853 #: build/C/man3/mkstemp.3:226
3854 msgid ""
3855 "More generally, the POSIX specification of B<mkstemp>()  does not say "
3856 "anything about file modes, so the application should make sure its file mode "
3857 "creation mask (see B<umask>(2))  is set appropriately before calling "
3858 "B<mkstemp>()  (and B<mkostemp>())."
3859 msgstr ""
3860
3861 #. type: Plain text
3862 #: build/C/man3/mkstemp.3:233
3863 msgid ""
3864 "The prototype for B<mktemp>()  is in I<E<lt>unistd.hE<gt>> for libc4, libc5, "
3865 "glibc1; glibc2 follows POSIX.1 and has the prototype in "
3866 "I<E<lt>stdlib.hE<gt>>."
3867 msgstr ""
3868
3869 #. type: Plain text
3870 #: build/C/man3/mkstemp.3:239
3871 msgid "B<mkdtemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3), B<tmpnam>(3)"
3872 msgstr ""
3873
3874 #. type: TH
3875 #: build/C/man3/mktemp.3:34
3876 #, no-wrap
3877 msgid "MKTEMP"
3878 msgstr ""
3879
3880 #. type: TH
3881 #: build/C/man3/mktemp.3:34
3882 #, no-wrap
3883 msgid "2014-02-27"
3884 msgstr ""
3885
3886 #. type: Plain text
3887 #: build/C/man3/mktemp.3:37
3888 msgid "mktemp - make a unique temporary filename"
3889 msgstr ""
3890
3891 #. type: Plain text
3892 #: build/C/man3/mktemp.3:42
3893 #, no-wrap
3894 msgid "B<char *mktemp(char *>I<template>B<);>\n"
3895 msgstr ""
3896
3897 #. type: Plain text
3898 #: build/C/man3/mktemp.3:50
3899 msgid "B<mktemp>():"
3900 msgstr ""
3901
3902 #. type: Plain text
3903 #: build/C/man3/mktemp.3:59
3904 #, no-wrap
3905 msgid ""
3906 "_BSD_SOURCE || _SVID_SOURCE ||\n"
3907 "    (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
3908 "         _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
3909 "    !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
3910 msgstr ""
3911
3912 #. type: Plain text
3913 #: build/C/man3/mktemp.3:69
3914 msgid "I<Never use this function>; see NOTES."
3915 msgstr ""
3916
3917 #. type: Plain text
3918 #: build/C/man3/mktemp.3:80
3919 msgid ""
3920 "The B<mktemp>()  function generates a unique temporary filename from "
3921 "I<template>.  The last six characters of I<template> must be XXXXXX and "
3922 "these are replaced with a string that makes the filename unique.  Since it "
3923 "will be modified, I<template> must not be a string constant, but should be "
3924 "declared as a character array."
3925 msgstr ""
3926
3927 #. type: Plain text
3928 #: build/C/man3/mktemp.3:91
3929 msgid ""
3930 "The B<mktemp>()  function always returns I<template>.  If a unique name was "
3931 "created, the last six bytes of I<template> will have been modified in such a "
3932 "way that the resulting name is unique (i.e., does not exist already)  If a "
3933 "unique name could not be created, I<template> is made an empty string, and "
3934 "I<errno> is set to indicate the error."
3935 msgstr ""
3936
3937 #. type: Plain text
3938 #: build/C/man3/mktemp.3:95
3939 msgid "The last six characters of I<template> were not XXXXXX."
3940 msgstr ""
3941
3942 #. type: Plain text
3943 #: build/C/man3/mktemp.3:99
3944 msgid ""
3945 "4.3BSD, POSIX.1-2001.  POSIX.1-2008 removes the specification of "
3946 "B<mktemp>()."
3947 msgstr ""
3948
3949 #. type: Plain text
3950 #: build/C/man3/mktemp.3:105
3951 msgid ""
3952 "The prototype is in I<E<lt>unistd.hE<gt>> for libc4, libc5, glibc1; glibc2 "
3953 "follows the Single UNIX Specification and has the prototype in "
3954 "I<E<lt>stdlib.hE<gt>>."
3955 msgstr ""
3956
3957 #. type: SH
3958 #: build/C/man3/mktemp.3:105 build/C/man3/random.3:189 build/C/man3/rpmatch.3:104 build/C/man3/setenv.3:144
3959 #, no-wrap
3960 msgid "BUGS"
3961 msgstr ""
3962
3963 #. type: Plain text
3964 #: build/C/man3/mktemp.3:118
3965 msgid ""
3966 "Never use B<mktemp>().  Some implementations follow 4.3BSD and replace "
3967 "XXXXXX by the current process ID and a single letter, so that at most 26 "
3968 "different names can be returned.  Since on the one hand the names are easy "
3969 "to guess, and on the other hand there is a race between testing whether the "
3970 "name exists and opening the file, every use of B<mktemp>()  is a security "
3971 "risk.  The race is avoided by B<mkstemp>(3)."
3972 msgstr ""
3973
3974 #. type: Plain text
3975 #: build/C/man3/mktemp.3:123
3976 msgid "B<mkstemp>(3), B<tempnam>(3), B<tmpfile>(3), B<tmpnam>(3)"
3977 msgstr ""
3978
3979 #. type: TH
3980 #: build/C/man3/on_exit.3:31
3981 #, no-wrap
3982 msgid "ON_EXIT"
3983 msgstr ""
3984
3985 #. type: Plain text
3986 #: build/C/man3/on_exit.3:34
3987 msgid "on_exit - register a function to be called at normal process termination"
3988 msgstr ""
3989
3990 #. type: Plain text
3991 #: build/C/man3/on_exit.3:39
3992 #, no-wrap
3993 msgid "B<int on_exit(void (*>I<function>B<)(int , void *), void *>I<arg>B<);>\n"
3994 msgstr ""
3995
3996 #. type: Plain text
3997 #: build/C/man3/on_exit.3:48
3998 msgid "B<on_exit>(): _BSD_SOURCE || _SVID_SOURCE"
3999 msgstr ""
4000
4001 #. type: Plain text
4002 #: build/C/man3/on_exit.3:66
4003 msgid ""
4004 "The B<on_exit>()  function registers the given I<function> to be called at "
4005 "normal process termination, whether via B<exit>(3)  or via return from the "
4006 "program's I<main>().  The I<function> is passed the status argument given to "
4007 "the last call to B<exit>(3)  and the I<arg> argument from B<on_exit>()."
4008 msgstr ""
4009
4010 #. type: Plain text
4011 #: build/C/man3/on_exit.3:81
4012 msgid ""
4013 "The B<on_exit>()  function returns the value 0 if successful; otherwise it "
4014 "returns a nonzero value."
4015 msgstr ""
4016
4017 #. type: Plain text
4018 #: build/C/man3/on_exit.3:88
4019 msgid ""
4020 "This function comes from SunOS 4, but is also present in libc4, libc5 and "
4021 "glibc.  It no longer occurs in Solaris (SunOS 5).  Avoid this function, and "
4022 "use the standard B<atexit>(3)  instead."
4023 msgstr ""
4024
4025 #. type: Plain text
4026 #: build/C/man3/on_exit.3:92
4027 msgid "B<_exit>(2), B<atexit>(3), B<exit>(3)"
4028 msgstr ""
4029
4030 #. type: TH
4031 #: build/C/man3/putenv.3:36
4032 #, no-wrap
4033 msgid "PUTENV"
4034 msgstr ""
4035
4036 #. type: TH
4037 #: build/C/man3/putenv.3:36
4038 #, no-wrap
4039 msgid "2013-04-19"
4040 msgstr ""
4041
4042 #. type: Plain text
4043 #: build/C/man3/putenv.3:39
4044 msgid "putenv - change or add an environment variable"
4045 msgstr ""
4046
4047 #.  Not: const char *
4048 #. type: Plain text
4049 #: build/C/man3/putenv.3:45
4050 #, no-wrap
4051 msgid "B<int putenv(char *>I<string>B<);>\n"
4052 msgstr ""
4053
4054 #. type: Plain text
4055 #: build/C/man3/putenv.3:54
4056 msgid "B<putenv>(): _SVID_SOURCE || _XOPEN_SOURCE"
4057 msgstr ""
4058
4059 #. type: Plain text
4060 #: build/C/man3/putenv.3:67
4061 msgid ""
4062 "The B<putenv>()  function adds or changes the value of environment "
4063 "variables.  The argument I<string> is of the form I<name>=I<value>.  If "
4064 "I<name> does not already exist in the environment, then I<string> is added "
4065 "to the environment.  If I<name> does exist, then the value of I<name> in the "
4066 "environment is changed to I<value>.  The string pointed to by I<string> "
4067 "becomes part of the environment, so altering the string changes the "
4068 "environment."
4069 msgstr ""
4070
4071 #. type: Plain text
4072 #: build/C/man3/putenv.3:75
4073 msgid ""
4074 "The B<putenv>()  function returns zero on success, or nonzero if an error "
4075 "occurs.  In the event of an error, I<errno> is set to indicate the cause."
4076 msgstr ""
4077
4078 #. type: TP
4079 #: build/C/man3/putenv.3:76 build/C/man3/setenv.3:125
4080 #, no-wrap
4081 msgid "B<ENOMEM>"
4082 msgstr ""
4083
4084 #. type: Plain text
4085 #: build/C/man3/putenv.3:79
4086 msgid "Insufficient space to allocate new environment."
4087 msgstr ""
4088
4089 #. type: Plain text
4090 #: build/C/man3/putenv.3:81
4091 msgid "SVr4, POSIX.1-2001, 4.3BSD."
4092 msgstr ""
4093
4094 #. type: Plain text
4095 #: build/C/man3/putenv.3:86
4096 msgid ""
4097 "The B<putenv>()  function is not required to be reentrant, and the one in "
4098 "libc4, libc5 and glibc 2.0 is not, but the glibc 2.1 version is."
4099 msgstr ""
4100
4101 #. type: Plain text
4102 #: build/C/man3/putenv.3:99
4103 msgid ""
4104 "Description for libc4, libc5, glibc: If the argument I<string> is of the "
4105 "form I<name>, and does not contain an \\(aq=\\(aq character, then the "
4106 "variable I<name> is removed from the environment.  If B<putenv>()  has to "
4107 "allocate a new array I<environ>, and the previous array was also allocated "
4108 "by B<putenv>(), then it will be freed.  In no case will the old storage "
4109 "associated to the environment variable itself be freed."
4110 msgstr ""
4111
4112 #. type: Plain text
4113 #: build/C/man3/putenv.3:115
4114 msgid ""
4115 "The libc4 and libc5 and glibc 2.1.2 versions conform to SUSv2: the pointer "
4116 "I<string> given to B<putenv>()  is used.  In particular, this string becomes "
4117 "part of the environment; changing it later will change the environment.  "
4118 "(Thus, it is an error is to call B<putenv>()  with an automatic variable as "
4119 "the argument, then return from the calling function while I<string> is still "
4120 "part of the environment.)  However, glibc 2.0-2.1.1 differs: a copy of the "
4121 "string is used.  On the one hand this causes a memory leak, and on the other "
4122 "hand it violates SUSv2.  This has been fixed in glibc 2.1.2."
4123 msgstr ""
4124
4125 #. type: Plain text
4126 #: build/C/man3/putenv.3:117
4127 msgid "The 4.4BSD version, like glibc 2.0, uses a copy."
4128 msgstr ""
4129
4130 #. type: Plain text
4131 #: build/C/man3/putenv.3:119
4132 msgid "SUSv2 removes the I<const> from the prototype, and so does glibc 2.1.3."
4133 msgstr ""
4134
4135 #. type: Plain text
4136 #: build/C/man3/putenv.3:125
4137 msgid "B<clearenv>(3), B<getenv>(3), B<setenv>(3), B<unsetenv>(3), B<environ>(7)"
4138 msgstr ""
4139
4140 #. type: TH
4141 #: build/C/man3/qecvt.3:28
4142 #, no-wrap
4143 msgid "QECVT"
4144 msgstr ""
4145
4146 #. type: TH
4147 #: build/C/man3/qecvt.3:28
4148 #, no-wrap
4149 msgid "2014-03-11"
4150 msgstr ""
4151
4152 #. type: Plain text
4153 #: build/C/man3/qecvt.3:31
4154 msgid "qecvt, qfcvt, qgcvt - convert a floating-point number to a string"
4155 msgstr ""
4156
4157 #. type: Plain text
4158 #: build/C/man3/qecvt.3:36
4159 msgid ""
4160 "B<char *qecvt(long double >I<number>B<, int >I<ndigits>B<, int "
4161 "*>I<decpt>B<,> B<int *>I<sign>B<);>"
4162 msgstr ""
4163
4164 #. type: Plain text
4165 #: build/C/man3/qecvt.3:39
4166 msgid ""
4167 "B<char *qfcvt(long double >I<number>B<, int >I<ndigits>B<, int "
4168 "*>I<decpt>B<,> B<int *>I<sign>B<);>"
4169 msgstr ""
4170
4171 #. type: Plain text
4172 #: build/C/man3/qecvt.3:41
4173 msgid "B<char *qgcvt(long double >I<number>B<, int >I<ndigit>B<, char *>I<buf>B<);>"
4174 msgstr ""
4175
4176 #. type: Plain text
4177 #: build/C/man3/qecvt.3:52
4178 msgid "B<qecvt>(), B<qfcvt>(), B<qgcvt>(): _SVID_SOURCE"
4179 msgstr ""
4180
4181 #. type: Plain text
4182 #: build/C/man3/qecvt.3:85
4183 msgid ""
4184 "The functions B<qecvt>(), B<qfcvt>()  and B<qgcvt>()  are identical to "
4185 "B<ecvt>(3), B<fcvt>(3)  and B<gcvt>(3)  respectively, except that they use a "
4186 "I<long double> argument I<number>.  See B<ecvt>(3)  and B<gcvt>(3)."
4187 msgstr ""
4188
4189 #. type: Plain text
4190 #: build/C/man3/qecvt.3:92
4191 msgid "The B<qecvt>()  and B<qfcvt>()  functions are not thread-safe."
4192 msgstr ""
4193
4194 #. type: Plain text
4195 #: build/C/man3/qecvt.3:96
4196 msgid "The B<qgcvt>()  function is thread-safe."
4197 msgstr ""
4198
4199 #. type: Plain text
4200 #: build/C/man3/qecvt.3:102
4201 msgid ""
4202 "SVr4.  Not seen in most common UNIX implementations, but occurs in SunOS.  "
4203 "Not supported by libc4 and libc5.  Supported by glibc."
4204 msgstr ""
4205
4206 #. type: Plain text
4207 #: build/C/man3/qecvt.3:107
4208 msgid "These functions are obsolete.  Instead, B<snprintf>(3)  is recommended."
4209 msgstr ""
4210
4211 #. type: Plain text
4212 #: build/C/man3/qecvt.3:112
4213 msgid "B<ecvt>(3), B<ecvt_r>(3), B<gcvt>(3), B<sprintf>(3)"
4214 msgstr ""
4215
4216 #. type: TH
4217 #: build/C/man3/rand.3:41
4218 #, no-wrap
4219 msgid "RAND"
4220 msgstr ""
4221
4222 #. type: TH
4223 #: build/C/man3/rand.3:41
4224 #, no-wrap
4225 msgid "2014-01-18"
4226 msgstr ""
4227
4228 #. type: Plain text
4229 #: build/C/man3/rand.3:44
4230 msgid "rand, rand_r, srand - pseudo-random number generator"
4231 msgstr ""
4232
4233 #. type: Plain text
4234 #: build/C/man3/rand.3:49
4235 #, no-wrap
4236 msgid "B<int rand(void);>\n"
4237 msgstr ""
4238
4239 #. type: Plain text
4240 #: build/C/man3/rand.3:51
4241 #, no-wrap
4242 msgid "B<int rand_r(unsigned int *>I<seedp>B<);>\n"
4243 msgstr ""
4244
4245 #. type: Plain text
4246 #: build/C/man3/rand.3:53
4247 #, no-wrap
4248 msgid "B<void srand(unsigned int >I<seed>B<);>\n"
4249 msgstr ""
4250
4251 #. type: Plain text
4252 #: build/C/man3/rand.3:62
4253 msgid "B<rand_r>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
4254 msgstr ""
4255
4256 #. type: Plain text
4257 #: build/C/man3/rand.3:68
4258 msgid ""
4259 "The B<rand>()  function returns a pseudo-random integer in the range 0 to "
4260 "B<RAND_MAX> inclusive (i.e., the mathematical range [0,\\ B<RAND_MAX>])."
4261 msgstr ""
4262
4263 #. type: Plain text
4264 #: build/C/man3/rand.3:77
4265 msgid ""
4266 "The B<srand>()  function sets its argument as the seed for a new sequence of "
4267 "pseudo-random integers to be returned by B<rand>().  These sequences are "
4268 "repeatable by calling B<srand>()  with the same seed value."
4269 msgstr ""
4270
4271 #. type: Plain text
4272 #: build/C/man3/rand.3:81
4273 msgid ""
4274 "If no seed value is provided, the B<rand>()  function is automatically "
4275 "seeded with a value of 1."
4276 msgstr ""
4277
4278 #. type: Plain text
4279 #: build/C/man3/rand.3:92
4280 msgid ""
4281 "The function B<rand>()  is not reentrant or thread-safe, since it uses "
4282 "hidden state that is modified on each call.  This might just be the seed "
4283 "value to be used by the next call, or it might be something more elaborate.  "
4284 "In order to get reproducible behavior in a threaded application, this state "
4285 "must be made explicit; this can be done using the reentrant function "
4286 "B<rand_r>()."
4287 msgstr ""
4288
4289 #. type: Plain text
4290 #: build/C/man3/rand.3:108
4291 msgid ""
4292 "Like B<rand>(), B<rand_r>()  returns a pseudo-random integer in the range "
4293 "[0,\\ B<RAND_MAX>].  The I<seedp> argument is a pointer to an I<unsigned "
4294 "int> that is used to store state between calls.  If B<rand_r>()  is called "
4295 "with the same initial value for the integer pointed to by I<seedp>, and that "
4296 "value is not modified between calls, then the same pseudo-random sequence "
4297 "will result."
4298 msgstr ""
4299
4300 #. type: Plain text
4301 #: build/C/man3/rand.3:118
4302 msgid ""
4303 "The value pointed to by the I<seedp> argument of B<rand_r>()  provides only "
4304 "a very small amount of state, so this function will be a weak pseudo-random "
4305 "generator.  Try B<drand48_r>(3)  instead."
4306 msgstr ""
4307
4308 #. type: Plain text
4309 #: build/C/man3/rand.3:129
4310 msgid ""
4311 "The B<rand>()  and B<rand_r>()  functions return a value between 0 and "
4312 "B<RAND_MAX> (inclusive).  The B<srand>()  function returns no value."
4313 msgstr ""
4314
4315 #. type: Plain text
4316 #: build/C/man3/rand.3:141
4317 msgid ""
4318 "The functions B<rand>()  and B<srand>()  conform to SVr4, 4.3BSD, C89, C99, "
4319 "POSIX.1-2001.  The function B<rand_r>()  is from POSIX.1-2001.  POSIX.1-2008 "
4320 "marks B<rand_r>()  as obsolete."
4321 msgstr ""
4322
4323 #. type: Plain text
4324 #: build/C/man3/rand.3:160
4325 msgid ""
4326 "The versions of B<rand>()  and B<srand>()  in the Linux C Library use the "
4327 "same random number generator as B<random>(3)  and B<srandom>(3), so the "
4328 "lower-order bits should be as random as the higher-order bits.  However, on "
4329 "older B<rand>()  implementations, and on current implementations on "
4330 "different systems, the lower-order bits are much less random than the "
4331 "higher-order bits.  Do not use this function in applications intended to be "
4332 "portable when good randomness is needed.  (Use B<random>(3)  instead.)"
4333 msgstr ""
4334
4335 #. type: Plain text
4336 #: build/C/man3/rand.3:166
4337 msgid ""
4338 "POSIX.1-2001 gives the following example of an implementation of B<rand>()  "
4339 "and B<srand>(), possibly useful when one needs the same sequence on two "
4340 "different machines."
4341 msgstr ""
4342
4343 #. type: Plain text
4344 #: build/C/man3/rand.3:170
4345 #, no-wrap
4346 msgid "static unsigned long next = 1;\n"
4347 msgstr ""
4348
4349 #. type: Plain text
4350 #: build/C/man3/rand.3:176
4351 #, no-wrap
4352 msgid ""
4353 "/* RAND_MAX assumed to be 32767 */\n"
4354 "int myrand(void) {\n"
4355 "    next = next * 1103515245 + 12345;\n"
4356 "    return((unsigned)(next/65536) % 32768);\n"
4357 "}\n"
4358 msgstr ""
4359
4360 #. type: Plain text
4361 #: build/C/man3/rand.3:180
4362 #, no-wrap
4363 msgid ""
4364 "void mysrand(unsigned int seed) {\n"
4365 "    next = seed;\n"
4366 "}\n"
4367 msgstr ""
4368
4369 #. type: Plain text
4370 #: build/C/man3/rand.3:187
4371 msgid ""
4372 "The following program can be used to display the pseudo-random sequence "
4373 "produced by B<rand>()  when given a particular seed."
4374 msgstr ""
4375
4376 #. type: Plain text
4377 #: build/C/man3/rand.3:192
4378 #, no-wrap
4379 msgid ""
4380 "#include E<lt>stdlib.hE<gt>\n"
4381 "#include E<lt>stdio.hE<gt>\n"
4382 msgstr ""
4383
4384 #. type: Plain text
4385 #: build/C/man3/rand.3:198
4386 #, no-wrap
4387 msgid ""
4388 "int\n"
4389 "main(int argc, char *argv[])\n"
4390 "{\n"
4391 "    int j, r, nloops;\n"
4392 "    unsigned int seed;\n"
4393 msgstr ""
4394
4395 #. type: Plain text
4396 #: build/C/man3/rand.3:203
4397 #, no-wrap
4398 msgid ""
4399 "    if (argc != 3) {\n"
4400 "        fprintf(stderr, \"Usage: %s E<lt>seedE<gt> E<lt>nloopsE<gt>\\en\", "
4401 "argv[0]);\n"
4402 "        exit(EXIT_FAILURE);\n"
4403 "    }\n"
4404 msgstr ""
4405
4406 #. type: Plain text
4407 #: build/C/man3/rand.3:206
4408 #, no-wrap
4409 msgid ""
4410 "    seed = atoi(argv[1]);\n"
4411 "    nloops = atoi(argv[2]);\n"
4412 msgstr ""
4413
4414 #. type: Plain text
4415 #: build/C/man3/rand.3:212
4416 #, no-wrap
4417 msgid ""
4418 "    srand(seed);\n"
4419 "    for (j = 0; j E<lt> nloops; j++) {\n"
4420 "        r =  rand();\n"
4421 "        printf(\"%d\\en\", r);\n"
4422 "    }\n"
4423 msgstr ""
4424
4425 #. type: Plain text
4426 #: build/C/man3/rand.3:220
4427 msgid "B<drand48>(3), B<random>(3)"
4428 msgstr ""
4429
4430 #. type: TH
4431 #: build/C/man3/random.3:33
4432 #, no-wrap
4433 msgid "RANDOM"
4434 msgstr ""
4435
4436 #. type: Plain text
4437 #: build/C/man3/random.3:36
4438 msgid "random, srandom, initstate, setstate - random number generator"
4439 msgstr ""
4440
4441 #. type: Plain text
4442 #: build/C/man3/random.3:41
4443 #, no-wrap
4444 msgid "B<long int random(void);>\n"
4445 msgstr ""
4446
4447 #. type: Plain text
4448 #: build/C/man3/random.3:43
4449 #, no-wrap
4450 msgid "B<void srandom(unsigned int >I<seed>B<);>\n"
4451 msgstr ""
4452
4453 #. type: Plain text
4454 #: build/C/man3/random.3:45
4455 #, no-wrap
4456 msgid ""
4457 "B<char *initstate(unsigned int >I<seed>B<, char *>I<state>B<, size_t "
4458 ">I<n>B<);>\n"
4459 msgstr ""
4460
4461 #. type: Plain text
4462 #: build/C/man3/random.3:47
4463 #, no-wrap
4464 msgid "B<char *setstate(char *>I<state>B<);>\n"
4465 msgstr ""
4466
4467 #. type: Plain text
4468 #: build/C/man3/random.3:59
4469 msgid "B<random>(), B<srandom>(), B<initstate>(), B<setstate>():"
4470 msgstr ""
4471
4472 #. type: Plain text
4473 #: build/C/man3/random.3:62
4474 msgid ""
4475 "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
4476 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
4477 msgstr ""
4478
4479 #. type: Plain text
4480 #: build/C/man3/random.3:73
4481 msgid ""
4482 "The B<random>()  function uses a nonlinear additive feedback random number "
4483 "generator employing a default table of size 31 long integers to return "
4484 "successive pseudo-random numbers in the range from 0 to B<RAND_MAX>.  The "
4485 "period of this random number generator is very large, approximately I<16\\ "
4486 "*\\ ((2^31)\\ -\\ 1)>."
4487 msgstr ""
4488
4489 #. type: Plain text
4490 #: build/C/man3/random.3:87
4491 msgid ""
4492 "The B<srandom>()  function sets its argument as the seed for a new sequence "
4493 "of pseudo-random integers to be returned by B<random>().  These sequences "
4494 "are repeatable by calling B<srandom>()  with the same seed value.  If no "
4495 "seed value is provided, the B<random>()  function is automatically seeded "
4496 "with a value of 1."
4497 msgstr ""
4498
4499 #. type: Plain text
4500 #: build/C/man3/random.3:102
4501 msgid ""
4502 "The B<initstate>()  function allows a state array I<state> to be initialized "
4503 "for use by B<random>().  The size of the state array I<n> is used by "
4504 "B<initstate>()  to decide how sophisticated a random number generator it "
4505 "should use\\(emthe larger the state array, the better the random numbers "
4506 "will be.  I<seed> is the seed for the initialization, which specifies a "
4507 "starting point for the random number sequence, and provides for restarting "
4508 "at the same point."
4509 msgstr ""
4510
4511 #. type: Plain text
4512 #: build/C/man3/random.3:118
4513 msgid ""
4514 "The B<setstate>()  function changes the state array used by the B<random>()  "
4515 "function.  The state array I<state> is used for random number generation "
4516 "until the next call to B<initstate>()  or B<setstate>().  I<state> must "
4517 "first have been initialized using B<initstate>()  or be the result of a "
4518 "previous call of B<setstate>()."
4519 msgstr ""
4520
4521 #. type: Plain text
4522 #: build/C/man3/random.3:126
4523 msgid ""
4524 "The B<random>()  function returns a value between 0 and B<RAND_MAX>.  The "
4525 "B<srandom>()  function returns no value."
4526 msgstr ""
4527
4528 #. type: Plain text
4529 #: build/C/man3/random.3:133
4530 msgid ""
4531 "The B<initstate>()  function returns a pointer to the previous state array.  "
4532 "On error, I<errno> is set to indicate the cause."
4533 msgstr ""
4534
4535 #. type: Plain text
4536 #: build/C/man3/random.3:140
4537 msgid ""
4538 "On success, B<setstate>()  returns a pointer to the previous state array.  "
4539 "On error, it returns NULL, with I<errno> set to indicate the cause of the "
4540 "error."
4541 msgstr ""
4542
4543 #. type: Plain text
4544 #: build/C/man3/random.3:148
4545 msgid "The I<state> argument given to B<setstate>()  was NULL."
4546 msgstr ""
4547
4548 #. type: Plain text
4549 #: build/C/man3/random.3:152
4550 msgid "A state array of less than 8 bytes was specified to B<initstate>()."
4551 msgstr ""
4552
4553 #. type: Plain text
4554 #: build/C/man3/random.3:161
4555 msgid ""
4556 "The B<random>(), B<srandom>(), B<initstate>(), and B<setstate>()  functions "
4557 "are thread-safe."
4558 msgstr ""
4559
4560 #. type: Plain text
4561 #: build/C/man3/random.3:163 build/C/man3/setenv.3:130
4562 msgid "4.3BSD, POSIX.1-2001."
4563 msgstr ""
4564
4565 #. type: Plain text
4566 #: build/C/man3/random.3:169
4567 msgid ""
4568 "Current \"optimal\" values for the size of the state array I<n> are 8, 32, "
4569 "64, 128, and 256 bytes; other amounts will be rounded down to the nearest "
4570 "known amount.  Using less than 8 bytes will cause an error."
4571 msgstr ""
4572
4573 #. type: Plain text
4574 #: build/C/man3/random.3:176
4575 msgid ""
4576 "This function should not be used in cases where multiple threads use "
4577 "B<random>()  and the behavior should be reproducible.  Use B<random_r>(3)  "
4578 "for that purpose."
4579 msgstr ""
4580
4581 #. type: Plain text
4582 #: build/C/man3/random.3:183
4583 msgid ""
4584 "Random-number generation is a complex topic.  I<Numerical Recipes in C: The "
4585 "Art of Scientific Computing> (William H. Press, Brian P. Flannery, Saul "
4586 "A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, "
4587 "2007, 3rd ed.)  provides an excellent discussion of practical random-number "
4588 "generation issues in Chapter 7 (Random Numbers)."
4589 msgstr ""
4590
4591 #. type: Plain text
4592 #: build/C/man3/random.3:189
4593 msgid ""
4594 "For a more theoretical discussion which also covers many practical issues in "
4595 "depth, see Chapter 3 (Random Numbers) in Donald E. Knuth's I<The Art of "
4596 "Computer Programming>, volume 2 (Seminumerical Algorithms), 2nd ed.; "
4597 "Reading, Massachusetts: Addison-Wesley Publishing Company, 1981."
4598 msgstr ""
4599
4600 #.  http://sourceware.org/bugzilla/show_bug.cgi?id=15380
4601 #. type: Plain text
4602 #: build/C/man3/random.3:197
4603 msgid ""
4604 "According to POSIX, B<initstate>()  should return NULL on error.  In the "
4605 "glibc implementation, I<errno> is (as specified) set on error, but the "
4606 "function does not return NULL."
4607 msgstr ""
4608
4609 #. type: Plain text
4610 #: build/C/man3/random.3:202
4611 msgid "B<drand48>(3), B<rand>(3), B<random_r>(3), B<srand>(3)"
4612 msgstr ""
4613
4614 #. type: TH
4615 #: build/C/man3/random_r.3:26
4616 #, no-wrap
4617 msgid "RANDOM_R"
4618 msgstr ""
4619
4620 #. type: Plain text
4621 #: build/C/man3/random_r.3:30
4622 msgid ""
4623 "random_r, srandom_r, initstate_r, setstate_r - reentrant random number "
4624 "generator"
4625 msgstr ""
4626
4627 #. type: Plain text
4628 #: build/C/man3/random_r.3:35
4629 #, no-wrap
4630 msgid "B<int random_r(struct random_data *>I<buf>B<, int32_t *>I<result>B<);>\n"
4631 msgstr ""
4632
4633 #. type: Plain text
4634 #: build/C/man3/random_r.3:37
4635 #, no-wrap
4636 msgid "B<int srandom_r(unsigned int >I<seed>B<, struct random_data *>I<buf>B<);>\n"
4637 msgstr ""
4638
4639 #. type: Plain text
4640 #: build/C/man3/random_r.3:40
4641 #, no-wrap
4642 msgid ""
4643 "B<int initstate_r(unsigned int >I<seed>B<, char *>I<statebuf>B<,>\n"
4644 "B<                size_t >I<statelen>B<, struct random_data *>I<buf>B<);>\n"
4645 msgstr ""
4646
4647 #. type: Plain text
4648 #: build/C/man3/random_r.3:42
4649 #, no-wrap
4650 msgid "B<int setstate_r(char *>I<statebuf>B<, struct random_data *>I<buf>B<);>\n"
4651 msgstr ""
4652
4653 #. type: Plain text
4654 #: build/C/man3/random_r.3:54
4655 msgid "B<random_r>(), B<srandom_r>(), B<initstate_r>(), B<setstate_r>():"
4656 msgstr ""
4657
4658 #. type: Plain text
4659 #: build/C/man3/random_r.3:56
4660 msgid "_SVID_SOURCE || _BSD_SOURCE"
4661 msgstr ""
4662
4663 #. type: Plain text
4664 #: build/C/man3/random_r.3:64
4665 msgid ""
4666 "These functions are the reentrant equivalents of the functions described in "
4667 "B<random>(3).  They are suitable for use in multithreaded programs where "
4668 "each thread needs to obtain an independent, reproducible sequence of random "
4669 "numbers."
4670 msgstr ""
4671
4672 #. type: Plain text
4673 #: build/C/man3/random_r.3:75
4674 msgid ""
4675 "The B<random_r>()  function is like B<random>(3), except that instead of "
4676 "using state information maintained in a global variable, it uses the state "
4677 "information in the argument pointed to by I<buf>.  The generated random "
4678 "number is returned in the argument I<result>."
4679 msgstr ""
4680
4681 #. type: Plain text
4682 #: build/C/man3/random_r.3:84
4683 msgid ""
4684 "The B<srandom_r>()  function is like B<srandom>(3), except that it "
4685 "initializes the seed for the random number generator whose state is "
4686 "maintained in the object pointed to by I<buf>, instead of the seed "
4687 "associated with the global state variable."
4688 msgstr ""
4689
4690 #. type: Plain text
4691 #: build/C/man3/random_r.3:92
4692 msgid ""
4693 "The B<initstate_r>()  function is like B<initstate>(3)  except that it "
4694 "initializes the state in the object pointed to by I<buf>, rather than "
4695 "initializing the global state variable."
4696 msgstr ""
4697
4698 #. type: Plain text
4699 #: build/C/man3/random_r.3:100
4700 msgid ""
4701 "The B<setstate_r>()  function is like B<setstate>(3)  except that it "
4702 "modifies the state in the object pointer to by I<buf>, rather than modifying "
4703 "the global state variable."
4704 msgstr ""
4705
4706 #. type: Plain text
4707 #: build/C/man3/random_r.3:105
4708 msgid ""
4709 "All of these functions return 0 on success.  On error, -1 is returned, with "
4710 "I<errno> set to indicate the cause of the error."
4711 msgstr ""
4712
4713 #. type: Plain text
4714 #: build/C/man3/random_r.3:110
4715 msgid "A state array of less than 8 bytes was specified to B<initstate_r>()."
4716 msgstr ""
4717
4718 #. type: Plain text
4719 #: build/C/man3/random_r.3:119
4720 msgid "The I<statebuf> or I<buf> argument to B<setstate_r>()  was NULL."
4721 msgstr ""
4722
4723 #. type: Plain text
4724 #: build/C/man3/random_r.3:128
4725 msgid "The I<buf> or I<result> argument to B<random_r>()  was NULL."
4726 msgstr ""
4727
4728 #. type: Plain text
4729 #: build/C/man3/random_r.3:137
4730 msgid ""
4731 "The B<random_r>(), B<srandom_r>(), B<initstate_r>(), and B<setstate_r>()  "
4732 "functions are thread-safe."
4733 msgstr ""
4734
4735 #.  These functions appear to be on Tru64, but don't seem to be on
4736 #.  Solaris, HP-UX, or FreeBSD.
4737 #. type: Plain text
4738 #: build/C/man3/random_r.3:141
4739 msgid "These functions are nonstandard glibc extensions."
4740 msgstr ""
4741
4742 #. type: TH
4743 #: build/C/man3/rpmatch.3:29
4744 #, no-wrap
4745 msgid "RPMATCH"
4746 msgstr ""
4747
4748 #. type: Plain text
4749 #: build/C/man3/rpmatch.3:32
4750 msgid "rpmatch - determine if the answer to a question is affirmative or negative"
4751 msgstr ""
4752
4753 #. type: Plain text
4754 #: build/C/man3/rpmatch.3:37
4755 #, no-wrap
4756 msgid "B<int rpmatch(const char *>I<response>B<);>\n"
4757 msgstr ""
4758
4759 #. type: Plain text
4760 #: build/C/man3/rpmatch.3:46
4761 msgid "B<rpmatch>(): _SVID_SOURCE"
4762 msgstr ""
4763
4764 #. type: Plain text
4765 #: build/C/man3/rpmatch.3:50
4766 msgid ""
4767 "B<rpmatch>()  handles a user response to yes or no questions, with support "
4768 "for internationalization."
4769 msgstr ""
4770
4771 #. type: Plain text
4772 #: build/C/man3/rpmatch.3:57
4773 msgid ""
4774 "I<response> should be a null-terminated string containing a user-supplied "
4775 "response, perhaps obtained with B<fgets>(3)  or B<getline>(3)."
4776 msgstr ""
4777
4778 #. type: Plain text
4779 #: build/C/man3/rpmatch.3:67
4780 msgid ""
4781 "The user's language preference is taken into account per the environment "
4782 "variables B<LANG>, B<LC_MESSAGES>, and B<LC_ALL>, if the program has called "
4783 "B<setlocale>(3)  to effect their changes."
4784 msgstr ""
4785
4786 #. type: Plain text
4787 #: build/C/man3/rpmatch.3:73
4788 msgid ""
4789 "Regardless of the locale, responses matching B<^[Yy]> are always accepted as "
4790 "affirmative, and those matching B<^[Nn]> are always accepted as negative."
4791 msgstr ""
4792
4793 #. type: Plain text
4794 #: build/C/man3/rpmatch.3:82
4795 msgid ""
4796 "After examining I<response>, B<rpmatch>()  returns 0 for a recognized "
4797 "negative response (\"no\"), 1 for a recognized positive response (\"yes\"), "
4798 "and -1 when the value of I<response> is unrecognized."
4799 msgstr ""
4800
4801 #. type: Plain text
4802 #: build/C/man3/rpmatch.3:86
4803 msgid ""
4804 "A return value of -1 may indicate either an invalid input, or some other "
4805 "error.  It is incorrect to only test if the return value is nonzero."
4806 msgstr ""
4807
4808 #. type: Plain text
4809 #: build/C/man3/rpmatch.3:99
4810 msgid ""
4811 "B<rpmatch>()  can fail for any of the reasons that B<regcomp>(3)  or "
4812 "B<regexec>(3)  can fail; the cause of the error is not available from "
4813 "I<errno> or anywhere else, but indicates a failure of the regex engine (but "
4814 "this case is indistinguishable from that of an unrecognized value of "
4815 "I<response>)."
4816 msgstr ""
4817
4818 #.  It is available on at least AIX 5.1 and FreeBSD 6.0.
4819 #. type: Plain text
4820 #: build/C/man3/rpmatch.3:104
4821 msgid ""
4822 "B<rpmatch>()  is not required by any standard, but is available on a few "
4823 "other systems."
4824 msgstr ""
4825
4826 #. type: Plain text
4827 #: build/C/man3/rpmatch.3:119
4828 msgid ""
4829 "The B<rpmatch>()  implementation looks at only the first character of "
4830 "I<response>.  As a consequence, \"nyes\" returns 0, and \"ynever; not in a "
4831 "million years\" returns 1.  It would be preferable to accept input strings "
4832 "much more strictly, for example (using the extended regular expression "
4833 "notation described in B<regex>(7)): B<^([yY]|yes|YES)$> and "
4834 "B<^([nN]|no|NO)$>."
4835 msgstr ""
4836
4837 #. type: Plain text
4838 #: build/C/man3/rpmatch.3:123
4839 msgid ""
4840 "The following program displays the results when B<rpmatch>()  is applied to "
4841 "the string given in the program's command-line argument."
4842 msgstr ""
4843
4844 #. type: Plain text
4845 #: build/C/man3/rpmatch.3:130
4846 #, no-wrap
4847 msgid ""
4848 "#define _SVID_SOURCE\n"
4849 "#include E<lt>locale.hE<gt>\n"
4850 "#include E<lt>stdlib.hE<gt>\n"
4851 "#include E<lt>string.hE<gt>\n"
4852 "#include E<lt>stdio.hE<gt>\n"
4853 msgstr ""
4854
4855 #. type: Plain text
4856 #: build/C/man3/rpmatch.3:138
4857 #, no-wrap
4858 msgid ""
4859 "int\n"
4860 "main(int argc, char *argv[])\n"
4861 "{\n"
4862 "    if (argc != 2 || strcmp(argv[1], \"--help\") == 0) {\n"
4863 "        fprintf(stderr, \"%s response\\en\", argv[0]);\n"
4864 "        exit(EXIT_FAILURE);\n"
4865 "    }\n"
4866 msgstr ""
4867
4868 #. type: Plain text
4869 #: build/C/man3/rpmatch.3:143
4870 #, no-wrap
4871 msgid ""
4872 "    setlocale(LC_ALL, \"\");\n"
4873 "    printf(\"rpmatch() returns: %d\\en\", rpmatch(argv[1]));\n"
4874 "    exit(EXIT_SUCCESS);\n"
4875 "}\n"
4876 msgstr ""
4877
4878 #. type: Plain text
4879 #: build/C/man3/rpmatch.3:150
4880 msgid ""
4881 "B<fgets>(3), B<getline>(3), B<nl_langinfo>(3), B<regcomp>(3), "
4882 "B<setlocale>(3)"
4883 msgstr ""
4884
4885 #. type: TH
4886 #: build/C/man3/setenv.3:37
4887 #, no-wrap
4888 msgid "SETENV"
4889 msgstr ""
4890
4891 #. type: TH
4892 #: build/C/man3/setenv.3:37
4893 #, no-wrap
4894 msgid "2013-10-11"
4895 msgstr ""
4896
4897 #. type: Plain text
4898 #: build/C/man3/setenv.3:40
4899 msgid "setenv - change or add an environment variable"
4900 msgstr ""
4901
4902 #. type: Plain text
4903 #: build/C/man3/setenv.3:45
4904 #, no-wrap
4905 msgid ""
4906 "B<int setenv(const char *>I<name>B<, const char *>I<value>B<, int "
4907 ">I<overwrite>B<);>\n"
4908 msgstr ""
4909
4910 #. type: Plain text
4911 #: build/C/man3/setenv.3:47
4912 #, no-wrap
4913 msgid "B<int unsetenv(const char *>I<name>B<);>\n"
4914 msgstr ""
4915
4916 #. type: Plain text
4917 #: build/C/man3/setenv.3:57
4918 msgid "B<setenv>(), B<unsetenv>():"
4919 msgstr ""
4920
4921 #. type: Plain text
4922 #: build/C/man3/setenv.3:59
4923 msgid ""
4924 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ "
4925 "E<gt>=\\ 600"
4926 msgstr ""
4927
4928 #. type: Plain text
4929 #: build/C/man3/setenv.3:94
4930 msgid ""
4931 "The B<setenv>()  function adds the variable I<name> to the environment with "
4932 "the value I<value>, if I<name> does not already exist.  If I<name> does "
4933 "exist in the environment, then its value is changed to I<value> if "
4934 "I<overwrite> is nonzero; if I<overwrite> is zero, then the value of I<name> "
4935 "is not changed (and B<setenv>()  returns a success status).  This function "
4936 "makes copies of the strings pointed to by I<name> and I<value> (by contrast "
4937 "with B<putenv>(3))."
4938 msgstr ""
4939
4940 #. type: Plain text
4941 #: build/C/man3/setenv.3:105
4942 msgid ""
4943 "The B<unsetenv>()  function deletes the variable I<name> from the "
4944 "environment.  If I<name> does not exist in the environment, then the "
4945 "function succeeds, and the environment is unchanged."
4946 msgstr ""
4947
4948 #. type: Plain text
4949 #: build/C/man3/setenv.3:112
4950 msgid ""
4951 "The B<setenv>()  function returns zero on success, or -1 on error, with "
4952 "I<errno> set to indicate the cause of the error."
4953 msgstr ""
4954
4955 #. type: Plain text
4956 #: build/C/man3/setenv.3:119
4957 msgid ""
4958 "The B<unsetenv>()  function returns zero on success, or -1 on error, with "
4959 "I<errno> set to indicate the cause of the error."
4960 msgstr ""
4961
4962 #. type: Plain text
4963 #: build/C/man3/setenv.3:125
4964 msgid ""
4965 "I<name> is NULL, points to a string of length 0, or contains an \\(aq=\\(aq "
4966 "character."
4967 msgstr ""
4968
4969 #. type: Plain text
4970 #: build/C/man3/setenv.3:128
4971 msgid "Insufficient memory to add a new variable to the environment."
4972 msgstr ""
4973
4974 #. type: Plain text
4975 #: build/C/man3/setenv.3:136
4976 msgid ""
4977 "POSIX.1-2001 does not require B<setenv>()  or B<unsetenv>()  to be "
4978 "reentrant."
4979 msgstr ""
4980
4981 #. type: Plain text
4982 #: build/C/man3/setenv.3:144
4983 msgid ""
4984 "Prior to glibc 2.2.2, B<unsetenv>()  was prototyped as returning I<void>; "
4985 "more recent glibc versions follow the POSIX.1-2001-compliant prototype shown "
4986 "in the SYNOPSIS."
4987 msgstr ""
4988
4989 #. type: Plain text
4990 #: build/C/man3/setenv.3:153
4991 msgid ""
4992 "POSIX.1-2001 specifies that if I<name> contains an \\(aq=\\(aq character, "
4993 "then B<setenv>()  should fail with the error B<EINVAL>; however, versions of "
4994 "glibc before 2.3.4 allowed an \\(aq=\\(aq sign in I<name>."
4995 msgstr ""
4996
4997 #. type: Plain text
4998 #: build/C/man3/setenv.3:158
4999 msgid "B<clearenv>(3), B<getenv>(3), B<putenv>(3), B<environ>(7)"
5000 msgstr ""
5001
5002 #. type: TH
5003 #: build/C/man3/strtod.3:45
5004 #, no-wrap
5005 msgid "STRTOD"
5006 msgstr ""
5007
5008 #. type: Plain text
5009 #: build/C/man3/strtod.3:48
5010 msgid "strtod, strtof, strtold - convert ASCII string to floating-point number"
5011 msgstr ""
5012
5013 #. type: Plain text
5014 #: build/C/man3/strtod.3:52
5015 msgid "B<double strtod(const char *>I<nptr>B<, char **>I<endptr>B<);>"
5016 msgstr ""
5017
5018 #. type: Plain text
5019 #: build/C/man3/strtod.3:54
5020 msgid "B<float strtof(const char *>I<nptr>B<, char **>I<endptr>B<);>"
5021 msgstr ""
5022
5023 #. type: Plain text
5024 #: build/C/man3/strtod.3:56
5025 msgid "B<long double strtold(const char *>I<nptr>B<, char **>I<endptr>B<);>"
5026 msgstr ""
5027
5028 #. type: Plain text
5029 #: build/C/man3/strtod.3:65
5030 msgid "B<strtof>(), B<strtold>():"
5031 msgstr ""
5032
5033 #. type: Plain text
5034 #: build/C/man3/strtod.3:87
5035 msgid ""
5036 "The B<strtod>(), B<strtof>(), and B<strtold>()  functions convert the "
5037 "initial portion of the string pointed to by I<nptr> to I<double>, I<float>, "
5038 "and I<long double> representation, respectively."
5039 msgstr ""
5040
5041 #. type: Plain text
5042 #: build/C/man3/strtod.3:94
5043 msgid ""
5044 "The expected form of the (initial portion of the) string is optional leading "
5045 "white space as recognized by B<isspace>(3), an optional plus (\\(aq+\\(aq) "
5046 "or minus sign (\\(aq-\\(aq) and then either (i) a decimal number, or (ii) a "
5047 "hexadecimal number, or (iii) an infinity, or (iv) a NAN (not-a-number)."
5048 msgstr ""
5049
5050 #. type: Plain text
5051 #: build/C/man3/strtod.3:103
5052 msgid ""
5053 "A I<decimal number> consists of a nonempty sequence of decimal digits "
5054 "possibly containing a radix character (decimal point, locale-dependent, "
5055 "usually \\(aq.\\(aq), optionally followed by a decimal exponent.  A decimal "
5056 "exponent consists of an \\(aqE\\(aq or \\(aqe\\(aq, followed by an optional "
5057 "plus or minus sign, followed by a nonempty sequence of decimal digits, and "
5058 "indicates multiplication by a power of 10."
5059 msgstr ""
5060
5061 #. type: Plain text
5062 #: build/C/man3/strtod.3:114
5063 msgid ""
5064 "A I<hexadecimal number> consists of a \"0x\" or \"0X\" followed by a "
5065 "nonempty sequence of hexadecimal digits possibly containing a radix "
5066 "character, optionally followed by a binary exponent.  A binary exponent "
5067 "consists of a \\(aqP\\(aq or \\(aqp\\(aq, followed by an optional plus or "
5068 "minus sign, followed by a nonempty sequence of decimal digits, and indicates "
5069 "multiplication by a power of 2.  At least one of radix character and binary "
5070 "exponent must be present."
5071 msgstr ""
5072
5073 #. type: Plain text
5074 #: build/C/man3/strtod.3:118
5075 msgid "An I<infinity> is either \"INF\" or \"INFINITY\", disregarding case."
5076 msgstr ""
5077
5078 #.  From glibc 2.8's stdlib/strtod_l.c:
5079 #.      We expect it to be a number which is put in the
5080 #.      mantissa of the number.
5081 #. type: Plain text
5082 #: build/C/man3/strtod.3:128
5083 msgid ""
5084 "A I<NAN> is \"NAN\" (disregarding case) optionally followed by \\(aq(\\(aq, "
5085 "a sequence of characters, followed by \\(aq)\\(aq.  The character string "
5086 "specifies in an implementation-dependent way the type of NAN."
5087 msgstr ""
5088
5089 #. type: Plain text
5090 #: build/C/man3/strtod.3:130
5091 msgid "These functions return the converted value, if any."
5092 msgstr ""
5093
5094 #. type: Plain text
5095 #: build/C/man3/strtod.3:137
5096 msgid ""
5097 "If I<endptr> is not NULL, a pointer to the character after the last "
5098 "character used in the conversion is stored in the location referenced by "
5099 "I<endptr>."
5100 msgstr ""
5101
5102 #. type: Plain text
5103 #: build/C/man3/strtod.3:142
5104 msgid ""
5105 "If no conversion is performed, zero is returned and the value of I<nptr> is "
5106 "stored in the location referenced by I<endptr>."
5107 msgstr ""
5108
5109 #. type: Plain text
5110 #: build/C/man3/strtod.3:156
5111 msgid ""
5112 "If the correct value would cause overflow, plus or minus B<HUGE_VAL> "
5113 "(B<HUGE_VALF>, B<HUGE_VALL>)  is returned (according to the sign of the "
5114 "value), and B<ERANGE> is stored in I<errno>.  If the correct value would "
5115 "cause underflow, zero is returned and B<ERANGE> is stored in I<errno>."
5116 msgstr ""
5117
5118 #. type: TP
5119 #: build/C/man3/strtod.3:157 build/C/man3/strtol.3:151 build/C/man3/strtoul.3:155
5120 #, no-wrap
5121 msgid "B<ERANGE>"
5122 msgstr ""
5123
5124 #. type: Plain text
5125 #: build/C/man3/strtod.3:160
5126 msgid "Overflow or underflow occurred."
5127 msgstr ""
5128
5129 #. type: Plain text
5130 #: build/C/man3/strtod.3:172
5131 msgid ""
5132 "The B<strtod>(), B<strtof>(), and B<strtold>()  functions are thread-safe "
5133 "with exceptions.  These functions can be safely used in multithreaded "
5134 "applications, as long as B<setlocale>(3)  is not called to change the locale "
5135 "during their execution."
5136 msgstr ""
5137
5138 #. type: Plain text
5139 #: build/C/man3/strtod.3:177
5140 msgid "C89 describes B<strtod>(), C99 describes the other two functions."
5141 msgstr ""
5142
5143 #. type: Plain text
5144 #: build/C/man3/strtod.3:186
5145 msgid ""
5146 "Since 0 can legitimately be returned on both success and failure, the "
5147 "calling program should set I<errno> to 0 before the call, and then determine "
5148 "if an error occurred by checking whether I<errno> has a nonzero value after "
5149 "the call."
5150 msgstr ""
5151
5152 #. type: Plain text
5153 #: build/C/man3/strtod.3:191 build/C/man3/strtoul.3:225
5154 msgid ""
5155 "See the example on the B<strtol>(3)  manual page; the use of the functions "
5156 "described in this manual page is similar."
5157 msgstr ""
5158
5159 #. type: Plain text
5160 #: build/C/man3/strtod.3:197
5161 msgid "B<atof>(3), B<atoi>(3), B<atol>(3), B<strtol>(3), B<strtoul>(3)"
5162 msgstr ""
5163
5164 #. type: TH
5165 #: build/C/man3/strtoimax.3:24
5166 #, no-wrap
5167 msgid "STRTOIMAX"
5168 msgstr ""
5169
5170 #. type: Plain text
5171 #: build/C/man3/strtoimax.3:27
5172 msgid "strtoimax, strtoumax - convert string to integer"
5173 msgstr ""
5174
5175 #. type: Plain text
5176 #: build/C/man3/strtoimax.3:30
5177 #, no-wrap
5178 msgid "B<#include E<lt>inttypes.hE<gt>>\n"
5179 msgstr ""
5180
5181 #. type: Plain text
5182 #: build/C/man3/strtoimax.3:32
5183 #, no-wrap
5184 msgid ""
5185 "B<intmax_t strtoimax(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5186 ">I<base>B<);>\n"
5187 msgstr ""
5188
5189 #. type: Plain text
5190 #: build/C/man3/strtoimax.3:34
5191 #, no-wrap
5192 msgid ""
5193 "B<uintmax_t strtoumax(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5194 ">I<base>B<);>\n"
5195 msgstr ""
5196
5197 #. type: Plain text
5198 #: build/C/man3/strtoimax.3:45
5199 msgid ""
5200 "These functions are just like B<strtol>(3)  and B<strtoul>(3), except that "
5201 "they return a value of type I<intmax_t> and I<uintmax_t>, respectively."
5202 msgstr ""
5203
5204 #. type: Plain text
5205 #: build/C/man3/strtoimax.3:58
5206 msgid ""
5207 "On success, the converted value is returned.  If nothing was found to "
5208 "convert, zero is returned.  On overflow or underflow B<INTMAX_MAX> or "
5209 "B<INTMAX_MIN> or B<UINTMAX_MAX> is returned, and I<errno> is set to "
5210 "B<ERANGE>."
5211 msgstr ""
5212
5213 #. type: Plain text
5214 #: build/C/man3/strtoimax.3:69
5215 msgid ""
5216 "The B<strtoimax>()  and B<strtoumax>()  functions are thread-safe with "
5217 "exceptions.  These functions can be safely used in multithreaded "
5218 "applications, as long as B<setlocale>(3)  is not called to change the locale "
5219 "during their execution."
5220 msgstr ""
5221
5222 #. type: Plain text
5223 #: build/C/man3/strtoimax.3:77
5224 msgid "B<imaxabs>(3), B<imaxdiv>(3), B<strtol>(3), B<strtoul>(3), B<wcstoimax>(3)"
5225 msgstr ""
5226
5227 #. type: TH
5228 #: build/C/man3/strtol.3:31
5229 #, no-wrap
5230 msgid "STRTOL"
5231 msgstr ""
5232
5233 #. type: Plain text
5234 #: build/C/man3/strtol.3:34
5235 msgid "strtol, strtoll, strtoq - convert a string to a long integer"
5236 msgstr ""
5237
5238 #. type: Plain text
5239 #: build/C/man3/strtol.3:39
5240 #, no-wrap
5241 msgid ""
5242 "B<long int strtol(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5243 ">I<base>B<);>\n"
5244 msgstr ""
5245
5246 #. type: Plain text
5247 #: build/C/man3/strtol.3:42
5248 #, no-wrap
5249 msgid ""
5250 "B<long long int strtoll(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5251 ">I<base>B<);>\n"
5252 msgstr ""
5253
5254 #. type: Plain text
5255 #: build/C/man3/strtol.3:51
5256 msgid "B<strtoll>():"
5257 msgstr ""
5258
5259 #. type: Plain text
5260 #: build/C/man3/strtol.3:54 build/C/man3/strtoul.3:57
5261 msgid ""
5262 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _BSD_SOURCE || _SVID_SOURCE || "
5263 "_ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
5264 msgstr ""
5265
5266 #. type: Plain text
5267 #: build/C/man3/strtol.3:68
5268 msgid ""
5269 "The B<strtol>()  function converts the initial part of the string in I<nptr> "
5270 "to a long integer value according to the given I<base>, which must be "
5271 "between 2 and 36 inclusive, or be the special value 0."
5272 msgstr ""
5273
5274 #. type: Plain text
5275 #: build/C/man3/strtol.3:81 build/C/man3/strtoul.3:89
5276 msgid ""
5277 "The string may begin with an arbitrary amount of white space (as determined "
5278 "by B<isspace>(3))  followed by a single optional \\(aq+\\(aq or \\(aq-\\(aq "
5279 "sign.  If I<base> is zero or 16, the string may then include a \"0x\" "
5280 "prefix, and the number will be read in base 16; otherwise, a zero I<base> is "
5281 "taken as 10 (decimal) unless the next character is \\(aq0\\(aq, in which "
5282 "case it is taken as 8 (octal)."
5283 msgstr ""
5284
5285 #. type: Plain text
5286 #: build/C/man3/strtol.3:90
5287 msgid ""
5288 "The remainder of the string is converted to a I<long int> value in the "
5289 "obvious manner, stopping at the first character which is not a valid digit "
5290 "in the given base.  (In bases above 10, the letter \\(aqA\\(aq in either "
5291 "uppercase or lowercase represents 10, \\(aqB\\(aq represents 11, and so "
5292 "forth, with \\(aqZ\\(aq representing 35.)"
5293 msgstr ""
5294
5295 #. type: Plain text
5296 #: build/C/man3/strtol.3:111
5297 msgid ""
5298 "If I<endptr> is not NULL, B<strtol>()  stores the address of the first "
5299 "invalid character in I<*endptr>.  If there were no digits at all, "
5300 "B<strtol>()  stores the original value of I<nptr> in I<*endptr> (and returns "
5301 "0).  In particular, if I<*nptr> is not \\(aq\\e0\\(aq but I<**endptr> is "
5302 "\\(aq\\e0\\(aq on return, the entire string is valid."
5303 msgstr ""
5304
5305 #. type: Plain text
5306 #: build/C/man3/strtol.3:117
5307 msgid ""
5308 "The B<strtoll>()  function works just like the B<strtol>()  function but "
5309 "returns a long long integer value."
5310 msgstr ""
5311
5312 #. type: Plain text
5313 #: build/C/man3/strtol.3:144
5314 msgid ""
5315 "The B<strtol>()  function returns the result of the conversion, unless the "
5316 "value would underflow or overflow.  If an underflow occurs, B<strtol>()  "
5317 "returns B<LONG_MIN>.  If an overflow occurs, B<strtol>()  returns "
5318 "B<LONG_MAX>.  In both cases, I<errno> is set to B<ERANGE>.  Precisely the "
5319 "same holds for B<strtoll>()  (with B<LLONG_MIN> and B<LLONG_MAX> instead of "
5320 "B<LONG_MIN> and B<LONG_MAX>)."
5321 msgstr ""
5322
5323 #. type: Plain text
5324 #: build/C/man3/strtol.3:151 build/C/man3/strtoul.3:155
5325 msgid "(not in C99)  The given I<base> contains an unsupported value."
5326 msgstr ""
5327
5328 #. type: Plain text
5329 #: build/C/man3/strtol.3:154 build/C/man3/strtoul.3:158
5330 msgid "The resulting value was out of range."
5331 msgstr ""
5332
5333 #. type: Plain text
5334 #: build/C/man3/strtol.3:161 build/C/man3/strtoul.3:165
5335 msgid ""
5336 "The implementation may also set I<errno> to B<EINVAL> in case no conversion "
5337 "was performed (no digits seen, and 0 returned)."
5338 msgstr ""
5339
5340 #. type: Plain text
5341 #: build/C/man3/strtol.3:173
5342 msgid ""
5343 "The B<strtol>(), B<strtoll>(), and B<strtoq>()  functions are thread-safe "
5344 "with exceptions.  These functions can be safely used in multithreaded "
5345 "applications, as long as B<setlocale>(3)  is not called to change the locale "
5346 "during their execution."
5347 msgstr ""
5348
5349 #. type: Plain text
5350 #: build/C/man3/strtol.3:178
5351 msgid ""
5352 "B<strtol>()  conforms to SVr4, 4.3BSD, C89, C99, and POSIX.1-2001, and "
5353 "B<strtoll>()  to C99 and POSIX.1-2001."
5354 msgstr ""
5355
5356 #. type: Plain text
5357 #: build/C/man3/strtol.3:196
5358 msgid ""
5359 "Since B<strtol>()  can legitimately return 0, B<LONG_MAX>, or B<LONG_MIN> "
5360 "(B<LLONG_MAX> or B<LLONG_MIN> for B<strtoll>())  on both success and "
5361 "failure, the calling program should set I<errno> to 0 before the call, and "
5362 "then determine if an error occurred by checking whether I<errno> has a "
5363 "nonzero value after the call."
5364 msgstr ""
5365
5366 #. type: Plain text
5367 #: build/C/man3/strtol.3:201
5368 msgid ""
5369 "According to POSIX.1-2001, in locales other than the \"C\" and \"POSIX\", "
5370 "these functions may accept other, implementation-defined numeric strings."
5371 msgstr ""
5372
5373 #. type: Plain text
5374 #: build/C/man3/strtol.3:203 build/C/man3/strtoul.3:202
5375 msgid "BSD also has"
5376 msgstr ""
5377
5378 #. type: Plain text
5379 #: build/C/man3/strtol.3:207
5380 #, no-wrap
5381 msgid ""
5382 "B<quad_t strtoq(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5383 ">I<base>B<);>\n"
5384 msgstr ""
5385
5386 #. type: Plain text
5387 #: build/C/man3/strtol.3:216
5388 msgid ""
5389 "with completely analogous definition.  Depending on the wordsize of the "
5390 "current architecture, this may be equivalent to B<strtoll>()  or to "
5391 "B<strtol>()."
5392 msgstr ""
5393
5394 #. type: Plain text
5395 #: build/C/man3/strtol.3:230
5396 msgid ""
5397 "The program shown below demonstrates the use of B<strtol>().  The first "
5398 "command-line argument specifies a string from which B<strtol>()  should "
5399 "parse a number.  The second (optional) argument specifies the base to be "
5400 "used for the conversion.  (This argument is converted to numeric form using "
5401 "B<atoi>(3), a function that performs no error checking and has a simpler "
5402 "interface than B<strtol>().)  Some examples of the results produced by this "
5403 "program are the following:"
5404 msgstr ""
5405
5406 #. type: Plain text
5407 #: build/C/man3/strtol.3:246
5408 #, no-wrap
5409 msgid ""
5410 "$B< ./a.out 123>\n"
5411 "strtol() returned 123\n"
5412 "$B< ./a.out \\(aq    123\\(aq>\n"
5413 "strtol() returned 123\n"
5414 "$B< ./a.out 123abc>\n"
5415 "strtol() returned 123\n"
5416 "Further characters after number: abc\n"
5417 "$B< ./a.out 123abc 55>\n"
5418 "strtol: Invalid argument\n"
5419 "$B< ./a.out \\(aq\\(aq>\n"
5420 "No digits were found\n"
5421 "$B< ./a.out 4000000000>\n"
5422 "strtol: Numerical result out of range\n"
5423 msgstr ""
5424
5425 #. type: Plain text
5426 #: build/C/man3/strtol.3:255
5427 #, no-wrap
5428 msgid ""
5429 "#include E<lt>stdlib.hE<gt>\n"
5430 "#include E<lt>limits.hE<gt>\n"
5431 "#include E<lt>stdio.hE<gt>\n"
5432 "#include E<lt>errno.hE<gt>\n"
5433 msgstr ""
5434
5435 #. type: Plain text
5436 #: build/C/man3/strtol.3:262
5437 #, no-wrap
5438 msgid ""
5439 "int\n"
5440 "main(int argc, char *argv[])\n"
5441 "{\n"
5442 "    int base;\n"
5443 "    char *endptr, *str;\n"
5444 "    long val;\n"
5445 msgstr ""
5446
5447 #. type: Plain text
5448 #: build/C/man3/strtol.3:267
5449 #, no-wrap
5450 msgid ""
5451 "    if (argc E<lt> 2) {\n"
5452 "        fprintf(stderr, \"Usage: %s str [base]\\en\", argv[0]);\n"
5453 "        exit(EXIT_FAILURE);\n"
5454 "    }\n"
5455 msgstr ""
5456
5457 #. type: Plain text
5458 #: build/C/man3/strtol.3:270
5459 #, no-wrap
5460 msgid ""
5461 "    str = argv[1];\n"
5462 "    base = (argc E<gt> 2) ? atoi(argv[2]) : 10;\n"
5463 msgstr ""
5464
5465 #. type: Plain text
5466 #: build/C/man3/strtol.3:273
5467 #, no-wrap
5468 msgid ""
5469 "    errno = 0;    /* To distinguish success/failure after call */\n"
5470 "    val = strtol(str, &endptr, base);\n"
5471 msgstr ""
5472
5473 #. type: Plain text
5474 #: build/C/man3/strtol.3:275
5475 #, no-wrap
5476 msgid "    /* Check for various possible errors */\n"
5477 msgstr ""
5478
5479 #. type: Plain text
5480 #: build/C/man3/strtol.3:281
5481 #, no-wrap
5482 msgid ""
5483 "    if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))\n"
5484 "            || (errno != 0 && val == 0)) {\n"
5485 "        perror(\"strtol\");\n"
5486 "        exit(EXIT_FAILURE);\n"
5487 "    }\n"
5488 msgstr ""
5489
5490 #. type: Plain text
5491 #: build/C/man3/strtol.3:286
5492 #, no-wrap
5493 msgid ""
5494 "    if (endptr == str) {\n"
5495 "        fprintf(stderr, \"No digits were found\\en\");\n"
5496 "        exit(EXIT_FAILURE);\n"
5497 "    }\n"
5498 msgstr ""
5499
5500 #. type: Plain text
5501 #: build/C/man3/strtol.3:288
5502 #, no-wrap
5503 msgid "    /* If we got here, strtol() successfully parsed a number */\n"
5504 msgstr ""
5505
5506 #. type: Plain text
5507 #: build/C/man3/strtol.3:290
5508 #, no-wrap
5509 msgid "    printf(\"strtol() returned %ld\\en\", val);\n"
5510 msgstr ""
5511
5512 #. type: Plain text
5513 #: build/C/man3/strtol.3:293
5514 #, no-wrap
5515 msgid ""
5516 "    if (*endptr != \\(aq\\e0\\(aq)        /* Not necessarily an "
5517 "error... */\n"
5518 "        printf(\"Further characters after number: %s\\en\", endptr);\n"
5519 msgstr ""
5520
5521 #. type: Plain text
5522 #: build/C/man3/strtol.3:303
5523 msgid "B<atof>(3), B<atoi>(3), B<atol>(3), B<strtod>(3), B<strtoul>(3)"
5524 msgstr ""
5525
5526 #. type: TH
5527 #: build/C/man3/strtoul.3:33
5528 #, no-wrap
5529 msgid "STRTOUL"
5530 msgstr ""
5531
5532 #. type: Plain text
5533 #: build/C/man3/strtoul.3:36
5534 msgid "strtoul, strtoull, strtouq - convert a string to an unsigned long integer"
5535 msgstr ""
5536
5537 #. type: Plain text
5538 #: build/C/man3/strtoul.3:42
5539 #, no-wrap
5540 msgid ""
5541 "B<unsigned long int strtoul(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5542 ">I<base>B<);>\n"
5543 msgstr ""
5544
5545 #. type: Plain text
5546 #: build/C/man3/strtoul.3:45
5547 #, no-wrap
5548 msgid ""
5549 "B<unsigned long long int strtoull(const char *>I<nptr>B<, char "
5550 "**>I<endptr>B<,>\n"
5551 "B<                                int >I<base>B<);>\n"
5552 msgstr ""
5553
5554 #. type: Plain text
5555 #: build/C/man3/strtoul.3:54
5556 msgid "B<strtoull>():"
5557 msgstr ""
5558
5559 #. type: Plain text
5560 #: build/C/man3/strtoul.3:75
5561 msgid ""
5562 "The B<strtoul>()  function converts the initial part of the string in "
5563 "I<nptr> to an I<unsigned long int> value according to the given I<base>, "
5564 "which must be between 2 and 36 inclusive, or be the special value 0."
5565 msgstr ""
5566
5567 #. type: Plain text
5568 #: build/C/man3/strtoul.3:98
5569 msgid ""
5570 "The remainder of the string is converted to an I<unsigned long int> value in "
5571 "the obvious manner, stopping at the first character which is not a valid "
5572 "digit in the given base.  (In bases above 10, the letter \\(aqA\\(aq in "
5573 "either uppercase or lowercase represents 10, \\(aqB\\(aq represents 11, and "
5574 "so forth, with \\(aqZ\\(aq representing 35.)"
5575 msgstr ""
5576
5577 #. type: Plain text
5578 #: build/C/man3/strtoul.3:119
5579 msgid ""
5580 "If I<endptr> is not NULL, B<strtoul>()  stores the address of the first "
5581 "invalid character in I<*endptr>.  If there were no digits at all, "
5582 "B<strtoul>()  stores the original value of I<nptr> in I<*endptr> (and "
5583 "returns 0).  In particular, if I<*nptr> is not \\(aq\\e0\\(aq but "
5584 "I<**endptr> is \\(aq\\e0\\(aq on return, the entire string is valid."
5585 msgstr ""
5586
5587 #. type: Plain text
5588 #: build/C/man3/strtoul.3:127
5589 msgid ""
5590 "The B<strtoull>()  function works just like the B<strtoul>()  function but "
5591 "returns an I<unsigned long long int> value."
5592 msgstr ""
5593
5594 #. type: Plain text
5595 #: build/C/man3/strtoul.3:148
5596 msgid ""
5597 "The B<strtoul>()  function returns either the result of the conversion or, "
5598 "if there was a leading minus sign, the negation of the result of the "
5599 "conversion represented as an unsigned value, unless the original "
5600 "(nonnegated) value would overflow; in the latter case, B<strtoul>()  returns "
5601 "B<ULONG_MAX> and sets I<errno> to B<ERANGE>.  Precisely the same holds for "
5602 "B<strtoull>()  (with B<ULLONG_MAX> instead of B<ULONG_MAX>)."
5603 msgstr ""
5604
5605 #. type: Plain text
5606 #: build/C/man3/strtoul.3:177
5607 msgid ""
5608 "The B<strtoul>(), B<strtoull>(), and B<strtouq>()  functions are thread-safe "
5609 "with exceptions.  These functions can be safely used in multithreaded "
5610 "applications, as long as B<setlocale>(3)  is not called to change the locale "
5611 "during their execution."
5612 msgstr ""
5613
5614 #. type: Plain text
5615 #: build/C/man3/strtoul.3:182
5616 msgid ""
5617 "B<strtoul>()  conforms to SVr4, C89, C99, and POSIX-2001, and B<strtoull>()  "
5618 "to C99 and POSIX.1-2001."
5619 msgstr ""
5620
5621 #. type: Plain text
5622 #: build/C/man3/strtoul.3:196
5623 msgid ""
5624 "Since B<strtoul>()  can legitimately return 0 or B<ULONG_MAX> (B<ULLONG_MAX> "
5625 "for B<strtoull>())  on both success and failure, the calling program should "
5626 "set I<errno> to 0 before the call, and then determine if an error occurred "
5627 "by checking whether I<errno> has a nonzero value after the call."
5628 msgstr ""
5629
5630 #. type: Plain text
5631 #: build/C/man3/strtoul.3:200
5632 msgid ""
5633 "In locales other than the \"C\" locale, other strings may be accepted.  (For "
5634 "example, the thousands separator of the current locale may be supported.)"
5635 msgstr ""
5636
5637 #. type: Plain text
5638 #: build/C/man3/strtoul.3:206
5639 #, no-wrap
5640 msgid ""
5641 "B<u_quad_t strtouq(const char *>I<nptr>B<, char **>I<endptr>B<, int "
5642 ">I<base>B<);>\n"
5643 msgstr ""
5644
5645 #. type: Plain text
5646 #: build/C/man3/strtoul.3:215
5647 msgid ""
5648 "with completely analogous definition.  Depending on the wordsize of the "
5649 "current architecture, this may be equivalent to B<strtoull>()  or to "
5650 "B<strtoul>()."
5651 msgstr ""
5652
5653 #. type: Plain text
5654 #: build/C/man3/strtoul.3:220
5655 msgid ""
5656 "Negative values are considered valid input and are silently converted to the "
5657 "equivalent I<unsigned long int> value."
5658 msgstr ""
5659
5660 #. type: Plain text
5661 #: build/C/man3/strtoul.3:231
5662 msgid "B<atof>(3), B<atoi>(3), B<atol>(3), B<strtod>(3), B<strtol>(3)"
5663 msgstr ""
5664
5665 #. type: TH
5666 #: build/C/man3/system.3:31
5667 #, no-wrap
5668 msgid "SYSTEM"
5669 msgstr ""
5670
5671 #. type: TH
5672 #: build/C/man3/system.3:31
5673 #, no-wrap
5674 msgid "2014-05-10"
5675 msgstr ""
5676
5677 #. type: Plain text
5678 #: build/C/man3/system.3:34
5679 msgid "system - execute a shell command"
5680 msgstr ""
5681
5682 #. type: Plain text
5683 #: build/C/man3/system.3:39
5684 #, no-wrap
5685 msgid "B<int system(const char *>I<command>B<);>\n"
5686 msgstr ""
5687
5688 #. type: Plain text
5689 #: build/C/man3/system.3:50
5690 msgid ""
5691 "The B<system>()  library function uses B<fork>(2)  to create a child process "
5692 "that executes the shell command specified in I<command> using B<execl>(3)  "
5693 "as follows:"
5694 msgstr ""
5695
5696 #. type: Plain text
5697 #: build/C/man3/system.3:52
5698 #, no-wrap
5699 msgid "    execl(\"/bin/sh\", \"sh\". \"-c\", command, (char *) 0);\n"
5700 msgstr ""
5701
5702 #. type: Plain text
5703 #: build/C/man3/system.3:55
5704 msgid "B<system>()  returns after the command has been completed."
5705 msgstr ""
5706
5707 #. type: Plain text
5708 #: build/C/man3/system.3:67
5709 msgid ""
5710 "During execution of the command, B<SIGCHLD> will be blocked, and B<SIGINT> "
5711 "and B<SIGQUIT> will be ignored, in the process that calls B<system>()  "
5712 "(these signals will be handled according to their defaults inside the child "
5713 "process that executes I<command>)."
5714 msgstr ""
5715
5716 #. type: Plain text
5717 #: build/C/man3/system.3:73
5718 msgid ""
5719 "If I<command> is NULL, then B<system>()  returns a status indicating whether "
5720 "a shell is available on the system"
5721 msgstr ""
5722
5723 #. type: Plain text
5724 #: build/C/man3/system.3:77
5725 msgid "The return value of B<system>()  is one of the following:"
5726 msgstr ""
5727
5728 #. type: Plain text
5729 #: build/C/man3/system.3:82
5730 msgid ""
5731 "If I<command> is NULL, then a nonzero value if a shell is available, or 0 if "
5732 "no shell is available."
5733 msgstr ""
5734
5735 #. type: Plain text
5736 #: build/C/man3/system.3:86
5737 msgid ""
5738 "If a child process could not be created, or its status could not be "
5739 "retrieved, the return value is -1."
5740 msgstr ""
5741
5742 #. type: Plain text
5743 #: build/C/man3/system.3:91
5744 msgid ""
5745 "If a shell could not be executed in the child process, then the return value "
5746 "is as though the child shell terminated by calling B<_exit>(2)  with the "
5747 "status 127."
5748 msgstr ""
5749
5750 #. type: Plain text
5751 #: build/C/man3/system.3:98
5752 msgid ""
5753 "If all system calls succeed, then the return value is the termination status "
5754 "of the child shell used to execute I<command>.  (The termination status of a "
5755 "shell is the termination status of the last command it executes.)"
5756 msgstr ""
5757
5758 #. type: Plain text
5759 #: build/C/man3/system.3:107
5760 msgid ""
5761 "In the last two cases, the return value is a \"wait status\" that can be "
5762 "examined using the macros described in B<waitpid>(2).  (i.e., B<WIFEXITED>()  "
5763 "B<WEXITSTATUS>()  and so on)."
5764 msgstr ""
5765
5766 #. type: Plain text
5767 #: build/C/man3/system.3:110
5768 msgid "B<system>()  does not affect the wait status of any other children."
5769 msgstr ""
5770
5771 #. type: Plain text
5772 #: build/C/man3/system.3:112
5773 msgid "C89, C99, POSIX.1-2001."
5774 msgstr ""
5775
5776 #. type: Plain text
5777 #: build/C/man3/system.3:129
5778 msgid ""
5779 "B<system>()  provides simplicity and convenience: it handles all of the "
5780 "details of calling B<fork>(2), B<execl>(3), and B<waitpid>(2), as well as "
5781 "the necessary manipulations of signals; in addition, the shell performs the "
5782 "usual substitutions and I/O redirections for I<command>.  The main cost of "
5783 "B<system>()  is inefficiency: additional system calls are required to create "
5784 "the process that runs the shell and to execute the shell."
5785 msgstr ""
5786
5787 #. type: Plain text
5788 #: build/C/man3/system.3:141
5789 msgid ""
5790 "If the B<_XOPEN_SOURCE> feature test macro is defined (before including "
5791 "I<any> header files), then the macros described in B<waitpid>(2)  "
5792 "(B<WEXITSTATUS>(), etc.) are made available when including "
5793 "I<E<lt>stdlib.hE<gt>>."
5794 msgstr ""
5795
5796 #. type: Plain text
5797 #: build/C/man3/system.3:152
5798 msgid ""
5799 "As mentioned, B<system>()  ignores B<SIGINT> and B<SIGQUIT>.  This may make "
5800 "programs that call it from a loop uninterruptible, unless they take care "
5801 "themselves to check the exit status of the child.  For example:"
5802 msgstr ""
5803
5804 #. type: Plain text
5805 #: build/C/man3/system.3:157
5806 #, no-wrap
5807 msgid ""
5808 "    while (something) {\n"
5809 "        int ret = system(\"foo\");\n"
5810 msgstr ""
5811
5812 #. type: Plain text
5813 #: build/C/man3/system.3:162
5814 #, no-wrap
5815 msgid ""
5816 "        if (WIFSIGNALED(ret) &&\n"
5817 "            (WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT))\n"
5818 "                break;\n"
5819 "    }\n"
5820 msgstr ""
5821
5822 #. type: Plain text
5823 #: build/C/man3/system.3:182
5824 msgid ""
5825 "Do not use B<system>()  from a program with set-user-ID or set-group-ID "
5826 "privileges, because strange values for some environment variables might be "
5827 "used to subvert system integrity.  Use the B<exec>(3)  family of functions "
5828 "instead, but not B<execlp>(3)  or B<execvp>(3).  B<system>()  will not, in "
5829 "fact, work properly from programs with set-user-ID or set-group-ID "
5830 "privileges on systems on which I</bin/sh> is bash version 2, since bash 2 "
5831 "drops privileges on startup.  (Debian uses a modified bash which does not do "
5832 "this when invoked as B<sh>.)"
5833 msgstr ""
5834
5835 #. type: Plain text
5836 #: build/C/man3/system.3:196
5837 msgid ""
5838 "In versions of glibc before 2.1.3, the check for the availability of "
5839 "I</bin/sh> was not actually performed if I<command> was NULL; instead it was "
5840 "always assumed to be available, and B<system>()  always returned 1 in this "
5841 "case.  Since glibc 2.1.3, this check is performed because, even though "
5842 "POSIX.1-2001 requires a conforming implementation to provide a shell, that "
5843 "shell may not be available or executable if the calling program has "
5844 "previously called B<chroot>(2)  (which is not specified by POSIX.1-2001)."
5845 msgstr ""
5846
5847 #. type: Plain text
5848 #: build/C/man3/system.3:202
5849 msgid ""
5850 "It is possible for the shell command to terminate with a status of 127, "
5851 "which yields a B<system>()  return value that is indistinguishable from the "
5852 "case where a shell could not be executed in the child process."
5853 msgstr ""
5854
5855 #. type: Plain text
5856 #: build/C/man3/system.3:210
5857 msgid ""
5858 "B<sh>(1), B<sigaction>(2), B<sigprocmask>(2), B<fork>(2), B<wait>(2), "
5859 "B<exec>(3), B<signal>(7)"
5860 msgstr ""
5861
5862 #. type: TH
5863 #: build/C/man7/vdso.7:13
5864 #, no-wrap
5865 msgid "VDSO"
5866 msgstr ""
5867
5868 #. type: TH
5869 #: build/C/man7/vdso.7:13
5870 #, no-wrap
5871 msgid "2014-02-01"
5872 msgstr ""
5873
5874 #. type: Plain text
5875 #: build/C/man7/vdso.7:16
5876 msgid "vDSO - overview of the virtual ELF dynamic shared object"
5877 msgstr ""
5878
5879 #. type: Plain text
5880 #: build/C/man7/vdso.7:18
5881 msgid "B<#include E<lt>sys/auxv.hE<gt>>"
5882 msgstr ""
5883
5884 #. type: Plain text
5885 #: build/C/man7/vdso.7:20
5886 msgid "B<void *vdso = (uintptr_t) getauxval(AT_SYSINFO_EHDR);>"
5887 msgstr ""
5888
5889 #. type: Plain text
5890 #: build/C/man7/vdso.7:29
5891 msgid ""
5892 "The \"vDSO\" (virtual dynamic shared object) is a small shared library that "
5893 "the kernel automatically maps into the address space of all user-space "
5894 "applications.  Applications usually do not need to concern themselves with "
5895 "these details as the vDSO is most commonly called by the C library.  This "
5896 "way you can code in the normal way using standard functions and the C "
5897 "library will take care of using any functionality that is available via the "
5898 "vDSO."
5899 msgstr ""
5900
5901 #. type: Plain text
5902 #: build/C/man7/vdso.7:37
5903 msgid ""
5904 "Why does the vDSO exist at all? There are some system calls the kernel "
5905 "provides that user-space code ends up using frequently, to the point that "
5906 "such calls can dominate overall performance.  This is due both to the "
5907 "frequency of the call as well as the context-switch overhead that results "
5908 "from exiting user space and entering the kernel."
5909 msgstr ""
5910
5911 #. type: Plain text
5912 #: build/C/man7/vdso.7:42
5913 msgid ""
5914 "The rest of this documentation is geared toward the curious and/or C library "
5915 "writers rather than general developers.  If you're trying to call the vDSO "
5916 "in your own application rather than using the C library, you're most likely "
5917 "doing it wrong."
5918 msgstr ""
5919
5920 #. type: SS
5921 #: build/C/man7/vdso.7:42
5922 #, no-wrap
5923 msgid "Example background"
5924 msgstr ""
5925
5926 #. type: Plain text
5927 #: build/C/man7/vdso.7:56
5928 msgid ""
5929 "Making system calls can be slow.  In x86 32-bit systems, you can trigger a "
5930 "software interrupt (I<int $0x80>)  to tell the kernel you wish to make a "
5931 "system call.  However, this instruction is expensive: it goes through the "
5932 "full interrupt-handling paths in the processor's microcode as well as in the "
5933 "kernel.  Newer processors have faster (but backward incompatible) "
5934 "instructions to initiate system calls.  Rather than require the C library to "
5935 "figure out if this functionality is available at run time, the C library can "
5936 "use functions provided by the kernel in the vDSO."
5937 msgstr ""
5938
5939 #. type: Plain text
5940 #: build/C/man7/vdso.7:63
5941 msgid ""
5942 "Note that the terminology can be confusing.  On x86 systems, the vDSO "
5943 "function used to determine the preferred method of making a system call is "
5944 "named \"__kernel_vsyscall\", but on x86_64, the term \"vsyscall\" also "
5945 "refers to an obsolete way to ask the kernel what time it is or what CPU the "
5946 "caller is on."
5947 msgstr ""
5948
5949 #. type: Plain text
5950 #: build/C/man7/vdso.7:79
5951 msgid ""
5952 "One frequently used system call is B<gettimeofday>(2).  This system call is "
5953 "called both directly by user-space applications as well as indirectly by the "
5954 "C library.  Think timestamps or timing loops or polling\\(emall of these "
5955 "frequently need to know what time it is right now.  This information is also "
5956 "not secret\\(emany application in any privilege mode (root or any "
5957 "unprivileged user) will get the same answer.  Thus the kernel arranges for "
5958 "the information required to answer this question to be placed in memory the "
5959 "process can access.  Now a call to B<gettimeofday>(2)  changes from a system "
5960 "call to a normal function call and a few memory accesses."
5961 msgstr ""
5962
5963 #. type: SS
5964 #: build/C/man7/vdso.7:79
5965 #, no-wrap
5966 msgid "Finding the vDSO"
5967 msgstr ""
5968
5969 #. type: Plain text
5970 #: build/C/man7/vdso.7:86
5971 msgid ""
5972 "The base address of the vDSO (if one exists) is passed by the kernel to each "
5973 "program in the initial auxiliary vector (see B<getauxval>(3)), via the "
5974 "B<AT_SYSINFO_EHDR> tag."
5975 msgstr ""
5976
5977 #. type: Plain text
5978 #: build/C/man7/vdso.7:95
5979 msgid ""
5980 "You must not assume the vDSO is mapped at any particular location in the "
5981 "user's memory map.  The base address will usually be randomized at run time "
5982 "every time a new process image is created (at B<execve>(2)  time).  This is "
5983 "done for security reasons, to prevent \"return-to-libc\" attacks."
5984 msgstr ""
5985
5986 #. type: Plain text
5987 #: build/C/man7/vdso.7:104
5988 msgid ""
5989 "For some architectures, there is also an B<AT_SYSINFO> tag.  This is used "
5990 "only for locating the vsyscall entry point and is frequently omitted or set "
5991 "to 0 (meaning it's not available).  This tag is a throwback to the initial "
5992 "vDSO work (see I<History> below) and its use should be avoided."
5993 msgstr ""
5994
5995 #. type: SS
5996 #: build/C/man7/vdso.7:104
5997 #, no-wrap
5998 msgid "File format"
5999 msgstr ""
6000
6001 #. type: Plain text
6002 #: build/C/man7/vdso.7:111
6003 msgid ""
6004 "Since the vDSO is a fully formed ELF image, you can do symbol lookups on "
6005 "it.  This allows new symbols to be added with newer kernel releases, and "
6006 "allows the C library to detect available functionality at run time when "
6007 "running under different kernel versions.  Oftentimes the C library will do "
6008 "detection with the first call and then cache the result for subsequent "
6009 "calls."
6010 msgstr ""
6011
6012 #. type: Plain text
6013 #: build/C/man7/vdso.7:120
6014 msgid ""
6015 "All symbols are also versioned (using the GNU version format).  This allows "
6016 "the kernel to update the function signature without breaking backward "
6017 "compatibility.  This means changing the arguments that the function accepts "
6018 "as well as the return value.  Thus, when looking up a symbol in the vDSO, "
6019 "you must always include the version to match the ABI you expect."
6020 msgstr ""
6021
6022 #. type: Plain text
6023 #: build/C/man7/vdso.7:125
6024 msgid ""
6025 "Typically the vDSO follows the naming convention of prefixing all symbols "
6026 "with \"__vdso_\" or \"__kernel_\" so as to distinguish them from other "
6027 "standard symbols.  For example, the \"gettimeofday\" function is named "
6028 "\"__vdso_gettimeofday\"."
6029 msgstr ""
6030
6031 #. type: Plain text
6032 #: build/C/man7/vdso.7:129
6033 msgid ""
6034 "You use the standard C calling conventions when calling any of these "
6035 "functions.  No need to worry about weird register or stack behavior."
6036 msgstr ""
6037
6038 #. type: SS
6039 #: build/C/man7/vdso.7:130
6040 #, no-wrap
6041 msgid "Source"
6042 msgstr ""
6043
6044 #. type: Plain text
6045 #: build/C/man7/vdso.7:134
6046 msgid ""
6047 "When you compile the kernel, it will automatically compile and link the vDSO "
6048 "code for you.  You will frequently find it under the architecture-specific "
6049 "directory:"
6050 msgstr ""
6051
6052 #. type: Plain text
6053 #: build/C/man7/vdso.7:136
6054 #, no-wrap
6055 msgid "    find arch/$ARCH/ -name '*vdso*.so*' -o -name '*gate*.so*'\n"
6056 msgstr ""
6057
6058 #. type: SS
6059 #: build/C/man7/vdso.7:137
6060 #, no-wrap
6061 msgid "vDSO names"
6062 msgstr ""
6063
6064 #. type: Plain text
6065 #: build/C/man7/vdso.7:143
6066 msgid ""
6067 "The name of the vDSO varies across architectures.  It will often show up in "
6068 "things like glibc's B<ldd>(1)  output.  The exact name should not matter to "
6069 "any code, so do not hardcode it."
6070 msgstr ""
6071
6072 #. type: tbl table
6073 #: build/C/man7/vdso.7:148
6074 #, no-wrap
6075 msgid "user ABI\tvDSO name\n"
6076 msgstr ""
6077
6078 #. type: tbl table
6079 #: build/C/man7/vdso.7:149 build/C/man7/vdso.7:198 build/C/man7/vdso.7:235 build/C/man7/vdso.7:263 build/C/man7/vdso.7:299 build/C/man7/vdso.7:333 build/C/man7/vdso.7:359 build/C/man7/vdso.7:384 build/C/man7/vdso.7:402 build/C/man7/vdso.7:420 build/C/man7/vdso.7:438 build/C/man7/vdso.7:458 build/C/man7/vdso.7:477
6080 #, no-wrap
6081 msgid "_\n"
6082 msgstr ""
6083
6084 #. type: tbl table
6085 #: build/C/man7/vdso.7:150
6086 #, no-wrap
6087 msgid "aarch64\tlinux-vdso.so.1\n"
6088 msgstr ""
6089
6090 #. type: tbl table
6091 #: build/C/man7/vdso.7:151
6092 #, no-wrap
6093 msgid "ia64\tlinux-gate.so.1\n"
6094 msgstr ""
6095
6096 #. type: tbl table
6097 #: build/C/man7/vdso.7:152
6098 #, no-wrap
6099 msgid "ppc/32\tlinux-vdso32.so.1\n"
6100 msgstr ""
6101
6102 #. type: tbl table
6103 #: build/C/man7/vdso.7:153
6104 #, no-wrap
6105 msgid "ppc/64\tlinux-vdso64.so.1\n"
6106 msgstr ""
6107
6108 #. type: tbl table
6109 #: build/C/man7/vdso.7:154
6110 #, no-wrap
6111 msgid "s390\tlinux-vdso32.so.1\n"
6112 msgstr ""
6113
6114 #. type: tbl table
6115 #: build/C/man7/vdso.7:155
6116 #, no-wrap
6117 msgid "s390x\tlinux-vdso64.so.1\n"
6118 msgstr ""
6119
6120 #. type: tbl table
6121 #: build/C/man7/vdso.7:156
6122 #, no-wrap
6123 msgid "sh\tlinux-gate.so.1\n"
6124 msgstr ""
6125
6126 #. type: tbl table
6127 #: build/C/man7/vdso.7:157
6128 #, no-wrap
6129 msgid "i386\tlinux-gate.so.1\n"
6130 msgstr ""
6131
6132 #. type: tbl table
6133 #: build/C/man7/vdso.7:158
6134 #, no-wrap
6135 msgid "x86_64\tlinux-vdso.so.1\n"
6136 msgstr ""
6137
6138 #. type: tbl table
6139 #: build/C/man7/vdso.7:159
6140 #, no-wrap
6141 msgid "x86/x32\tlinux-vdso.so.1\n"
6142 msgstr ""
6143
6144 #. type: SH
6145 #: build/C/man7/vdso.7:165
6146 #, no-wrap
6147 msgid "ARCHITECTURE-SPECIFIC NOTES"
6148 msgstr ""
6149
6150 #. type: Plain text
6151 #: build/C/man7/vdso.7:168
6152 msgid "The subsections below provide architecture-specific notes on the vDSO."
6153 msgstr ""
6154
6155 #. type: Plain text
6156 #: build/C/man7/vdso.7:177
6157 msgid ""
6158 "Note that the vDSO that is used is based on the ABI of your user-space code "
6159 "and not the ABI of the kernel.  Thus, for example, when you run an i386 "
6160 "32-bit ELF binary, you'll get the same vDSO regardless of whether you run it "
6161 "under an i386 32-bit kernel or under an x86_64 64-bit kernel.  Therefore, "
6162 "the name of the user-space ABI should be used to determine which of the "
6163 "sections below is relevant."
6164 msgstr ""
6165
6166 #. type: SS
6167 #: build/C/man7/vdso.7:177
6168 #, no-wrap
6169 msgid "ARM functions"
6170 msgstr ""
6171
6172 #.  See linux/arch/arm/kernel/entry-armv.S
6173 #.  See linux/Documentation/arm/kernel_user_helpers.txt
6174 #. type: Plain text
6175 #: build/C/man7/vdso.7:184
6176 msgid ""
6177 "The ARM port has a code page full of utility functions.  Since it's just a "
6178 "raw page of code, there is no ELF information for doing symbol lookups or "
6179 "versioning.  It does provide support for different versions though."
6180 msgstr ""
6181
6182 #. type: Plain text
6183 #: build/C/man7/vdso.7:189
6184 msgid ""
6185 "For information on this code page, it's best to refer to the kernel "
6186 "documentation as it's extremely detailed and covers everything you need to "
6187 "know: I<Documentation/arm/kernel_user_helpers.txt>."
6188 msgstr ""
6189
6190 #. type: SS
6191 #: build/C/man7/vdso.7:189
6192 #, no-wrap
6193 msgid "aarch64 functions"
6194 msgstr ""
6195
6196 #.  See linux/arch/x86/vdso/vdso32.lds.S
6197 #. type: Plain text
6198 #: build/C/man7/vdso.7:192 build/C/man7/vdso.7:229 build/C/man7/vdso.7:353 build/C/man7/vdso.7:378 build/C/man7/vdso.7:396 build/C/man7/vdso.7:414 build/C/man7/vdso.7:432 build/C/man7/vdso.7:471
6199 msgid "The table below lists the symbols exported by the vDSO."
6200 msgstr ""
6201
6202 #. type: tbl table
6203 #: build/C/man7/vdso.7:197 build/C/man7/vdso.7:234 build/C/man7/vdso.7:332 build/C/man7/vdso.7:358 build/C/man7/vdso.7:383 build/C/man7/vdso.7:401 build/C/man7/vdso.7:419 build/C/man7/vdso.7:437 build/C/man7/vdso.7:457 build/C/man7/vdso.7:476
6204 #, no-wrap
6205 msgid "symbol\tversion\n"
6206 msgstr ""
6207
6208 #. type: tbl table
6209 #: build/C/man7/vdso.7:199
6210 #, no-wrap
6211 msgid "__kernel_rt_sigreturn\tLINUX_2.6.39\n"
6212 msgstr ""
6213
6214 #. type: tbl table
6215 #: build/C/man7/vdso.7:200
6216 #, no-wrap
6217 msgid "__kernel_gettimeofday\tLINUX_2.6.39\n"
6218 msgstr ""
6219
6220 #. type: tbl table
6221 #: build/C/man7/vdso.7:201
6222 #, no-wrap
6223 msgid "__kernel_clock_gettime\tLINUX_2.6.39\n"
6224 msgstr ""
6225
6226 #. type: tbl table
6227 #: build/C/man7/vdso.7:202
6228 #, no-wrap
6229 msgid "__kernel_clock_getres\tLINUX_2.6.39\n"
6230 msgstr ""
6231
6232 #. type: SS
6233 #: build/C/man7/vdso.7:208
6234 #, no-wrap
6235 msgid "bfin (Blackfin) functions"
6236 msgstr ""
6237
6238 #.  See linux/arch/blackfin/kernel/fixed_code.S
6239 #.  See http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:fixed-code
6240 #. type: Plain text
6241 #: build/C/man7/vdso.7:220
6242 msgid ""
6243 "As this CPU lacks a memory management unit (MMU), it doesn't set up a vDSO "
6244 "in the normal sense.  Instead, it maps at boot time a few raw functions into "
6245 "a fixed location in memory.  User-space applications then call directly into "
6246 "that region.  There is no provision for backward compatibility beyond "
6247 "sniffing raw opcodes, but as this is an embedded CPU, it can get away with "
6248 "things\\(emsome of the object formats it runs aren't even ELF based (they're "
6249 "bFLT/FLAT)."
6250 msgstr ""
6251
6252 #. type: Plain text
6253 #: build/C/man7/vdso.7:223
6254 msgid ""
6255 "For information on this code page, it's best to refer to the public "
6256 "documentation:"
6257 msgstr ""
6258
6259 #. type: Plain text
6260 #: build/C/man7/vdso.7:225
6261 msgid "http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:fixed-code"
6262 msgstr ""
6263
6264 #. type: SS
6265 #: build/C/man7/vdso.7:225
6266 #, no-wrap
6267 msgid "ia64 (Itanium) functions"
6268 msgstr ""
6269
6270 #. type: tbl table
6271 #: build/C/man7/vdso.7:236
6272 #, no-wrap
6273 msgid "__kernel_sigtramp\tLINUX_2.5\n"
6274 msgstr ""
6275
6276 #. type: tbl table
6277 #: build/C/man7/vdso.7:237
6278 #, no-wrap
6279 msgid "__kernel_syscall_via_break\tLINUX_2.5\n"
6280 msgstr ""
6281
6282 #. type: tbl table
6283 #: build/C/man7/vdso.7:238
6284 #, no-wrap
6285 msgid "__kernel_syscall_via_epc\tLINUX_2.5\n"
6286 msgstr ""
6287
6288 #. type: Plain text
6289 #: build/C/man7/vdso.7:257
6290 msgid ""
6291 "The Itanium port is somewhat tricky.  In addition to the vDSO above, it also "
6292 "has \"light-weight system calls\" (also known as \"fast syscalls\" or "
6293 "\"fsys\").  You can invoke these via the I<__kernel_syscall_via_epc> vDSO "
6294 "helper.  The system calls listed here have the same semantics as if you "
6295 "called them directly via B<syscall>(2), so refer to the relevant "
6296 "documentation for each.  The table below lists the functions available via "
6297 "this mechanism."
6298 msgstr ""
6299
6300 #. type: tbl table
6301 #: build/C/man7/vdso.7:262
6302 #, no-wrap
6303 msgid "function\n"
6304 msgstr ""
6305
6306 #. type: tbl table
6307 #: build/C/man7/vdso.7:264
6308 #, no-wrap
6309 msgid "clock_gettime\n"
6310 msgstr ""
6311
6312 #. type: tbl table
6313 #: build/C/man7/vdso.7:265
6314 #, no-wrap
6315 msgid "getcpu\n"
6316 msgstr ""
6317
6318 #. type: tbl table
6319 #: build/C/man7/vdso.7:266
6320 #, no-wrap
6321 msgid "getpid\n"
6322 msgstr ""
6323
6324 #. type: tbl table
6325 #: build/C/man7/vdso.7:267
6326 #, no-wrap
6327 msgid "getppid\n"
6328 msgstr ""
6329
6330 #. type: tbl table
6331 #: build/C/man7/vdso.7:268
6332 #, no-wrap
6333 msgid "gettimeofday\n"
6334 msgstr ""
6335
6336 #. type: tbl table
6337 #: build/C/man7/vdso.7:269
6338 #, no-wrap
6339 msgid "set_tid_address\n"
6340 msgstr ""
6341
6342 #. type: SS
6343 #: build/C/man7/vdso.7:275
6344 #, no-wrap
6345 msgid "parisc (hppa) functions"
6346 msgstr ""
6347
6348 #.  See linux/arch/parisc/kernel/syscall.S
6349 #.  See linux/Documentation/parisc/registers
6350 #. type: Plain text
6351 #: build/C/man7/vdso.7:286
6352 msgid ""
6353 "The parisc port has a code page full of utility functions called a gateway "
6354 "page.  Rather than use the normal ELF auxiliary vector approach, it passes "
6355 "the address of the page to the process via the SR2 register.  The "
6356 "permissions on the page are such that merely executing those addresses "
6357 "automatically executes with kernel privileges and not in user space.  This "
6358 "is done to match the way HP-UX works."
6359 msgstr ""
6360
6361 #. type: Plain text
6362 #: build/C/man7/vdso.7:291
6363 msgid ""
6364 "Since it's just a raw page of code, there is no ELF information for doing "
6365 "symbol lookups or versioning.  Simply call into the appropriate offset via "
6366 "the branch instruction, for example:"
6367 msgstr ""
6368
6369 #. type: Plain text
6370 #: build/C/man7/vdso.7:293
6371 #, no-wrap
6372 msgid "    ble E<lt>offsetE<gt>(%sr2, %r0)\n"
6373 msgstr ""
6374
6375 #. type: tbl table
6376 #: build/C/man7/vdso.7:298
6377 #, no-wrap
6378 msgid "offset\tfunction\n"
6379 msgstr ""
6380
6381 #. type: tbl table
6382 #: build/C/man7/vdso.7:300
6383 #, no-wrap
6384 msgid "00b0\tlws_entry\n"
6385 msgstr ""
6386
6387 #. type: tbl table
6388 #: build/C/man7/vdso.7:301
6389 #, no-wrap
6390 msgid "00e0\tset_thread_pointer\n"
6391 msgstr ""
6392
6393 #. type: tbl table
6394 #: build/C/man7/vdso.7:302
6395 #, no-wrap
6396 msgid "0100\tlinux_gateway_entry (syscall)\n"
6397 msgstr ""
6398
6399 #. type: tbl table
6400 #: build/C/man7/vdso.7:303
6401 #, no-wrap
6402 msgid "0268\tsyscall_nosys\n"
6403 msgstr ""
6404
6405 #. type: tbl table
6406 #: build/C/man7/vdso.7:304
6407 #, no-wrap
6408 msgid "0274\ttracesys\n"
6409 msgstr ""
6410
6411 #. type: tbl table
6412 #: build/C/man7/vdso.7:305
6413 #, no-wrap
6414 msgid "0324\ttracesys_next\n"
6415 msgstr ""
6416
6417 #. type: tbl table
6418 #: build/C/man7/vdso.7:306
6419 #, no-wrap
6420 msgid "0368\ttracesys_exit\n"
6421 msgstr ""
6422
6423 #. type: tbl table
6424 #: build/C/man7/vdso.7:307
6425 #, no-wrap
6426 msgid "03a0\ttracesys_sigexit\n"
6427 msgstr ""
6428
6429 #. type: tbl table
6430 #: build/C/man7/vdso.7:308
6431 #, no-wrap
6432 msgid "03b8\tlws_start\n"
6433 msgstr ""
6434
6435 #. type: tbl table
6436 #: build/C/man7/vdso.7:309
6437 #, no-wrap
6438 msgid "03dc\tlws_exit_nosys\n"
6439 msgstr ""
6440
6441 #. type: tbl table
6442 #: build/C/man7/vdso.7:310
6443 #, no-wrap
6444 msgid "03e0\tlws_exit\n"
6445 msgstr ""
6446
6447 #. type: tbl table
6448 #: build/C/man7/vdso.7:311
6449 #, no-wrap
6450 msgid "03e4\tlws_compare_and_swap64\n"
6451 msgstr ""
6452
6453 #. type: tbl table
6454 #: build/C/man7/vdso.7:312
6455 #, no-wrap
6456 msgid "03e8\tlws_compare_and_swap\n"
6457 msgstr ""
6458
6459 #. type: tbl table
6460 #: build/C/man7/vdso.7:313
6461 #, no-wrap
6462 msgid "0404\tcas_wouldblock\n"
6463 msgstr ""
6464
6465 #. type: tbl table
6466 #: build/C/man7/vdso.7:314
6467 #, no-wrap
6468 msgid "0410\tcas_action\n"
6469 msgstr ""
6470
6471 #. type: SS
6472 #: build/C/man7/vdso.7:320
6473 #, no-wrap
6474 msgid "ppc/32 functions"
6475 msgstr ""
6476
6477 #.  See linux/arch/powerpc/kernel/vdso32/vdso32.lds.S
6478 #. type: Plain text
6479 #: build/C/man7/vdso.7:327
6480 msgid ""
6481 "The table below lists the symbols exported by the vDSO.  The functions "
6482 "marked with a I<*> are available only when the kernel is a PowerPC64 "
6483 "(64-bit) kernel."
6484 msgstr ""
6485
6486 #. type: tbl table
6487 #: build/C/man7/vdso.7:334 build/C/man7/vdso.7:360
6488 #, no-wrap
6489 msgid "__kernel_clock_getres\tLINUX_2.6.15\n"
6490 msgstr ""
6491
6492 #. type: tbl table
6493 #: build/C/man7/vdso.7:335 build/C/man7/vdso.7:361
6494 #, no-wrap
6495 msgid "__kernel_clock_gettime\tLINUX_2.6.15\n"
6496 msgstr ""
6497
6498 #. type: tbl table
6499 #: build/C/man7/vdso.7:336 build/C/man7/vdso.7:362
6500 #, no-wrap
6501 msgid "__kernel_datapage_offset\tLINUX_2.6.15\n"
6502 msgstr ""
6503
6504 #. type: tbl table
6505 #: build/C/man7/vdso.7:337 build/C/man7/vdso.7:363
6506 #, no-wrap
6507 msgid "__kernel_get_syscall_map\tLINUX_2.6.15\n"
6508 msgstr ""
6509
6510 #. type: tbl table
6511 #: build/C/man7/vdso.7:338 build/C/man7/vdso.7:364
6512 #, no-wrap
6513 msgid "__kernel_get_tbfreq\tLINUX_2.6.15\n"
6514 msgstr ""
6515
6516 #. type: tbl table
6517 #: build/C/man7/vdso.7:339
6518 #, no-wrap
6519 msgid "__kernel_getcpu I<*>\tLINUX_2.6.15\n"
6520 msgstr ""
6521
6522 #. type: tbl table
6523 #: build/C/man7/vdso.7:340 build/C/man7/vdso.7:366
6524 #, no-wrap
6525 msgid "__kernel_gettimeofday\tLINUX_2.6.15\n"
6526 msgstr ""
6527
6528 #. type: tbl table
6529 #: build/C/man7/vdso.7:341
6530 #, no-wrap
6531 msgid "__kernel_sigtramp_rt32\tLINUX_2.6.15\n"
6532 msgstr ""
6533
6534 #. type: tbl table
6535 #: build/C/man7/vdso.7:342
6536 #, no-wrap
6537 msgid "__kernel_sigtramp32\tLINUX_2.6.15\n"
6538 msgstr ""
6539
6540 #. type: tbl table
6541 #: build/C/man7/vdso.7:343 build/C/man7/vdso.7:368
6542 #, no-wrap
6543 msgid "__kernel_sync_dicache\tLINUX_2.6.15\n"
6544 msgstr ""
6545
6546 #. type: tbl table
6547 #: build/C/man7/vdso.7:344 build/C/man7/vdso.7:369
6548 #, no-wrap
6549 msgid "__kernel_sync_dicache_p5\tLINUX_2.6.15\n"
6550 msgstr ""
6551
6552 #. type: SS
6553 #: build/C/man7/vdso.7:350
6554 #, no-wrap
6555 msgid "ppc/64 functions"
6556 msgstr ""
6557
6558 #. type: tbl table
6559 #: build/C/man7/vdso.7:365
6560 #, no-wrap
6561 msgid "__kernel_getcpu\tLINUX_2.6.15\n"
6562 msgstr ""
6563
6564 #. type: tbl table
6565 #: build/C/man7/vdso.7:367
6566 #, no-wrap
6567 msgid "__kernel_sigtramp_rt64\tLINUX_2.6.15\n"
6568 msgstr ""
6569
6570 #. type: SS
6571 #: build/C/man7/vdso.7:375
6572 #, no-wrap
6573 msgid "s390 functions"
6574 msgstr ""
6575
6576 #. type: tbl table
6577 #: build/C/man7/vdso.7:385 build/C/man7/vdso.7:403
6578 #, no-wrap
6579 msgid "__kernel_clock_getres\tLINUX_2.6.29\n"
6580 msgstr ""
6581
6582 #. type: tbl table
6583 #: build/C/man7/vdso.7:386 build/C/man7/vdso.7:404
6584 #, no-wrap
6585 msgid "__kernel_clock_gettime\tLINUX_2.6.29\n"
6586 msgstr ""
6587
6588 #. type: tbl table
6589 #: build/C/man7/vdso.7:387 build/C/man7/vdso.7:405
6590 #, no-wrap
6591 msgid "__kernel_gettimeofday\tLINUX_2.6.29\n"
6592 msgstr ""
6593
6594 #. type: SS
6595 #: build/C/man7/vdso.7:393
6596 #, no-wrap
6597 msgid "s390x functions"
6598 msgstr ""
6599
6600 #. type: SS
6601 #: build/C/man7/vdso.7:411
6602 #, no-wrap
6603 msgid "sh (SuperH) functions"
6604 msgstr ""
6605
6606 #. type: tbl table
6607 #: build/C/man7/vdso.7:421
6608 #, no-wrap
6609 msgid "__kernel_rt_sigreturn\tLINUX_2.6\n"
6610 msgstr ""
6611
6612 #. type: tbl table
6613 #: build/C/man7/vdso.7:422
6614 #, no-wrap
6615 msgid "__kernel_sigreturn\tLINUX_2.6\n"
6616 msgstr ""
6617
6618 #. type: tbl table
6619 #: build/C/man7/vdso.7:423
6620 #, no-wrap
6621 msgid "__kernel_vsyscall\tLINUX_2.6\n"
6622 msgstr ""
6623
6624 #. type: SS
6625 #: build/C/man7/vdso.7:429
6626 #, no-wrap
6627 msgid "i386 functions"
6628 msgstr ""
6629
6630 #. type: tbl table
6631 #: build/C/man7/vdso.7:439
6632 #, no-wrap
6633 msgid "__kernel_sigreturn\tLINUX_2.5\n"
6634 msgstr ""
6635
6636 #. type: tbl table
6637 #: build/C/man7/vdso.7:440
6638 #, no-wrap
6639 msgid "__kernel_rt_sigreturn\tLINUX_2.5\n"
6640 msgstr ""
6641
6642 #. type: tbl table
6643 #: build/C/man7/vdso.7:441
6644 #, no-wrap
6645 msgid "__kernel_vsyscall\tLINUX_2.5\n"
6646 msgstr ""
6647
6648 #. type: SS
6649 #: build/C/man7/vdso.7:447
6650 #, no-wrap
6651 msgid "x86_64 functions"
6652 msgstr ""
6653
6654 #.  See linux/arch/x86/vdso/vdso.lds.S
6655 #. type: Plain text
6656 #: build/C/man7/vdso.7:452
6657 msgid ""
6658 "The table below lists the symbols exported by the vDSO.  All of these "
6659 "symbols are also available without the \"__vdso_\" prefix, but you should "
6660 "ignore those and stick to the names below."
6661 msgstr ""
6662
6663 #. type: tbl table
6664 #: build/C/man7/vdso.7:459 build/C/man7/vdso.7:478
6665 #, no-wrap
6666 msgid "__vdso_clock_gettime\tLINUX_2.6\n"
6667 msgstr ""
6668
6669 #. type: tbl table
6670 #: build/C/man7/vdso.7:460 build/C/man7/vdso.7:479
6671 #, no-wrap
6672 msgid "__vdso_getcpu\tLINUX_2.6\n"
6673 msgstr ""
6674
6675 #. type: tbl table
6676 #: build/C/man7/vdso.7:461 build/C/man7/vdso.7:480
6677 #, no-wrap
6678 msgid "__vdso_gettimeofday\tLINUX_2.6\n"
6679 msgstr ""
6680
6681 #. type: tbl table
6682 #: build/C/man7/vdso.7:462 build/C/man7/vdso.7:481
6683 #, no-wrap
6684 msgid "__vdso_time\tLINUX_2.6\n"
6685 msgstr ""
6686
6687 #. type: SS
6688 #: build/C/man7/vdso.7:468
6689 #, no-wrap
6690 msgid "x86/x32 functions"
6691 msgstr ""
6692
6693 #. type: SS
6694 #: build/C/man7/vdso.7:487
6695 #, no-wrap
6696 msgid "History"
6697 msgstr ""
6698
6699 #. type: Plain text
6700 #: build/C/man7/vdso.7:494
6701 msgid ""
6702 "The vDSO was originally just a single function\\(emthe vsyscall.  In older "
6703 "kernels, you might see that name in a process's memory map rather than "
6704 "\"vdso\".  Over time, people realized that this mechanism was a great way to "
6705 "pass more functionality to user space, so it was reconceived as a vDSO in "
6706 "the current format."
6707 msgstr ""
6708
6709 #. type: Plain text
6710 #: build/C/man7/vdso.7:498
6711 msgid "B<syscalls>(2), B<getauxval>(3), B<proc>(5)"
6712 msgstr ""
6713
6714 #. type: Plain text
6715 #: build/C/man7/vdso.7:500
6716 msgid "The documents, examples, and source code in the Linux source code tree:"
6717 msgstr ""
6718
6719 #. type: Plain text
6720 #: build/C/man7/vdso.7:506
6721 #, no-wrap
6722 msgid ""
6723 "Documentation/ABI/stable/vdso\n"
6724 "Documentation/ia64/fsys.txt\n"
6725 "Documentation/vDSO/* (includes examples of using the vDSO)\n"
6726 msgstr ""
6727
6728 #. type: Plain text
6729 #: build/C/man7/vdso.7:508
6730 #, no-wrap
6731 msgid "find arch/ -iname '*vdso*' -o -iname '*gate*'\n"
6732 msgstr ""
6733
6734 #. type: TH
6735 #: build/C/man3/wcstombs.3:16
6736 #, no-wrap
6737 msgid "WCSTOMBS"
6738 msgstr ""
6739
6740 #. type: Plain text
6741 #: build/C/man3/wcstombs.3:19
6742 msgid "wcstombs - convert a wide-character string to a multibyte string"
6743 msgstr ""
6744
6745 #. type: Plain text
6746 #: build/C/man3/wcstombs.3:24
6747 #, no-wrap
6748 msgid ""
6749 "B<size_t wcstombs(char *>I<dest>B<, const wchar_t *>I<src>B<, size_t "
6750 ">I<n>B<);>\n"
6751 msgstr ""
6752
6753 #. type: Plain text
6754 #: build/C/man3/wcstombs.3:42
6755 msgid ""
6756 "If I<dest> is not NULL, the B<wcstombs>()  function converts the "
6757 "wide-character string I<src> to a multibyte string starting at I<dest>.  At "
6758 "most I<n> bytes are written to I<dest>.  The conversion starts in the "
6759 "initial state.  The conversion can stop for three reasons:"
6760 msgstr ""
6761
6762 #. type: Plain text
6763 #: build/C/man3/wcstombs.3:48
6764 msgid ""
6765 "1. A wide character has been encountered that can not be represented as a "
6766 "multibyte sequence (according to the current locale).  In this case, "
6767 "I<(size_t)\\ -1> is returned."
6768 msgstr ""
6769
6770 #. type: Plain text
6771 #: build/C/man3/wcstombs.3:53
6772 msgid ""
6773 "2. The length limit forces a stop.  In this case, the number of bytes "
6774 "written to I<dest> is returned, but the shift state at this point is lost."
6775 msgstr ""
6776
6777 #. type: Plain text
6778 #: build/C/man3/wcstombs.3:60
6779 msgid ""
6780 "3. The wide-character string has been completely converted, including the "
6781 "terminating null wide character (L\\(aq\\e0\\(aq).  In this case, the "
6782 "conversion ends in the initial state.  The number of bytes written to "
6783 "I<dest>, excluding the terminating null byte (\\(aq\\e0\\(aq), is returned."
6784 msgstr ""
6785
6786 #. type: Plain text
6787 #: build/C/man3/wcstombs.3:66
6788 msgid ""
6789 "The programmer must ensure that there is room for at least I<n> bytes at "
6790 "I<dest>."
6791 msgstr ""
6792
6793 #. type: Plain text
6794 #: build/C/man3/wcstombs.3:74
6795 msgid ""
6796 "If I<dest> is NULL, I<n> is ignored, and the conversion proceeds as above, "
6797 "except that the converted bytes are not written out to memory, and no length "
6798 "limit exists."
6799 msgstr ""
6800
6801 #. type: Plain text
6802 #: build/C/man3/wcstombs.3:79
6803 msgid ""
6804 "In order to avoid the case 2 above, the programmer should make sure I<n> is "
6805 "greater than or equal to I<wcstombs(NULL,src,0)+1>."
6806 msgstr ""
6807
6808 #. type: Plain text
6809 #: build/C/man3/wcstombs.3:89
6810 msgid ""
6811 "The B<wcstombs>()  function returns the number of bytes that make up the "
6812 "converted part of a multibyte sequence, not including the terminating null "
6813 "byte.  If a wide character was encountered which could not be converted, "
6814 "I<(size_t)\\ -1> is returned."
6815 msgstr ""
6816
6817 #. type: Plain text
6818 #: build/C/man3/wcstombs.3:98
6819 msgid ""
6820 "The behavior of B<wcstombs>()  depends on the B<LC_CTYPE> category of the "
6821 "current locale."
6822 msgstr ""
6823
6824 #. type: Plain text
6825 #: build/C/man3/wcstombs.3:103
6826 msgid ""
6827 "The function B<wcsrtombs>(3)  provides a thread safe interface to the same "
6828 "functionality."
6829 msgstr ""
6830
6831 #. type: Plain text
6832 #: build/C/man3/wcstombs.3:109
6833 msgid "B<mblen>(3), B<mbtowc>(3), B<mbstowcs>(3), B<wcsrtombs>(3)  B<wctom>(3)"
6834 msgstr ""
6835
6836 #. type: TH
6837 #: build/C/man3/wctomb.3:16
6838 #, no-wrap
6839 msgid "WCTOMB"
6840 msgstr ""
6841
6842 #. type: Plain text
6843 #: build/C/man3/wctomb.3:19
6844 msgid "wctomb - convert a wide character to a multibyte sequence"
6845 msgstr ""
6846
6847 #. type: Plain text
6848 #: build/C/man3/wctomb.3:24
6849 #, no-wrap
6850 msgid "B<int wctomb(char *>I<s>B<, wchar_t >I<wc>B<);>\n"
6851 msgstr ""
6852
6853 #. type: Plain text
6854 #: build/C/man3/wctomb.3:45
6855 msgid ""
6856 "If I<s> is not NULL, the B<wctomb>()  function converts the wide character "
6857 "I<wc> to its multibyte representation and stores it at the beginning of the "
6858 "character array pointed to by I<s>.  It updates the shift state, which is "
6859 "stored in a static anonymous variable known only to the B<wctomb>()  "
6860 "function, and returns the length of said multibyte representation, that is, "
6861 "the number of bytes written at I<s>."
6862 msgstr ""
6863
6864 #. type: Plain text
6865 #: build/C/man3/wctomb.3:51
6866 msgid ""
6867 "The programmer must ensure that there is room for at least B<MB_CUR_MAX> "
6868 "bytes at I<s>."
6869 msgstr ""
6870
6871 #.  The Dinkumware doc and the Single UNIX specification say this, but
6872 #.  glibc doesn't implement this.
6873 #. type: Plain text
6874 #: build/C/man3/wctomb.3:63
6875 msgid ""
6876 "If I<s> is NULL, the B<wctomb>()  function resets the shift state, known "
6877 "only to this function, to the initial state, and returns nonzero if the "
6878 "encoding has nontrivial shift state, or zero if the encoding is stateless."
6879 msgstr ""
6880
6881 #. type: Plain text
6882 #: build/C/man3/wctomb.3:77
6883 msgid ""
6884 "If I<s> is not NULL, the B<wctomb>()  function returns the number of bytes "
6885 "that have been written to the byte array at I<s>.  If I<wc> can not be "
6886 "represented as a multibyte sequence (according to the current locale), -1 is "
6887 "returned."
6888 msgstr ""
6889
6890 #. type: Plain text
6891 #: build/C/man3/wctomb.3:84
6892 msgid ""
6893 "If I<s> is NULL, the B<wctomb>()  function returns nonzero if the encoding "
6894 "has nontrivial shift state, or zero if the encoding is stateless."
6895 msgstr ""
6896
6897 #. type: Plain text
6898 #: build/C/man3/wctomb.3:89
6899 msgid "The B<wctomb>()  function is not thread-safe."
6900 msgstr ""
6901
6902 #. type: Plain text
6903 #: build/C/man3/wctomb.3:98
6904 msgid ""
6905 "The behavior of B<wctomb>()  depends on the B<LC_CTYPE> category of the "
6906 "current locale."
6907 msgstr ""
6908
6909 #. type: Plain text
6910 #: build/C/man3/wctomb.3:103
6911 msgid ""
6912 "The function B<wcrtomb>(3)  provides a better interface to the same "
6913 "functionality."
6914 msgstr ""
6915
6916 #. type: Plain text
6917 #: build/C/man3/wctomb.3:110
6918 msgid ""
6919 "B<MB_CUR_MAX>(3), B<mblen>(3), B<mbstowcs>(3), B<mbtowc>(3), B<wcrtomb>(3), "
6920 "B<wcstombs>(3)"
6921 msgstr ""