OSDN Git Service

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