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.
9 "Project-Id-Version: PACKAGE VERSION\n"
10 "POT-Creation-Date: 2012-05-01 04:39+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"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
20 #: build/C/man3/MB_CUR_MAX.3:15
26 #: build/C/man3/MB_CUR_MAX.3:15 build/C/man3/MB_LEN_MAX.3:15
32 #: build/C/man3/MB_CUR_MAX.3:15 build/C/man3/MB_LEN_MAX.3:15 build/C/man2/_exit.2:29 build/C/man3/atexit.3:31 build/C/man3/clearenv.3:24 build/C/man3/exit.3:23 build/C/man3/getloadavg.3:32 build/C/man3/strtod.3:43
38 #: build/C/man3/MB_CUR_MAX.3:15 build/C/man3/MB_LEN_MAX.3:15 build/C/man2/_exit.2:29 build/C/man3/a64l.3:6 build/C/man3/atexit.3:31 build/C/man3/atof.3:29 build/C/man3/atoi.3:31 build/C/man3/canonicalize_file_name.3:5 build/C/man3/cfree.3:23 build/C/man3/clearenv.3:24 build/C/man3/drand48.3:28 build/C/man3/drand48_r.3:25 build/C/man3/ecvt.3:30 build/C/man3/ecvt_r.3:28 build/C/man3/exit.3:23 build/C/man3/gcvt.3:28 build/C/man3/getenv.3:31 build/C/man3/getloadavg.3:32 build/C/man3/getsubopt.3:23 build/C/man3/malloc.3:28 build/C/man3/mblen.3:14 build/C/man3/mbstowcs.3:14 build/C/man3/mbtowc.3:14 build/C/man3/mkdtemp.3:24 build/C/man3/mkstemp.3:33 build/C/man3/mktemp.3:32 build/C/man3/on_exit.3:29 build/C/man3/putenv.3:34 build/C/man3/qecvt.3:26 build/C/man3/rand.3:39 build/C/man3/random.3:31 build/C/man3/random_r.3:24 build/C/man3/rpmatch.3:27 build/C/man3/setenv.3:35 build/C/man3/strtod.3:43 build/C/man3/strtoimax.3:23 build/C/man3/strtol.3:29 build/C/man3/strtoul.3:31 build/C/man3/system.3:28 build/C/man3/wcstombs.3:14 build/C/man3/wctomb.3:14
40 msgid "Linux Programmer's Manual"
44 #: build/C/man3/MB_CUR_MAX.3:16 build/C/man3/MB_LEN_MAX.3:16 build/C/man2/_exit.2:30 build/C/man3/a64l.3:7 build/C/man3/atexit.3:32 build/C/man3/atof.3:30 build/C/man3/atoi.3:32 build/C/man3/canonicalize_file_name.3:6 build/C/man3/cfree.3:24 build/C/man3/clearenv.3:25 build/C/man3/drand48.3:29 build/C/man3/drand48_r.3:26 build/C/man3/ecvt.3:31 build/C/man3/ecvt_r.3:29 build/C/man3/exit.3:24 build/C/man3/gcvt.3:29 build/C/man3/getenv.3:32 build/C/man3/getloadavg.3:33 build/C/man3/getsubopt.3:24 build/C/man3/malloc.3:29 build/C/man3/mblen.3:15 build/C/man3/mbstowcs.3:15 build/C/man3/mbtowc.3:15 build/C/man3/mkdtemp.3:25 build/C/man3/mkstemp.3:34 build/C/man3/mktemp.3:33 build/C/man3/on_exit.3:30 build/C/man3/putenv.3:35 build/C/man3/qecvt.3:27 build/C/man3/rand.3:40 build/C/man3/random.3:32 build/C/man3/random_r.3:25 build/C/man3/rpmatch.3:28 build/C/man3/setenv.3:36 build/C/man3/strtod.3:44 build/C/man3/strtoimax.3:24 build/C/man3/strtol.3:30 build/C/man3/strtoul.3:32 build/C/man3/system.3:29 build/C/man3/wcstombs.3:15 build/C/man3/wctomb.3:15
50 #: build/C/man3/MB_CUR_MAX.3:18
51 msgid "MB_CUR_MAX - maximum length of a multibyte character in the current locale"
55 #: build/C/man3/MB_CUR_MAX.3:18 build/C/man3/MB_LEN_MAX.3:18 build/C/man2/_exit.2:32 build/C/man3/a64l.3:9 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:8 build/C/man3/cfree.3:26 build/C/man3/clearenv.3:27 build/C/man3/drand48.3:32 build/C/man3/drand48_r.3:30 build/C/man3/ecvt.3:33 build/C/man3/ecvt_r.3:31 build/C/man3/exit.3:26 build/C/man3/gcvt.3:31 build/C/man3/getenv.3:34 build/C/man3/getloadavg.3:35 build/C/man3/getsubopt.3:26 build/C/man3/malloc.3:31 build/C/man3/mblen.3:17 build/C/man3/mbstowcs.3:17 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:28 build/C/man3/rpmatch.3:30 build/C/man3/setenv.3:38 build/C/man3/strtod.3:46 build/C/man3/strtoimax.3:26 build/C/man3/strtol.3:32 build/C/man3/strtoul.3:34 build/C/man3/system.3:31 build/C/man3/wcstombs.3:17 build/C/man3/wctomb.3:17
61 #: build/C/man3/MB_CUR_MAX.3:21 build/C/man3/atexit.3:37 build/C/man3/atof.3:35 build/C/man3/atoi.3:37 build/C/man3/cfree.3:30 build/C/man3/clearenv.3:30 build/C/man3/drand48.3:35 build/C/man3/drand48_r.3:33 build/C/man3/ecvt_r.3:34 build/C/man3/exit.3:29 build/C/man3/gcvt.3:34 build/C/man3/getenv.3:37 build/C/man3/malloc.3:34 build/C/man3/mblen.3:20 build/C/man3/mbstowcs.3:20 build/C/man3/mbtowc.3:20 build/C/man3/mkdtemp.3:30 build/C/man3/mkstemp.3:39 build/C/man3/mktemp.3:38 build/C/man3/on_exit.3:35 build/C/man3/putenv.3:40 build/C/man3/rand.3:45 build/C/man3/random.3:37 build/C/man3/random_r.3:31 build/C/man3/rpmatch.3:33 build/C/man3/setenv.3:41 build/C/man3/strtol.3:35 build/C/man3/strtoul.3:37 build/C/man3/system.3:34 build/C/man3/wcstombs.3:20 build/C/man3/wctomb.3:20
63 msgid "B<#include E<lt>stdlib.hE<gt>>\n"
67 #: build/C/man3/MB_CUR_MAX.3:22 build/C/man3/MB_LEN_MAX.3:22 build/C/man2/_exit.2:56 build/C/man3/a64l.3:30 build/C/man3/atexit.3:40 build/C/man3/atof.3:38 build/C/man3/atoi.3:62 build/C/man3/canonicalize_file_name.3:14 build/C/man3/cfree.3:51 build/C/man3/clearenv.3:41 build/C/man3/drand48.3:73 build/C/man3/drand48_r.3:81 build/C/man3/ecvt.3:67 build/C/man3/ecvt_r.3:62 build/C/man3/exit.3:32 build/C/man3/gcvt.3:62 build/C/man3/getenv.3:40 build/C/man3/getloadavg.3:42 build/C/man3/getsubopt.3:48 build/C/man3/malloc.3:40 build/C/man3/mblen.3:23 build/C/man3/mbstowcs.3:23 build/C/man3/mbtowc.3:23 build/C/man3/mkdtemp.3:53 build/C/man3/mkstemp.3:74 build/C/man3/mktemp.3:64 build/C/man3/on_exit.3:46 build/C/man3/putenv.3:52 build/C/man3/qecvt.3:51 build/C/man3/rand.3:60 build/C/man3/random.3:62 build/C/man3/random_r.3:56 build/C/man3/rpmatch.3:44 build/C/man3/setenv.3:59 build/C/man3/strtod.3:71 build/C/man3/strtoimax.3:34 build/C/man3/strtol.3:57 build/C/man3/strtoul.3:60 build/C/man3/system.3:37 build/C/man3/wcstombs.3:23 build/C/man3/wctomb.3:23
73 #: build/C/man3/MB_CUR_MAX.3:29
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."
81 #: build/C/man3/MB_CUR_MAX.3:29 build/C/man3/MB_LEN_MAX.3:27 build/C/man2/_exit.2:79 build/C/man3/atexit.3:66 build/C/man3/atof.3:53 build/C/man3/atoi.3:89 build/C/man3/cfree.3:95 build/C/man3/clearenv.3:48 build/C/man3/drand48_r.3:94 build/C/man3/ecvt.3:97 build/C/man3/ecvt_r.3:84 build/C/man3/exit.3:80 build/C/man3/gcvt.3:70 build/C/man3/getenv.3:49 build/C/man3/getloadavg.3:53 build/C/man3/getsubopt.3:108 build/C/man3/malloc.3:127 build/C/man3/mblen.3:58 build/C/man3/mbstowcs.3:58 build/C/man3/mbtowc.3:64 build/C/man3/mkdtemp.3:66 build/C/man3/mkstemp.3:136 build/C/man3/mktemp.3:75 build/C/man3/on_exit.3:67 build/C/man3/putenv.3:65 build/C/man3/rand.3:116 build/C/man3/random.3:116 build/C/man3/random_r.3:98 build/C/man3/rpmatch.3:64 build/C/man3/setenv.3:84 build/C/man3/strtod.3:126 build/C/man3/strtoimax.3:44 build/C/man3/strtol.3:99 build/C/man3/strtoul.3:108 build/C/man3/system.3:52 build/C/man3/wcstombs.3:59 build/C/man3/wctomb.3:50
87 #: build/C/man3/MB_CUR_MAX.3:33
89 "An integer in the range [1, B<MB_LEN_MAX>]. The value 1 denotes traditional "
90 "8-bit encoded characters."
94 #: build/C/man3/MB_CUR_MAX.3:33 build/C/man3/MB_LEN_MAX.3:29 build/C/man2/_exit.2:81 build/C/man3/a64l.3:59 build/C/man3/atexit.3:71 build/C/man3/atof.3:55 build/C/man3/atoi.3:91 build/C/man3/canonicalize_file_name.3:19 build/C/man3/cfree.3:111 build/C/man3/clearenv.3:58 build/C/man3/drand48.3:202 build/C/man3/drand48_r.3:96 build/C/man3/ecvt.3:108 build/C/man3/ecvt_r.3:86 build/C/man3/exit.3:84 build/C/man3/gcvt.3:75 build/C/man3/getenv.3:54 build/C/man3/getloadavg.3:63 build/C/man3/getsubopt.3:127 build/C/man3/malloc.3:166 build/C/man3/mblen.3:68 build/C/man3/mbstowcs.3:68 build/C/man3/mbtowc.3:76 build/C/man3/mkdtemp.3:84 build/C/man3/mkstemp.3:176 build/C/man3/mktemp.3:88 build/C/man3/on_exit.3:72 build/C/man3/putenv.3:74 build/C/man3/qecvt.3:70 build/C/man3/rand.3:127 build/C/man3/random.3:135 build/C/man3/random_r.3:123 build/C/man3/rpmatch.3:85 build/C/man3/setenv.3:107 build/C/man3/strtod.3:158 build/C/man3/strtoimax.3:57 build/C/man3/strtol.3:137 build/C/man3/strtoul.3:140 build/C/man3/system.3:76 build/C/man3/wcstombs.3:68 build/C/man3/wctomb.3:64
100 #: build/C/man3/MB_CUR_MAX.3:35 build/C/man3/MB_LEN_MAX.3:31 build/C/man3/strtoimax.3:59
101 msgid "C99, POSIX.1-2001."
105 #: build/C/man3/MB_CUR_MAX.3:35 build/C/man3/MB_LEN_MAX.3:42 build/C/man2/_exit.2:124 build/C/man3/a64l.3:81 build/C/man3/atexit.3:156 build/C/man3/atof.3:57 build/C/man3/atoi.3:111 build/C/man3/canonicalize_file_name.3:21 build/C/man3/cfree.3:116 build/C/man3/clearenv.3:95 build/C/man3/drand48.3:208 build/C/man3/drand48_r.3:98 build/C/man3/ecvt.3:126 build/C/man3/ecvt_r.3:93 build/C/man3/exit.3:165 build/C/man3/gcvt.3:84 build/C/man3/getenv.3:77 build/C/man3/getloadavg.3:67 build/C/man3/getsubopt.3:224 build/C/man3/malloc.3:257 build/C/man3/mblen.3:82 build/C/man3/mbstowcs.3:82 build/C/man3/mbtowc.3:91 build/C/man3/mkdtemp.3:89 build/C/man3/mkstemp.3:211 build/C/man3/mktemp.3:111 build/C/man3/on_exit.3:79 build/C/man3/putenv.3:114 build/C/man3/qecvt.3:81 build/C/man3/rand.3:215 build/C/man3/random.3:163 build/C/man3/random_r.3:127 build/C/man3/rpmatch.3:127 build/C/man3/setenv.3:130 build/C/man3/strtod.3:177 build/C/man3/strtoimax.3:59 build/C/man3/strtol.3:260 build/C/man3/strtoul.3:188 build/C/man3/system.3:151 build/C/man3/wcstombs.3:82 build/C/man3/wctomb.3:79
111 #: build/C/man3/MB_CUR_MAX.3:42
113 "B<MB_LEN_MAX>(3), B<mblen>(3), B<mbstowcs>(3), B<mbtowc>(3), B<wcstombs>(3), "
118 #: build/C/man3/MB_CUR_MAX.3:42 build/C/man3/MB_LEN_MAX.3:44 build/C/man2/_exit.2:136 build/C/man3/a64l.3:85 build/C/man3/atexit.3:160 build/C/man3/atof.3:63 build/C/man3/atoi.3:116 build/C/man3/canonicalize_file_name.3:23 build/C/man3/cfree.3:118 build/C/man3/clearenv.3:101 build/C/man3/drand48.3:211 build/C/man3/drand48_r.3:102 build/C/man3/ecvt.3:132 build/C/man3/ecvt_r.3:97 build/C/man3/exit.3:172 build/C/man3/gcvt.3:88 build/C/man3/getenv.3:83 build/C/man3/getloadavg.3:70 build/C/man3/getsubopt.3:226 build/C/man3/malloc.3:278 build/C/man3/mblen.3:84 build/C/man3/mbstowcs.3:85 build/C/man3/mbtowc.3:95 build/C/man3/mkdtemp.3:96 build/C/man3/mkstemp.3:217 build/C/man3/mktemp.3:116 build/C/man3/on_exit.3:83 build/C/man3/putenv.3:120 build/C/man3/qecvt.3:86 build/C/man3/rand.3:218 build/C/man3/random.3:168 build/C/man3/random_r.3:131 build/C/man3/rpmatch.3:133 build/C/man3/setenv.3:135 build/C/man3/strtod.3:183 build/C/man3/strtoimax.3:65 build/C/man3/strtol.3:266 build/C/man3/strtoul.3:194 build/C/man3/system.3:156 build/C/man3/wcstombs.3:85 build/C/man3/wctomb.3:83
124 #: build/C/man3/MB_CUR_MAX.3:49 build/C/man3/MB_LEN_MAX.3:51 build/C/man2/_exit.2:143 build/C/man3/a64l.3:92 build/C/man3/atexit.3:167 build/C/man3/atof.3:70 build/C/man3/atoi.3:123 build/C/man3/canonicalize_file_name.3:30 build/C/man3/cfree.3:125 build/C/man3/clearenv.3:108 build/C/man3/drand48.3:218 build/C/man3/drand48_r.3:109 build/C/man3/ecvt.3:139 build/C/man3/ecvt_r.3:104 build/C/man3/exit.3:179 build/C/man3/gcvt.3:95 build/C/man3/getenv.3:90 build/C/man3/getloadavg.3:77 build/C/man3/getsubopt.3:233 build/C/man3/malloc.3:285 build/C/man3/mblen.3:91 build/C/man3/mbstowcs.3:92 build/C/man3/mbtowc.3:102 build/C/man3/mkdtemp.3:103 build/C/man3/mkstemp.3:224 build/C/man3/mktemp.3:123 build/C/man3/on_exit.3:90 build/C/man3/putenv.3:127 build/C/man3/qecvt.3:93 build/C/man3/rand.3:225 build/C/man3/random.3:175 build/C/man3/random_r.3:138 build/C/man3/rpmatch.3:140 build/C/man3/setenv.3:142 build/C/man3/strtod.3:190 build/C/man3/strtoimax.3:72 build/C/man3/strtol.3:273 build/C/man3/strtoul.3:201 build/C/man3/system.3:163 build/C/man3/wcstombs.3:92 build/C/man3/wctomb.3:90
126 "This page is part of release 3.40 of the Linux I<man-pages> project. A "
127 "description of the project, and information about reporting bugs, can be "
128 "found at http://www.kernel.org/doc/man-pages/."
132 #: build/C/man3/MB_LEN_MAX.3:15
138 #: build/C/man3/MB_LEN_MAX.3:18
139 msgid "MB_LEN_MAX - maximum multibyte length of a character across all locales"
143 #: build/C/man3/MB_LEN_MAX.3:21
145 msgid "B<#include E<lt>limits.hE<gt>>\n"
149 #: build/C/man3/MB_LEN_MAX.3:27
151 "The B<MB_LEN_MAX> macro is the upper bound for the number of bytes needed to "
152 "represent a single wide character, across all locales."
156 #: build/C/man3/MB_LEN_MAX.3:29
157 msgid "A constant integer greater than zero."
161 #: build/C/man3/MB_LEN_MAX.3:31 build/C/man2/_exit.2:86 build/C/man3/a64l.3:61 build/C/man3/atexit.3:73 build/C/man3/atoi.3:101 build/C/man3/clearenv.3:72 build/C/man3/drand48.3:204 build/C/man3/ecvt.3:120 build/C/man3/ecvt_r.3:88 build/C/man3/exit.3:86 build/C/man3/getenv.3:56 build/C/man3/getsubopt.3:129 build/C/man3/malloc.3:168 build/C/man3/mblen.3:70 build/C/man3/mbstowcs.3:70 build/C/man3/mbtowc.3:78 build/C/man3/mkstemp.3:189 build/C/man3/mktemp.3:92 build/C/man3/putenv.3:76 build/C/man3/qecvt.3:76 build/C/man3/rand.3:139 build/C/man3/random.3:137 build/C/man3/setenv.3:109 build/C/man3/strtod.3:163 build/C/man3/strtol.3:142 build/C/man3/strtoul.3:145 build/C/man3/system.3:78 build/C/man3/wcstombs.3:70 build/C/man3/wctomb.3:66
167 #: build/C/man3/MB_LEN_MAX.3:42
169 "The entities B<MB_LEN_MAX> and I<sizeof(wchar_t)> are totally unrelated. In "
170 "glibc, B<MB_LEN_MAX> is typically 6 while I<sizeof(wchar_t)> is 4."
174 #: build/C/man3/MB_LEN_MAX.3:44
175 msgid "B<MB_CUR_MAX>(3)"
179 #: build/C/man2/_exit.2:29
185 #: build/C/man2/_exit.2:29 build/C/man3/a64l.3:6 build/C/man3/atoi.3:31 build/C/man3/ecvt.3:30 build/C/man3/gcvt.3:28 build/C/man3/mktemp.3:32 build/C/man3/qecvt.3:26 build/C/man3/random.3:31 build/C/man3/strtod.3:43 build/C/man3/strtol.3:29
191 #: build/C/man2/_exit.2:32
192 msgid "_exit, _Exit - terminate the calling process"
196 #: build/C/man2/_exit.2:34
197 msgid "B<#include E<lt>unistd.hE<gt>>"
201 #: build/C/man2/_exit.2:36
202 msgid "B<void _exit(int >I<status>B<);>"
206 #: build/C/man2/_exit.2:38 build/C/man3/a64l.3:11 build/C/man3/canonicalize_file_name.3:12 build/C/man3/ecvt.3:35 build/C/man3/getsubopt.3:28 build/C/man3/qecvt.3:31 build/C/man3/strtod.3:48
207 msgid "B<#include E<lt>stdlib.hE<gt>>"
211 #: build/C/man2/_exit.2:40
212 msgid "B<void _Exit(int >I<status>B<);>"
216 #: build/C/man2/_exit.2:44 build/C/man3/a64l.3:19 build/C/man3/atoi.3:50 build/C/man3/cfree.3:47 build/C/man3/clearenv.3:37 build/C/man3/drand48.3:58 build/C/man3/drand48_r.3:66 build/C/man3/ecvt.3:45 build/C/man3/ecvt_r.3:51 build/C/man3/gcvt.3:41 build/C/man3/getsubopt.3:35 build/C/man3/mkdtemp.3:37 build/C/man3/mkstemp.3:52 build/C/man3/mktemp.3:45 build/C/man3/on_exit.3:42 build/C/man3/putenv.3:48 build/C/man3/qecvt.3:43 build/C/man3/rand.3:56 build/C/man3/random.3:50 build/C/man3/random_r.3:45 build/C/man3/rpmatch.3:40 build/C/man3/setenv.3:50 build/C/man3/strtod.3:58 build/C/man3/strtol.3:45 build/C/man3/strtoul.3:48
217 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
221 #: build/C/man2/_exit.2:48
226 #: build/C/man2/_exit.2:51 build/C/man3/strtod.3:66
228 "_XOPEN_SOURCE\\ E<gt>=\\ 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ "
233 #: build/C/man2/_exit.2:54 build/C/man3/atoi.3:60 build/C/man3/strtod.3:69 build/C/man3/strtol.3:55 build/C/man3/strtoul.3:58
234 msgid "or I<cc\\ -std=c99>"
238 #: build/C/man2/_exit.2:67
240 "The function B<_exit>() terminates the calling process \"immediately\". "
241 "Any open file descriptors belonging to the process are closed; any children "
242 "of the process are inherited by process 1, I<init>, and the process's parent "
243 "is sent a B<SIGCHLD> signal."
247 #: build/C/man2/_exit.2:74
249 "The value I<status> is returned to the parent process as the process's exit "
250 "status, and can be collected using one of the B<wait>(2) family of calls."
254 #: build/C/man2/_exit.2:79
255 msgid "The function B<_Exit>() is equivalent to B<_exit>()."
259 #: build/C/man2/_exit.2:81
260 msgid "These functions do not return."
264 #: build/C/man2/_exit.2:86
265 msgid "SVr4, POSIX.1-2001, 4.3BSD. The function B<_Exit>() was introduced by C99."
269 #: build/C/man2/_exit.2:90
271 "For a discussion on the effects of an exit, the transmission of exit status, "
272 "zombie processes, signals sent, etc., see B<exit>(3)."
276 #: build/C/man2/_exit.2:117
278 "The function B<_exit>() is like B<exit>(3), but does not call any functions "
279 "registered with B<atexit>(3) or B<on_exit>(3). Whether it flushes standard "
280 "I/O buffers and removes temporary files created with B<tmpfile>(3) is "
281 "implementation-dependent. On the other hand, B<_exit>() does close open "
282 "file descriptors, and this may cause an unknown delay, waiting for pending "
283 "output to finish. If the delay is undesired, it may be useful to call "
284 "functions like B<tcflush>(3) before calling B<_exit>(). Whether any "
285 "pending I/O is canceled, and which pending I/O may be canceled upon "
286 "B<_exit>(), is implementation-dependent."
290 #: build/C/man2/_exit.2:124
292 "In glibc up to version 2.3, the B<_exit>() wrapper function invoked the "
293 "kernel system call of the same name. Since glibc 2.3, the wrapper function "
294 "invokes B<exit_group>(2), in order to terminate all of the threads in a "
299 #: build/C/man2/_exit.2:136
301 "B<execve>(2), B<exit_group>(2), B<fork>(2), B<kill>(2), B<wait>(2), "
302 "B<wait4>(2), B<waitpid>(2), B<atexit>(3), B<exit>(3), B<on_exit>(3), "
307 #: build/C/man3/a64l.3:6
313 #: build/C/man3/a64l.3:9
314 msgid "a64l, l64a - convert between long and base-64"
318 #: build/C/man3/a64l.3:13
319 msgid "B<long a64l(char *>I<str64>B<);>"
323 #: build/C/man3/a64l.3:15
324 msgid "B<char *l64a(long >I<value>B<);>"
328 #: build/C/man3/a64l.3:23
329 msgid "B<a64l>(), B<l64a>():"
333 #: build/C/man3/a64l.3:28 build/C/man3/ecvt.3:64
335 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE\\ &&\\ "
336 "_XOPEN_SOURCE_EXTENDED"
340 #: build/C/man3/a64l.3:45
342 "These functions provide a conversion between 32-bit long integers and "
343 "little-endian base-64 ASCII strings (of length zero to six). If the string "
344 "used as argument for B<a64l>() has length greater than six, only the first "
345 "six bytes are used. If the type I<long> has more than 32 bits, then "
346 "B<l64a>() uses only the low order 32 bits of I<value>, and B<a64l>() "
347 "sign-extends its 32-bit result."
351 #: build/C/man3/a64l.3:47
352 msgid "The 64 digits in the base-64 system are:"
356 #: build/C/man3/a64l.3:55
359 "\\&\\(aq.\\(aq\trepresents a 0\n"
360 "\\&\\(aq/\\(aq\trepresents a 1\n"
361 "0-9\trepresent 2-11\n"
362 "A-Z\trepresent 12-37\n"
363 "a-z\trepresent 38-63\n"
367 #: build/C/man3/a64l.3:59
368 msgid "So 123 = 59*64^0 + 1*64^1 = \"v/\"."
372 #: build/C/man3/a64l.3:61 build/C/man3/getsubopt.3:129
373 msgid "POSIX.1-2001."
377 #: build/C/man3/a64l.3:66
379 "The value returned by B<l64a>() may be a pointer to a static buffer, "
380 "possibly overwritten by later calls."
384 #: build/C/man3/a64l.3:75
386 "The behavior of B<l64a>() is undefined when I<value> is negative. If "
387 "I<value> is zero, it returns an empty string."
391 #: build/C/man3/a64l.3:78
393 "These functions are broken in glibc before 2.2.5 (puts most significant "
398 #: build/C/man3/a64l.3:81
399 msgid "This is not the encoding used by B<uuencode>(1)."
404 #: build/C/man3/a64l.3:85
405 msgid "B<uuencode>(1), B<strtoul>(3)"
409 #: build/C/man3/atexit.3:31
415 #: build/C/man3/atexit.3:31 build/C/man3/on_exit.3:29
421 #: build/C/man3/atexit.3:34
422 msgid "atexit - register a function to be called at normal process termination"
426 #: build/C/man3/atexit.3:39
428 msgid "B<int atexit(void (*>I<function>B<)(void));>\n"
432 #: build/C/man3/atexit.3:49
434 "The B<atexit>() function registers the given I<function> to be called at "
435 "normal process termination, either via B<exit>(3) or via return from the "
436 "program's I<main>(). Functions so registered are called in the reverse "
437 "order of their registration; no arguments are passed."
441 #: build/C/man3/atexit.3:52 build/C/man3/on_exit.3:60
443 "The same function may be registered multiple times: it is called once for "
448 #: build/C/man3/atexit.3:58
450 "POSIX.1-2001 requires that an implementation allow at least B<ATEXIT_MAX> "
451 "(32) such functions to be registered. The actual limit supported by an "
452 "implementation can be obtained using B<sysconf>(3)."
456 #: build/C/man3/atexit.3:66 build/C/man3/on_exit.3:67
458 "When a child process is created via B<fork>(2), it inherits copies of its "
459 "parent's registrations. Upon a successful call to one of the B<exec>(3) "
460 "functions, all registrations are removed."
464 #: build/C/man3/atexit.3:71
466 "The B<atexit>() function returns the value 0 if successful; otherwise it "
467 "returns a nonzero value."
471 #: build/C/man3/atexit.3:73
472 msgid "SVr4, 4.3BSD, C89, C99, POSIX.1-2001."
476 #: build/C/man3/atexit.3:80
478 "Functions registered using B<atexit>() (and B<on_exit>(3)) are not called "
479 "if a process terminates abnormally because of the delivery of a signal."
483 #: build/C/man3/atexit.3:87
485 "If one of the functions registered functions calls B<_exit>(2), then any "
486 "remaining functions are not invoked, and the other process termination steps "
487 "performed by B<exit>(3) are not performed."
490 #. This can happen on OpenBSD 4.2 for example, and is documented
491 #. as occurring on FreeBSD as well.
492 #. Glibc does "the Right Thing" -- invocation of the remaining
493 #. exit handlers carries on as normal.
495 #: build/C/man3/atexit.3:104
497 "POSIX.1-2001 says that the result of calling B<exit>(3) more than once "
498 "(i.e., calling B<exit>(3) within a function registered using B<atexit>()) "
499 "is undefined. On some systems (but not Linux), this can result in an "
500 "infinite recursion; portable programs should not invoke B<exit>(3) inside a "
501 "function registered using B<atexit>()."
505 #: build/C/man3/atexit.3:113
507 "The B<atexit>() and B<on_exit>(3) functions register functions on the same "
508 "list: at normal process termination, the registered functions are invoked in "
509 "reverse order of their registration by these two functions."
512 #. In glibc, things seem to be handled okay
514 #: build/C/man3/atexit.3:119
516 "POSIX.1-2001 says that the result is undefined if B<longjmp>(3) is used to "
517 "terminate execution of one of the functions registered B<atexit>()."
521 #: build/C/man3/atexit.3:119
527 #: build/C/man3/atexit.3:126
529 "Since glibc 2.2.3, B<atexit>() (and B<on_exit>(3)) can be used within a "
530 "shared library to establish functions that are called when the shared "
531 "library is unloaded."
535 #: build/C/man3/atexit.3:126 build/C/man3/getsubopt.3:136 build/C/man3/rand.3:158 build/C/man3/rpmatch.3:102 build/C/man3/strtod.3:172 build/C/man3/strtol.3:179 build/C/man3/strtoul.3:183
541 #: build/C/man3/atexit.3:131
544 "#include E<lt>stdio.hE<gt>\n"
545 "#include E<lt>stdlib.hE<gt>\n"
546 "#include E<lt>unistd.hE<gt>\n"
550 #: build/C/man3/atexit.3:137
556 " printf(\"That was all, folks\\en\");\n"
561 #: build/C/man3/atexit.3:143
572 #: build/C/man3/atexit.3:146
575 " a = sysconf(_SC_ATEXIT_MAX);\n"
576 " printf(\"ATEXIT_MAX = %ld\\en\", a);\n"
580 #: build/C/man3/atexit.3:152
583 " i = atexit(bye);\n"
585 " fprintf(stderr, \"cannot set exit function\\en\");\n"
586 " exit(EXIT_FAILURE);\n"
591 #: build/C/man3/atexit.3:155 build/C/man3/getsubopt.3:223 build/C/man3/rand.3:213 build/C/man3/strtol.3:259
594 " exit(EXIT_SUCCESS);\n"
599 #: build/C/man3/atexit.3:160
600 msgid "B<_exit>(2), B<exit>(3), B<on_exit>(3)"
604 #: build/C/man3/atof.3:29
610 #: build/C/man3/atof.3:29
616 #: build/C/man3/atof.3:29 build/C/man3/atoi.3:31 build/C/man3/canonicalize_file_name.3:5 build/C/man3/drand48_r.3:25 build/C/man3/ecvt_r.3:28 build/C/man3/getenv.3:31 build/C/man3/getsubopt.3:23 build/C/man3/malloc.3:28 build/C/man3/mblen.3:14 build/C/man3/mbstowcs.3:14 build/C/man3/mbtowc.3:14 build/C/man3/mkdtemp.3:24 build/C/man3/mkstemp.3:33 build/C/man3/mktemp.3:32 build/C/man3/on_exit.3:29 build/C/man3/putenv.3:34 build/C/man3/qecvt.3:26 build/C/man3/random.3:31 build/C/man3/random_r.3:24 build/C/man3/rpmatch.3:27 build/C/man3/setenv.3:35 build/C/man3/strtol.3:29 build/C/man3/strtoul.3:31 build/C/man3/wcstombs.3:14 build/C/man3/wctomb.3:14
622 #: build/C/man3/atof.3:32
623 msgid "atof - convert a string to a double"
627 #: build/C/man3/atof.3:37
629 msgid "B<double atof(const char *>I<nptr>B<);>\n"
633 #: build/C/man3/atof.3:45
635 "The B<atof>() function converts the initial portion of the string pointed "
636 "to by I<nptr> to I<double>. The behavior is the same as"
640 #: build/C/man3/atof.3:48
641 msgid "strtod(nptr, (char **) NULL);"
645 #: build/C/man3/atof.3:53
646 msgid "except that B<atof>() does not detect errors."
650 #: build/C/man3/atof.3:55 build/C/man3/atoi.3:91
651 msgid "The converted value."
655 #: build/C/man3/atof.3:57 build/C/man3/getenv.3:56
656 msgid "SVr4, POSIX.1-2001, 4.3BSD, C89, C99."
660 #: build/C/man3/atof.3:63
661 msgid "B<atoi>(3), B<atol>(3), B<strtod>(3), B<strtol>(3), B<strtoul>(3)"
665 #: build/C/man3/atoi.3:31
671 #: build/C/man3/atoi.3:34
672 msgid "atoi, atol, atoll, atoq - convert a string to an integer"
676 #: build/C/man3/atoi.3:39
678 msgid "B<int atoi(const char *>I<nptr>B<);>\n"
682 #: build/C/man3/atoi.3:41
684 msgid "B<long atol(const char *>I<nptr>B<);>\n"
688 #: build/C/man3/atoi.3:43
690 msgid "B<long long atoll(const char *>I<nptr>B<);>\n"
694 #: build/C/man3/atoi.3:45
696 msgid "B<long long atoq(const char *>I<nptr>B<);>\n"
700 #: build/C/man3/atoi.3:54
705 #: build/C/man3/atoi.3:57
707 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 600 || "
708 "_ISOC99_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
712 #: build/C/man3/atoi.3:69
714 "The B<atoi>() function converts the initial portion of the string pointed "
715 "to by I<nptr> to I<int>. The behavior is the same as"
719 #: build/C/man3/atoi.3:72
720 msgid "strtol(nptr, (char **) NULL, 10);"
724 #: build/C/man3/atoi.3:77
725 msgid "except that B<atoi>() does not detect errors."
729 #: build/C/man3/atoi.3:89
731 "The B<atol>() and B<atoll>() functions behave the same as B<atoi>(), "
732 "except that they convert the initial portion of the string to their return "
733 "type of I<long> or I<long long>. B<atoq>() is an obsolete name for "
738 #: build/C/man3/atoi.3:101
740 "SVr4, POSIX.1-2001, 4.3BSD, C99. C89 and POSIX.1-1996 include the functions "
741 "B<atoi>() and B<atol>() only. B<atoq>() is a GNU extension."
745 #: build/C/man3/atoi.3:111
747 "The nonstandard B<atoq>() function is not present in libc 4.6.27 or glibc "
748 "2, but is present in libc5 and libc 4.7 (though only as an inline function "
749 "in I<E<lt>stdlib.hE<gt>> until libc 5.4.44). The B<atoll>() function is "
750 "present in glibc 2 since version 2.0.2, but not in libc4 or libc5."
754 #: build/C/man3/atoi.3:116
755 msgid "B<atof>(3), B<strtod>(3), B<strtol>(3), B<strtoul>(3)"
759 #: build/C/man3/canonicalize_file_name.3:5
761 msgid "CANONICALIZE_FILE_NAME"
765 #: build/C/man3/canonicalize_file_name.3:5
771 #: build/C/man3/canonicalize_file_name.3:8
772 msgid "canonicalize_file_name - return the canonicalized filename"
776 #: build/C/man3/canonicalize_file_name.3:10
777 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */"
781 #: build/C/man3/canonicalize_file_name.3:14
782 msgid "B<char *canonicalize_file_name(const char *>I<path>B<);>"
786 #: build/C/man3/canonicalize_file_name.3:19
788 "The call I<canonicalize_file_name(path)> is equivalent to the call "
789 "I<realpath(path,\\ NULL)>."
793 #: build/C/man3/canonicalize_file_name.3:21
794 msgid "The function is a GNU extension."
798 #: build/C/man3/canonicalize_file_name.3:23
799 msgid "B<realpath>(3)"
803 #: build/C/man3/cfree.3:23
809 #: build/C/man3/cfree.3:23 build/C/man3/drand48.3:28 build/C/man3/drand48_r.3:25 build/C/man3/ecvt_r.3:28 build/C/man3/putenv.3:34 build/C/man3/rpmatch.3:27
815 #: build/C/man3/cfree.3:26
816 msgid "cfree - free allocated memory"
820 #: build/C/man3/cfree.3:33
824 "B<int cfree(void *>I<ptr>B<);>\n"
828 #: build/C/man3/cfree.3:36
831 "/* In glibc or FreeBSD libcompat */\n"
832 "B<void cfree(void *>I<ptr>B<);>\n"
836 #: build/C/man3/cfree.3:39
839 "/* In SCO OpenServer */\n"
840 "B<void cfree(char *>I<ptr>B<, unsigned >I<num>B<, unsigned >I<size>B<);>\n"
844 #: build/C/man3/cfree.3:42
847 "/* In Solaris watchmalloc.so.1 */\n"
848 "B<void cfree(void *>I<ptr>B<, size_t >I<nelem>B<, size_t >I<elsize>B<);>\n"
852 #: build/C/man3/cfree.3:51
853 msgid "B<cfree>(): _BSD_SOURCE || _SVID_SOURCE"
857 #: build/C/man3/cfree.3:56
858 msgid "This function should never be used. Use B<free>(3) instead."
862 #: build/C/man3/cfree.3:56
868 #: build/C/man3/cfree.3:62
870 "In glibc, the function B<cfree>() is a synonym for B<free>(3), \"added for "
871 "compatibility with SunOS\"."
875 #: build/C/man3/cfree.3:68
877 "Other systems have other functions with this name. The declaration is "
878 "sometimes in I<E<lt>stdlib.hE<gt>> and sometimes in I<E<lt>malloc.hE<gt>>."
882 #: build/C/man3/cfree.3:68
888 #: build/C/man3/cfree.3:73
890 "Some SCO and Solaris versions have malloc libraries with a 3-argument "
891 "B<cfree>(), apparently as an analog to B<calloc>(3)."
895 #: build/C/man3/cfree.3:75
896 msgid "If you need it while porting something, add"
900 #: build/C/man3/cfree.3:78
901 msgid "#define cfree(p, n, s) free((p))"
905 #: build/C/man3/cfree.3:81
906 msgid "to your file."
910 #: build/C/man3/cfree.3:90
912 "A frequently asked question is \"Can I use B<free>(3) to free memory "
913 "allocated with B<calloc>(3), or do I need B<cfree>()?\" Answer: use "
918 #: build/C/man3/cfree.3:95
920 "An SCO manual writes: \"The cfree routine is provided for compliance to the "
921 "iBCSe2 standard and simply calls free. The num and size arguments to cfree "
926 #: build/C/man3/cfree.3:111
928 "The SunOS version of B<cfree>() (which is a synonym for B<free>(3)) "
929 "returns 1 on success and 0 on failure. In case of error, I<errno> is set to "
930 "B<EINVAL>: the value of I<ptr> was not a pointer to a block previously "
931 "allocated by one of the routines in the B<malloc>(3) family."
935 #: build/C/man3/cfree.3:116
937 "The 3-argument version of B<cfree>() as used by SCO conforms to the iBCSe2 "
938 "standard: Intel386 Binary Compatibility Specification, Edition 2."
942 #: build/C/man3/cfree.3:118
947 #: build/C/man3/clearenv.3:24
953 #: build/C/man3/clearenv.3:24
959 #: build/C/man3/clearenv.3:27
960 msgid "clearenv - clear the environment"
964 #: build/C/man3/clearenv.3:32
966 msgid "B<int clearenv(void);>\n"
970 #: build/C/man3/clearenv.3:41
971 msgid "B<clearenv>(): _SVID_SOURCE || _BSD_SOURCE"
975 #: build/C/man3/clearenv.3:48
977 "The B<clearenv>() function clears the environment of all name-value pairs "
978 "and sets the value of the external variable I<environ> to NULL."
981 #. Most versions of UNIX return -1 on error, or do not even have errors.
982 #. Glibc info and the Watcom C library document "a nonzero value".
984 #: build/C/man3/clearenv.3:55
986 "The B<clearenv>() function returns zero on success, and a nonzero value on "
991 #: build/C/man3/clearenv.3:55 build/C/man3/getloadavg.3:61 build/C/man3/mkdtemp.3:82 build/C/man3/mkstemp.3:169
997 #: build/C/man3/clearenv.3:58
998 msgid "Not in libc4, libc5. In glibc since glibc 2.0."
1002 #: build/C/man3/clearenv.3:72
1004 "Various UNIX variants (DG/UX, HP-UX, QNX, ...). POSIX.9 (bindings for "
1005 "FORTRAN77). POSIX.1-1996 did not accept B<clearenv>() and B<putenv>(3), "
1006 "but changed its mind and scheduled these functions for some later issue of "
1007 "this standard (cf. B.4.6.1). However, POSIX.1-2001 only adds B<putenv>(3), "
1008 "and rejected B<clearenv>()."
1012 #: build/C/man3/clearenv.3:76
1014 "Used in security-conscious applications. If it is unavailable the "
1019 #: build/C/man3/clearenv.3:79
1021 msgid " environ = NULL;\n"
1025 #: build/C/man3/clearenv.3:82
1026 msgid "will probably do."
1030 #. HP-UX has a ENOMEM error return.
1032 #: build/C/man3/clearenv.3:95
1034 "The DG/UX and Tru64 man pages write: If I<environ> has been modified by "
1035 "anything other than the B<putenv>(3), B<getenv>(3), or B<clearenv>() "
1036 "functions, then B<clearenv>() will return an error and the process "
1037 "environment will remain unchanged."
1041 #: build/C/man3/clearenv.3:101
1042 msgid "B<getenv>(3), B<putenv>(3), B<setenv>(3), B<unsetenv>(3), B<environ>(7)"
1046 #: build/C/man3/drand48.3:28
1052 #: build/C/man3/drand48.3:32
1054 "drand48, erand48, lrand48, nrand48, mrand48, jrand48, srand48, seed48, "
1055 "lcong48 - generate uniformly distributed pseudo-random numbers"
1059 #: build/C/man3/drand48.3:37
1061 msgid "B<double drand48(void);>\n"
1065 #: build/C/man3/drand48.3:39
1067 msgid "B<double erand48(unsigned short >I<xsubi>B<[3]);>\n"
1071 #: build/C/man3/drand48.3:41
1073 msgid "B<long int lrand48(void);>\n"
1077 #: build/C/man3/drand48.3:43
1079 msgid "B<long int nrand48(unsigned short >I<xsubi>B<[3]);>\n"
1083 #: build/C/man3/drand48.3:45
1085 msgid "B<long int mrand48(void);>\n"
1089 #: build/C/man3/drand48.3:47
1091 msgid "B<long int jrand48(unsigned short >I<xsubi>B<[3]);>\n"
1095 #: build/C/man3/drand48.3:49
1097 msgid "B<void srand48(long int >I<seedval>B<);>\n"
1101 #: build/C/man3/drand48.3:51
1103 msgid "B<unsigned short *seed48(unsigned short >I<seed16v>B<[3]);>\n"
1107 #: build/C/man3/drand48.3:53
1109 msgid "B<void lcong48(unsigned short >I<param>B<[7]);>\n"
1122 #: build/C/man3/drand48.3:72
1123 msgid "All functions shown above: _SVID_SOURCE || _XOPEN_SOURCE"
1127 #: build/C/man3/drand48.3:76
1129 "These functions generate pseudo-random numbers using the linear congruential "
1130 "algorithm and 48-bit integer arithmetic."
1134 #: build/C/man3/drand48.3:84
1136 "The B<drand48>() and B<erand48>() functions return nonnegative "
1137 "double-precision floating-point values uniformly distributed between [0.0, "
1142 #: build/C/man3/drand48.3:91
1144 "The B<lrand48>() and B<nrand48>() functions return nonnegative long "
1145 "integers uniformly distributed between 0 and 2^31."
1149 #: build/C/man3/drand48.3:98
1151 "The B<mrand48>() and B<jrand48>() functions return signed long integers "
1152 "uniformly distributed between -2^31 and 2^31."
1156 #: build/C/man3/drand48.3:117
1158 "The B<srand48>(), B<seed48>() and B<lcong48>() functions are "
1159 "initialization functions, one of which should be called before using "
1160 "B<drand48>(), B<lrand48>() or B<mrand48>(). The functions B<erand48>(), "
1161 "B<nrand48>() and B<jrand48>() do not require an initialization function to "
1166 #: build/C/man3/drand48.3:120
1168 "All the functions work by generating a sequence of 48-bit integers, I<Xi>, "
1169 "according to the linear congruential formula:"
1173 #: build/C/man3/drand48.3:124
1175 msgid "B<Xn+1 = (aXn + c) mod m, where n E<gt>= 0>\n"
1179 #: build/C/man3/drand48.3:131
1181 "The parameter I<m> = 2^48, hence 48-bit integer arithmetic is performed. "
1182 "Unless B<lcong48>() is called, I<a> and I<c> are given by:"
1186 #: build/C/man3/drand48.3:136
1189 "B<a = 0x5DEECE66D>\n"
1194 #: build/C/man3/drand48.3:152
1196 "The value returned by any of the functions B<drand48>(), B<erand48>(), "
1197 "B<lrand48>(), B<nrand48>(), B<mrand48>() or B<jrand48>() is computed by "
1198 "first generating the next 48-bit I<Xi> in the sequence. Then the "
1199 "appropriate number of bits, according to the type of data item to be "
1200 "returned, is copied from the high-order bits of I<Xi> and transformed into "
1201 "the returned value."
1205 #: build/C/man3/drand48.3:171
1207 "The functions B<drand48>(), B<lrand48>() and B<mrand48>() store the last "
1208 "48-bit I<Xi> generated in an internal buffer. The functions B<erand48>(), "
1209 "B<nrand48>() and B<jrand48>() require the calling program to provide "
1210 "storage for the successive I<Xi> values in the array argument I<xsubi>. The "
1211 "functions are initialized by placing the initial value of I<Xi> into the "
1212 "array before calling the function for the first time."
1216 #: build/C/man3/drand48.3:178
1218 "The initializer function B<srand48>() sets the high order 32-bits of I<Xi> "
1219 "to the argument I<seedval>. The low order 16-bits are set to the arbitrary "
1224 #: build/C/man3/drand48.3:187
1226 "The initializer function B<seed48>() sets the value of I<Xi> to the 48-bit "
1227 "value specified in the array argument I<seed16v>. The previous value of "
1228 "I<Xi> is copied into an internal buffer and a pointer to this buffer is "
1229 "returned by B<seed48>()."
1233 #: build/C/man3/drand48.3:202
1235 "The initialization function B<lcong48>() allows the user to specify initial "
1236 "values for I<Xi>, I<a> and I<c>. Array argument elements I<param[0-2]> "
1237 "specify I<Xi>, I<param[3-5]> specify I<a>, and I<param[6]> specifies I<c>. "
1238 "After B<lcong48>() has been called, a subsequent call to either "
1239 "B<srand48>() or B<seed48>() will restore the standard values of I<a> and "
1244 #: build/C/man3/drand48.3:204
1245 msgid "SVr4, POSIX.1-2001."
1249 #: build/C/man3/drand48.3:208
1251 "These functions are declared obsolete by SVID 3, which states that "
1252 "B<rand>(3) should be used instead."
1256 #: build/C/man3/drand48.3:211
1257 msgid "B<rand>(3), B<random>(3)"
1261 #: build/C/man3/drand48_r.3:25
1267 #: build/C/man3/drand48_r.3:30
1269 "drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, "
1270 "seed48_r, lcong48_r - generate uniformly distributed pseudo-random numbers "
1275 #: build/C/man3/drand48_r.3:35
1277 msgid "B<int drand48_r(struct drand48_data *>I<buffer>B<, double *>I<result>B<);>\n"
1281 #: build/C/man3/drand48_r.3:37
1283 msgid "B<int erand48_r(unsigned short >I<xsubi>B<[3]>I<,>\n"
1287 #: build/C/man3/drand48_r.3:39
1289 msgid "B< struct drand48_data *>I<buffer>B<, double *>I<result>B<);>\n"
1293 #: build/C/man3/drand48_r.3:41
1296 "B<int lrand48_r(struct drand48_data *>I<buffer>B<, long int "
1297 "*>I<result>B<);>\n"
1301 #: build/C/man3/drand48_r.3:43
1303 msgid "B<int nrand48_r(unsigned short int >I<xsubi[3]>B<,>\n"
1307 #: build/C/man3/drand48_r.3:45 build/C/man3/drand48_r.3:51
1310 "B< struct drand48_data *>I<buffer>B<, long int "
1311 "*>I<result>B<);>\n"
1315 #: build/C/man3/drand48_r.3:47
1318 "B<int mrand48_r(struct drand48_data *>I<buffer>B<,long int "
1319 "*>I<result>B<);>\n"
1323 #: build/C/man3/drand48_r.3:49
1325 msgid "B<int jrand48_r(unsigned short int >I<xsubi[3]>B<,>\n"
1329 #: build/C/man3/drand48_r.3:53
1332 "B<int srand48_r(long int >I<seedval>B<, struct drand48_data "
1333 "*>I<buffer>B<);>\n"
1337 #: build/C/man3/drand48_r.3:55
1339 msgid "B<int seed48_r(unsigned short int >I<seed16v[3]>B<,>\n"
1343 #: build/C/man3/drand48_r.3:57
1345 msgid "B< struct drand48_data *>I<buffer>B<);>\n"
1349 #: build/C/man3/drand48_r.3:59
1351 msgid "B<int lcong48_r(unsigned short int >I<param[7]>B<,>\n"
1355 #: build/C/man3/drand48_r.3:61
1357 msgid "B< struct drand48_data *>I<buffer>B<);>\n"
1360 #. .BR drand48_r (),
1361 #. .BR erand48_r (),
1362 #. .BR lrand48_r (),
1363 #. .BR nrand48_r (),
1364 #. .BR mrand48_r (),
1365 #. .BR jrand48_r (),
1366 #. .BR srand48_r (),
1368 #. .BR lcong48_r ():
1370 #: build/C/man3/drand48_r.3:80
1371 msgid "All functions shown above: _SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE"
1375 #: build/C/man3/drand48_r.3:87
1377 "These functions are the reentrant analogs of the functions described in "
1378 "B<drand48>(3). Instead of modifying the global random generator state, they "
1379 "use the supplied data I<buffer>."
1383 #: build/C/man3/drand48_r.3:94
1385 "Before the first use, this struct must be initialized, for example, by "
1386 "filling it with zeros, or by calling one of the functions B<srand48_r>(), "
1387 "B<seed48_r>(), or B<lcong48_r>()."
1391 #: build/C/man3/drand48_r.3:96
1392 msgid "The return value is 0."
1396 #: build/C/man3/drand48_r.3:98
1397 msgid "These functions are GNU extensions and are not portable."
1401 #: build/C/man3/drand48_r.3:102 build/C/man3/random_r.3:131
1402 msgid "B<drand48>(3), B<rand>(3), B<random>(3)"
1406 #: build/C/man3/ecvt.3:30
1412 #: build/C/man3/ecvt.3:33
1413 msgid "ecvt, fcvt - convert a floating-point number to a string"
1417 #: build/C/man3/ecvt.3:38
1419 "B<char *ecvt(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,> "
1420 "B<int *>I<sign>B<);>"
1424 #: build/C/man3/ecvt.3:41
1426 "B<char *fcvt(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,> "
1427 "B<int *>I<sign>B<);>"
1431 #: build/C/man3/ecvt.3:49
1432 msgid "B<ecvt>(), B<fcvt>():"
1436 #: build/C/man3/ecvt.3:52 build/C/man3/gcvt.3:47 build/C/man3/mktemp.3:51
1438 msgid "Since glibc 2.12:"
1442 #: build/C/man3/ecvt.3:59 build/C/man3/gcvt.3:54
1446 " (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
1447 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
1448 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
1452 #: build/C/man3/ecvt.3:60 build/C/man3/gcvt.3:55 build/C/man3/mktemp.3:57
1454 msgid "Before glibc 2.12:"
1458 #: build/C/man3/ecvt.3:90
1460 "The B<ecvt>() function converts I<number> to a null-terminated string of "
1461 "I<ndigits> digits (where I<ndigits> is reduced to a system-specific limit "
1462 "determined by the precision of a I<double>), and returns a pointer to the "
1463 "string. The high-order digit is nonzero, unless I<number> is zero. The low "
1464 "order digit is rounded. The string itself does not contain a decimal point; "
1465 "however, the position of the decimal point relative to the start of the "
1466 "string is stored in I<*decpt>. A negative value for I<*decpt> means that "
1467 "the decimal point is to the left of the start of the string. If the sign of "
1468 "I<number> is negative, I<*sign> is set to a nonzero value, otherwise it is "
1469 "set to 0. If I<number> is zero, it is unspecified whether I<*decpt> is 0 or "
1474 #: build/C/man3/ecvt.3:97
1476 "The B<fcvt>() function is identical to B<ecvt>(), except that I<ndigits> "
1477 "specifies the number of digits after the decimal point."
1481 #: build/C/man3/ecvt.3:108
1483 "Both the B<ecvt>() and B<fcvt>() functions return a pointer to a static "
1484 "string containing the ASCII representation of I<number>. The static string "
1485 "is overwritten by each call to B<ecvt>() or B<fcvt>()."
1489 #: build/C/man3/ecvt.3:120
1491 "SVr2; marked as LEGACY in POSIX.1-2001. POSIX.1-2008 removes the "
1492 "specifications of B<ecvt>() and B<fcvt>(), recommending the use of "
1493 "B<sprintf>(3) instead (though B<snprintf>(3) may be preferable)."
1497 #: build/C/man3/ecvt.3:126
1499 "Linux libc4 and libc5 specified the type of I<ndigits> as I<size_t>. Not "
1500 "all locales use a point as the radix character (\"decimal point\")."
1504 #: build/C/man3/ecvt.3:132
1505 msgid "B<ecvt_r>(3), B<gcvt>(3), B<qecvt>(3), B<setlocale>(3), B<sprintf>(3)"
1509 #: build/C/man3/ecvt_r.3:28
1515 #: build/C/man3/ecvt_r.3:31
1517 "ecvt_r, fcvt_r, qecvt_r, qfcvt_r - convert a floating-point number to a "
1522 #: build/C/man3/ecvt_r.3:37
1525 "B<int ecvt_r(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,>\n"
1526 "B< int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1530 #: build/C/man3/ecvt_r.3:40
1533 "B<int fcvt_r(double >I<number>B<, int >I<ndigits>B<, int *>I<decpt>B<,>\n"
1534 "B< int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1538 #: build/C/man3/ecvt_r.3:43
1541 "B<int qecvt_r(long double >I<number>B<, int >I<ndigits>B<, int "
1543 "B< int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1547 #: build/C/man3/ecvt_r.3:46
1550 "B<int qfcvt_r(long double >I<number>B<, int >I<ndigits>B<, int "
1552 "B< int *>I<sign>B<, char *>I<buf>B<, size_t >I<len>B<);>\n"
1556 #: build/C/man3/ecvt_r.3:58
1557 msgid "B<ecvt_r>(), B<fcvt_r>(), B<qecvt_r>(), B<qfcvt_r>():"
1561 #: build/C/man3/ecvt_r.3:60
1562 msgid "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500"
1566 #: build/C/man3/ecvt_r.3:84
1568 "The functions B<ecvt_r>(), B<fcvt_r>(), B<qecvt_r>() and B<qfcvt_r>() are "
1569 "identical to B<ecvt>(3), B<fcvt>(3), B<qecvt>(3) and B<qfcvt>(3), "
1570 "respectively, except that they do not return their result in a static "
1571 "buffer, but instead use the supplied I<buf> of size I<len>. See B<ecvt>(3) "
1576 #: build/C/man3/ecvt_r.3:86
1577 msgid "These functions return 0 on success, and -1 otherwise."
1581 #: build/C/man3/ecvt_r.3:88
1582 msgid "These functions are GNU extensions."
1586 #: build/C/man3/ecvt_r.3:93 build/C/man3/qecvt.3:81
1587 msgid "These functions are obsolete. Instead, B<sprintf>(3) is recommended."
1591 #: build/C/man3/ecvt_r.3:97
1592 msgid "B<ecvt>(3), B<qecvt>(3), B<sprintf>(3)"
1596 #: build/C/man3/exit.3:23
1602 #: build/C/man3/exit.3:23 build/C/man3/setenv.3:35
1608 #: build/C/man3/exit.3:26
1609 msgid "exit - cause normal process termination"
1613 #: build/C/man3/exit.3:31
1615 msgid "B<void exit(int >I<status>B<);>\n"
1619 #: build/C/man3/exit.3:39
1621 "The B<exit>() function causes normal process termination and the value of "
1622 "I<status & 0377> is returned to the parent (see B<wait>(2))."
1626 #: build/C/man3/exit.3:66
1628 "All functions registered with B<atexit>(3) and B<on_exit>(3) are called, "
1629 "in the reverse order of their registration. (It is possible for one of "
1630 "these functions to use B<atexit>(3) or B<on_exit>(3) to register an "
1631 "additional function to be executed during exit processing; the new "
1632 "registration is added to the front of the list of functions that remain to "
1633 "be called.) If one of these functions does not return (e.g., it calls "
1634 "B<_exit>(2), or kills itself with a signal), then none of the remaining "
1635 "functions is called, and further exit processing (in particular, flushing of "
1636 "B<stdio>(3) streams) is abandoned. If a function has been registered "
1637 "multiple times using B<atexit>(3) or B<on_exit>(3), then it is called as "
1638 "many times as it was registered."
1642 #: build/C/man3/exit.3:73
1644 "All open B<stdio>(3) streams are flushed and closed. Files created by "
1645 "B<tmpfile>(3) are removed."
1649 #: build/C/man3/exit.3:80
1651 "The C standard specifies two constants, B<EXIT_SUCCESS> and B<EXIT_FAILURE>, "
1652 "that may be passed to B<exit>() to indicate successful or unsuccessful "
1653 "termination, respectively."
1657 #: build/C/man3/exit.3:84
1658 msgid "The B<exit>() function does not return."
1662 #: build/C/man3/exit.3:86
1663 msgid "SVr4, 4.3BSD, POSIX.1-2001, C89, C99."
1667 #: build/C/man3/exit.3:97
1669 "It is undefined what happens if one of the functions registered using "
1670 "B<atexit>(3) and B<on_exit>(3) calls either B<exit>() or B<longjmp>(3)."
1674 #: build/C/man3/exit.3:106
1676 "The use of B<EXIT_SUCCESS> and B<EXIT_FAILURE> is slightly more portable (to "
1677 "non-UNIX environments) than the use of 0 and some nonzero value like 1 or "
1678 "-1. In particular, VMS uses a different convention."
1682 #: build/C/man3/exit.3:109
1684 "BSD has attempted to standardize exit codes; see the file "
1685 "I<E<lt>sysexits.hE<gt>>."
1689 #: build/C/man3/exit.3:134
1691 "After B<exit>(), the exit status must be transmitted to the parent process. "
1692 "There are three cases. If the parent has set B<SA_NOCLDWAIT>, or has set "
1693 "the B<SIGCHLD> handler to B<SIG_IGN>, the status is discarded. If the "
1694 "parent was waiting on the child it is notified of the exit status. In both "
1695 "cases the exiting process dies immediately. If the parent has not indicated "
1696 "that it is not interested in the exit status, but is not waiting, the "
1697 "exiting process turns into a \"zombie\" process (which is nothing but a "
1698 "container for the single byte representing the exit status) so that the "
1699 "parent can learn the exit status when it later calls one of the B<wait>(2) "
1704 #: build/C/man3/exit.3:144
1706 "If the implementation supports the B<SIGCHLD> signal, this signal is sent to "
1707 "the parent. If the parent has set B<SA_NOCLDWAIT>, it is undefined whether "
1708 "a B<SIGCHLD> signal is sent."
1712 #: build/C/man3/exit.3:153
1714 "If the process is a session leader and its controlling terminal is the "
1715 "controlling terminal of the session, then each process in the foreground "
1716 "process group of this controlling terminal is sent a B<SIGHUP> signal, and "
1717 "the terminal is disassociated from this session, allowing it to be acquired "
1718 "by a new controlling process."
1722 #: build/C/man3/exit.3:165
1724 "If the exit of the process causes a process group to become orphaned, and if "
1725 "any member of the newly orphaned process group is stopped, then a B<SIGHUP> "
1726 "signal followed by a B<SIGCONT> signal will be sent to each process in this "
1727 "process group. See B<setpgid>(2) for an explanation of orphaned process "
1732 #: build/C/man3/exit.3:172
1734 "B<_exit>(2), B<setpgid>(2), B<wait>(2), B<atexit>(3), B<on_exit>(3), "
1739 #: build/C/man3/gcvt.3:28
1745 #: build/C/man3/gcvt.3:31
1746 msgid "gcvt - convert a floating-point number to a string"
1750 #: build/C/man3/gcvt.3:36
1752 msgid "B<char *gcvt(double >I<number>B<, size_t >I<ndigit>B<, char *>I<buf>B<);>\n"
1756 #: build/C/man3/gcvt.3:44
1761 #: build/C/man3/gcvt.3:59
1763 "_SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || _XOPEN_SOURCE && "
1764 "_XOPEN_SOURCE_EXTENDED"
1768 #: build/C/man3/gcvt.3:70
1770 "The B<gcvt>() function converts I<number> to a minimal length "
1771 "null-terminated ASCII string and stores the result in I<buf>. It produces "
1772 "I<ndigit> significant digits in either B<printf>(3) F format or E format."
1776 #: build/C/man3/gcvt.3:75
1778 "The B<gcvt>() function returns the address of the string pointed to by "
1783 #: build/C/man3/gcvt.3:84
1785 "Marked as LEGACY in POSIX.1-2001. POSIX.1-2008 removes the specification of "
1786 "B<gcvt>(), recommending the use of B<sprintf>(3) instead (though "
1787 "B<snprintf>(3) may be preferable)."
1791 #: build/C/man3/gcvt.3:88
1792 msgid "B<ecvt>(3), B<fcvt>(3), B<sprintf>(3)"
1796 #: build/C/man3/getenv.3:31
1802 #: build/C/man3/getenv.3:31
1808 #: build/C/man3/getenv.3:34
1809 msgid "getenv - get an environment variable"
1813 #: build/C/man3/getenv.3:39
1815 msgid "B<char *getenv(const char *>I<name>B<);>\n"
1819 #: build/C/man3/getenv.3:49
1821 "The B<getenv>() function searches the environment list to find the "
1822 "environment variable I<name>, and returns a pointer to the corresponding "
1827 #: build/C/man3/getenv.3:54
1829 "The B<getenv>() function returns a pointer to the value in the environment, "
1830 "or NULL if there is no match."
1834 #: build/C/man3/getenv.3:58
1835 msgid "The strings in the environment list are of the form I<name=value>."
1839 #: build/C/man3/getenv.3:64
1841 "As typically implemented, B<getenv>() returns a pointer to a string within "
1842 "the environment list. The caller must take care not to modify this string, "
1843 "since that would change the environment of the process."
1847 #: build/C/man3/getenv.3:77
1849 "The implementation of B<getenv>() is not required to be reentrant. The "
1850 "string pointed to by the return value of B<getenv>() may be statically "
1851 "allocated, and can be modified by a subsequent call to B<getenv>(), "
1852 "B<putenv>(3), B<setenv>(3), or B<unsetenv>(3)."
1856 #: build/C/man3/getenv.3:83
1857 msgid "B<clearenv>(3), B<putenv>(3), B<setenv>(3), B<unsetenv>(3), B<environ>(7)"
1861 #: build/C/man3/getloadavg.3:32
1867 #: build/C/man3/getloadavg.3:32
1873 #: build/C/man3/getloadavg.3:35
1874 msgid "getloadavg - get system load averages"
1878 #: build/C/man3/getloadavg.3:39
1881 "B<#define _BSD_SOURCE> /* See feature_test_macros(7) */\n"
1882 "B<#include E<lt>stdlib.hE<gt>>\n"
1886 #: build/C/man3/getloadavg.3:41
1888 msgid "B<int getloadavg(double >I<loadavg[]>B<, int >I<nelem>B<);>\n"
1892 #: build/C/man3/getloadavg.3:53
1894 "The B<getloadavg>() function returns the number of processes in the system "
1895 "run queue averaged over various periods of time. Up to I<nelem> samples are "
1896 "retrieved and assigned to successive elements of I<loadavg>[]. The system "
1897 "imposes a maximum of 3 samples, representing averages over the last 1, 5, "
1898 "and 15 minutes, respectively."
1904 #. function appeared in
1907 #: build/C/man3/getloadavg.3:61
1909 "If the load average was unobtainable, -1 is returned; otherwise, the number "
1910 "of samples actually retrieved is returned."
1914 #: build/C/man3/getloadavg.3:63
1915 msgid "This function is available in glibc since version 2.2."
1918 #. mdoc seems to have a bug - there must be no newline here
1920 #: build/C/man3/getloadavg.3:67
1921 msgid "Not in POSIX.1-2001. Present on the BSDs and Solaris."
1925 #: build/C/man3/getloadavg.3:70
1926 msgid "B<uptime>(1), B<proc>(5)"
1930 #: build/C/man3/getsubopt.3:23
1936 #: build/C/man3/getsubopt.3:23 build/C/man3/mkdtemp.3:24
1942 #: build/C/man3/getsubopt.3:26
1943 msgid "getsubopt - parse suboption arguments from a string"
1947 #: build/C/man3/getsubopt.3:31
1949 "B<int getsubopt(char **>I<optionp>B<, char * const *>I<tokens>B<, char "
1954 #: build/C/man3/getsubopt.3:38
1955 msgid "B<getsubopt>():"
1959 #: build/C/man3/getsubopt.3:43
1960 msgid "_XOPEN_SOURCE\\ E<gt>= 500 || _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
1964 #: build/C/man3/getsubopt.3:45
1965 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
1969 #: build/C/man3/getsubopt.3:62
1971 "B<getsubopt>() parses the list of comma-separated suboptions provided in "
1972 "I<optionp>. (Such a suboption list is typically produced when B<getopt>(3) "
1973 "is used to parse a command line; see for example the I<-o> option of "
1974 "B<mount>(8).) Each suboption may include an associated value, which is "
1975 "separated from the suboption name by an equal sign. The following is an "
1976 "example of the kind of string that might be passed in I<optionp>:"
1980 #: build/C/man3/getsubopt.3:65
1981 msgid "B<ro,name=xyz>"
1985 #: build/C/man3/getsubopt.3:75
1987 "The I<tokens> argument is a pointer to a NULL-terminated array of pointers "
1988 "to the tokens that B<getsubopt>() will look for in I<optionp>. The tokens "
1989 "should be distinct, null-terminated strings containing at least one "
1990 "character, with no embedded equal signs or commas."
1994 #: build/C/man3/getsubopt.3:96
1996 "Each call to B<getsubopt>() returns information about the next unprocessed "
1997 "suboption in I<optionp>. The first equal sign in a suboption (if any) is "
1998 "interpreted as a separator between the name and the value of that "
1999 "suboption. The value extends to the next comma, or (for the last suboption) "
2000 "to the end of the string. If the name of the suboption matches a known name "
2001 "from I<tokens>, and a value string was found, B<getsubopt>() sets "
2002 "I<*valuep> to the address of that string. The first comma in I<optionp> is "
2003 "overwritten with a null byte, so I<*valuep> is precisely the \"value "
2004 "string\" for that suboption."
2008 #: build/C/man3/getsubopt.3:100
2010 "If the suboption is recognized, but no value string was found, I<*valuep> is "
2015 #: build/C/man3/getsubopt.3:108
2017 "When B<getsubopt>() returns, I<optionp> points to the next suboption, or to "
2018 "the null byte (\\(aq\\e0\\(aq) at the end of the string if the last "
2019 "suboption was just processed."
2023 #: build/C/man3/getsubopt.3:120
2025 "If the first suboption in I<optionp> is recognized, B<getsubopt>() returns "
2026 "the index of the matching suboption element in I<tokens>. Otherwise, -1 is "
2027 "returned and I<*valuep> is the entire I<name>B<[=>I<value>B<]> string."
2031 #: build/C/man3/getsubopt.3:127
2033 "Since I<*optionp> is changed, the first suboption before the call to "
2034 "B<getsubopt>() is not (necessarily) the same as the first suboption after "
2039 #: build/C/man3/getsubopt.3:136
2041 "Since B<getsubopt>() overwrites any commas it finds in the string "
2042 "I<*optionp>, that string must be writable; it cannot be a string constant."
2046 #: build/C/man3/getsubopt.3:138
2047 msgid "The following program expects suboptions following a \"-o\" option."
2051 #: build/C/man3/getsubopt.3:144
2054 "#define _XOPEN_SOURCE 500\n"
2055 "#include E<lt>stdlib.hE<gt>\n"
2056 "#include E<lt>assert.hE<gt>\n"
2057 "#include E<lt>stdio.hE<gt>\n"
2061 #: build/C/man3/getsubopt.3:161
2064 "int main(int argc, char **argv)\n"
2071 " char *const token[] = {\n"
2072 " [RO_OPT] = \"ro\",\n"
2073 " [RW_OPT] = \"rw\",\n"
2074 " [NAME_OPT] = \"name\",\n"
2083 #: build/C/man3/getsubopt.3:166
2086 " int readonly = 0;\n"
2087 " int readwrite = 0;\n"
2088 " char *name = NULL;\n"
2089 " int errfnd = 0;\n"
2093 #: build/C/man3/getsubopt.3:172
2096 " while ((opt = getopt(argc, argv, \"o:\")) != -1) {\n"
2098 " case \\(aqo\\(aq:\n"
2099 " subopts = optarg;\n"
2100 " while (*subopts != \\(aq\\e0\\(aq && !errfnd) {\n"
2104 #: build/C/man3/getsubopt.3:177
2107 " switch (getsubopt(&subopts, token, &value)) {\n"
2114 #: build/C/man3/getsubopt.3:181
2123 #: build/C/man3/getsubopt.3:189
2127 " if (value == NULL) {\n"
2128 " fprintf(stderr, \"Missing value for \"\n"
2129 " \"suboption \\(aq%s\\(aq\\en\", "
2130 "token[NAME_OPT]);\n"
2137 #: build/C/man3/getsubopt.3:192
2145 #: build/C/man3/getsubopt.3:206
2149 " fprintf(stderr, \"No match found \"\n"
2150 " \"for token: /%s/\\en\", value);\n"
2155 " if (readwrite && readonly) {\n"
2156 " fprintf(stderr, \"Only one of \\(aq%s\\(aq and \\(aq%s\\(aq can "
2158 " \"specified\\en\", token[RO_OPT], token[RW_OPT]);\n"
2165 #: build/C/man3/getsubopt.3:211
2175 #: build/C/man3/getsubopt.3:218
2178 " if (errfnd || argc == 1) {\n"
2179 " fprintf(stderr, \"\\enUsage: %s -o E<lt>suboptstringE<gt>\\en\", "
2181 " fprintf(stderr, \"suboptions are \\(aqro\\(aq, \\(aqrw\\(aq, \"\n"
2182 " \"and \\(aqname=E<lt>valueE<gt>\\(aq\\en\");\n"
2183 " exit(EXIT_FAILURE);\n"
2188 #: build/C/man3/getsubopt.3:220
2190 msgid " /* Remainder of program... */\n"
2194 #: build/C/man3/getsubopt.3:226
2195 msgid "B<getopt>(3)"
2199 #: build/C/man3/malloc.3:28
2205 #: build/C/man3/malloc.3:28
2211 #: build/C/man3/malloc.3:31
2212 msgid "malloc, free, calloc, realloc - Allocate and free dynamic memory"
2216 #: build/C/man3/malloc.3:39
2219 "B<void *malloc(size_t >I<size>B<);>\n"
2220 "B<void free(void >I<*ptr>B<);>\n"
2221 "B<void *calloc(size_t >I<nmemb>B<, size_t >I<size>B<);>\n"
2222 "B<void *realloc(void >I<*ptr>B<, size_t >I<size>B<);>\n"
2227 #: build/C/man3/malloc.3:56
2229 "The B<malloc>() function allocates I<size> bytes and returns a pointer to "
2230 "the allocated memory. I<The memory is not initialized>. If I<size> is 0, "
2231 "then B<malloc>() returns either NULL, or a unique pointer value that can "
2232 "later be successfully passed to B<free>()."
2236 #: build/C/man3/malloc.3:72
2238 "The B<free>() function frees the memory space pointed to by I<ptr>, which "
2239 "must have been returned by a previous call to B<malloc>(), B<calloc>() or "
2240 "B<realloc>(). Otherwise, or if I<free(ptr)> has already been called before, "
2241 "undefined behavior occurs. If I<ptr> is NULL, no operation is performed."
2246 #: build/C/man3/malloc.3:91
2248 "The B<calloc>() function allocates memory for an array of I<nmemb> elements "
2249 "of I<size> bytes each and returns a pointer to the allocated memory. The "
2250 "memory is set to zero. If I<nmemb> or I<size> is 0, then B<calloc>() "
2251 "returns either NULL, or a unique pointer value that can later be "
2252 "successfully passed to B<free>()."
2256 #: build/C/man3/malloc.3:127
2258 "The B<realloc>() function changes the size of the memory block pointed to "
2259 "by I<ptr> to I<size> bytes. The contents will be unchanged in the range "
2260 "from the start of the region up to the minimum of the old and new sizes. If "
2261 "the new size is larger than the old size, the added memory will I<not> be "
2262 "initialized. If I<ptr> is NULL, then the call is equivalent to "
2263 "I<malloc(size)>, for all values of I<size>; if I<size> is equal to zero, and "
2264 "I<ptr> is not NULL, then the call is equivalent to I<free(ptr)>. Unless "
2265 "I<ptr> is NULL, it must have been returned by an earlier call to "
2266 "B<malloc>(), B<calloc>() or B<realloc>(). If the area pointed to was "
2267 "moved, a I<free(ptr)> is done."
2271 #: build/C/man3/malloc.3:147
2273 "The B<malloc>() and B<calloc>() functions return a pointer to the "
2274 "allocated memory that is suitably aligned for any kind of variable. On "
2275 "error, these functions return NULL. NULL may also be returned by a "
2276 "successful call to B<malloc>() with a I<size> of zero, or by a successful "
2277 "call to B<calloc>() with I<nmemb> or I<size> equal to zero."
2281 #: build/C/man3/malloc.3:151
2282 msgid "The B<free>() function returns no value."
2286 #: build/C/man3/malloc.3:166
2288 "The B<realloc>() function returns a pointer to the newly allocated memory, "
2289 "which is suitably aligned for any kind of variable and may be different from "
2290 "I<ptr>, or NULL if the request fails. If I<size> was equal to 0, either "
2291 "NULL or a pointer suitable to be passed to B<free>() is returned. If "
2292 "B<realloc>() fails the original block is left untouched; it is not freed or "
2297 #: build/C/man3/malloc.3:168
2302 #: build/C/man3/malloc.3:184
2304 "By default, Linux follows an optimistic memory allocation strategy. This "
2305 "means that when B<malloc>() returns non-NULL there is no guarantee that the "
2306 "memory really is available. In case it turns out that the system is out of "
2307 "memory, one or more processes will be killed by the OOM killer. For more "
2308 "information, see the description of I</proc/sys/vm/overcommit_memory> and "
2309 "I</proc/sys/vm/oom_adj> in B<proc>(5), and the kernel source file "
2310 "I<Documentation/vm/overcommit-accounting>."
2314 #: build/C/man3/malloc.3:205
2316 "Normally, B<malloc>() allocates memory from the heap, and adjusts the size "
2317 "of the heap as required, using B<sbrk>(2). When allocating blocks of memory "
2318 "larger than B<MMAP_THRESHOLD> bytes, the glibc B<malloc>() implementation "
2319 "allocates the memory as a private anonymous mapping using B<mmap>(2). "
2320 "B<MMAP_THRESHOLD> is 128 kB by default, but is adjustable using "
2321 "B<mallopt>(3). Allocations performed using B<mmap>(2) are unaffected by "
2322 "the B<RLIMIT_DATA> resource limit (see B<getrlimit>(2))."
2326 #: build/C/man3/malloc.3:223
2328 "To avoid corruption in multithreaded applications, mutexes are used "
2329 "internally to protect the memory-management data structures employed by "
2330 "these functions. In a multithreaded application in which threads "
2331 "simultaneously allocate and free memory, there could be contention for these "
2332 "mutexes. To scalably handle memory allocation in multithreaded "
2333 "applications, glibc creates additional I<memory allocation arenas> if mutex "
2334 "contention is detected. Each arena is a large region of memory that is "
2335 "internally allocated by the system (using B<brk>(2) or B<mmap>(2)), and "
2336 "managed with its own mutexes."
2340 #: build/C/man3/malloc.3:241
2342 "The UNIX 98 standard requires B<malloc>(), B<calloc>(), and B<realloc>() to "
2343 "set I<errno> to B<ENOMEM> upon failure. Glibc assumes that this is done "
2344 "(and the glibc versions of these routines do this); if you use a private "
2345 "malloc implementation that does not set I<errno>, then certain library "
2346 "routines may fail without having a reason in I<errno>."
2350 #: build/C/man3/malloc.3:250
2352 "Crashes in B<malloc>(), B<calloc>(), B<realloc>(), or B<free>() are almost "
2353 "always related to heap corruption, such as overflowing an allocated chunk or "
2354 "freeing the same pointer twice."
2358 #: build/C/man3/malloc.3:257
2360 "Recent versions of Linux libc (later than 5.4.23) and glibc (2.x) include a "
2361 "B<malloc>() implementation which is tunable via environment variables. For "
2362 "details, see B<mallopt>(3)."
2365 #. http://g.oswego.edu/dl/html/malloc.html
2366 #. A Memory Allocator - by Doug Lea
2368 #. http://www.bozemanpass.com/info/linux/malloc/Linux_Heap_Contention.html
2369 #. Linux Heap, Contention in free() - David Boreham
2371 #. http://www.citi.umich.edu/projects/linux-scalability/reports/malloc.html
2372 #. malloc() Performance in a Multithreaded Linux Environment -
2373 #. Check Lever, David Boreham
2375 #: build/C/man3/malloc.3:278
2377 "B<brk>(2), B<mmap>(2), B<alloca>(3), B<malloc_get_state>(3), "
2378 "B<malloc_trim>(3), B<malloc_usable_size>(3), B<mallopt>(3), B<mcheck>(3), "
2379 "B<mtrace>(3), B<posix_memalign>(3)"
2383 #: build/C/man3/mblen.3:14
2389 #: build/C/man3/mblen.3:14 build/C/man3/wctomb.3:14
2395 #: build/C/man3/mblen.3:17
2396 msgid "mblen - determine number of bytes in next multibyte character"
2400 #: build/C/man3/mblen.3:22
2402 msgid "B<int mblen(const char *>I<s>B<, size_t >I<n>B<);>\n"
2406 #: build/C/man3/mblen.3:36
2408 "If I<s> is not a NULL pointer, the B<mblen>() function inspects at most "
2409 "I<n> bytes of the multibyte string starting at I<s> and extracts the next "
2410 "complete multibyte character. It uses a static anonymous shift state only "
2411 "known to the B<mblen>() function. If the multibyte character is not the "
2412 "null wide character, it returns the number of bytes that were consumed from "
2413 "I<s>. If the multibyte character is the null wide character, it returns 0."
2417 #: build/C/man3/mblen.3:44
2419 "If the I<n> bytes starting at I<s> do not contain a complete multibyte "
2420 "character, B<mblen>() returns -1. This can happen even if I<n> is greater "
2421 "than or equal to I<MB_CUR_MAX>, if the multibyte string contains redundant "
2426 #: build/C/man3/mblen.3:49
2428 "If the multibyte string starting at I<s> contains an invalid multibyte "
2429 "sequence before the next complete character, B<mblen>() also returns -1."
2432 #. The Dinkumware doc and the Single UNIX specification say this, but
2433 #. glibc doesn't implement this.
2435 #: build/C/man3/mblen.3:58
2437 "If I<s> is a NULL pointer, the B<mblen>() function resets the shift state, "
2438 "only known to this function, to the initial state, and returns nonzero if "
2439 "the encoding has nontrivial shift state, or zero if the encoding is "
2444 #: build/C/man3/mblen.3:68
2446 "The B<mblen>() function returns the number of bytes parsed from the "
2447 "multibyte sequence starting at I<s>, if a non-null wide character was "
2448 "recognized. It returns 0, if a null wide character was recognized. It "
2449 "returns -1, if an invalid multibyte sequence was encountered or if it "
2450 "couldn't parse a complete multibyte character."
2454 #: build/C/man3/mblen.3:70 build/C/man3/mbstowcs.3:70 build/C/man3/mbtowc.3:78 build/C/man3/wcstombs.3:70 build/C/man3/wctomb.3:66
2459 #: build/C/man3/mblen.3:77
2461 "The behavior of B<mblen>() depends on the B<LC_CTYPE> category of the "
2466 #: build/C/man3/mblen.3:82
2468 "The function B<mbrlen>(3) provides a better interface to the same "
2473 #: build/C/man3/mblen.3:84
2474 msgid "B<mbrlen>(3)"
2478 #: build/C/man3/mbstowcs.3:14
2484 #: build/C/man3/mbstowcs.3:14 build/C/man3/mbtowc.3:14
2490 #: build/C/man3/mbstowcs.3:17
2491 msgid "mbstowcs - convert a multibyte string to a wide-character string"
2495 #: build/C/man3/mbstowcs.3:22
2498 "B<size_t mbstowcs(wchar_t *>I<dest>B<, const char *>I<src>B<, size_t "
2503 #: build/C/man3/mbstowcs.3:33
2505 "If I<dest> is not a NULL pointer, the B<mbstowcs>() function converts the "
2506 "multibyte string I<src> to a wide-character string starting at I<dest>. At "
2507 "most I<n> wide characters are written to I<dest>. The conversion starts in "
2508 "the initial state. The conversion can stop for three reasons:"
2512 #: build/C/man3/mbstowcs.3:33
2518 #: build/C/man3/mbstowcs.3:38
2520 "An invalid multibyte sequence has been encountered. In this case "
2521 "I<(size_t)\\ -1> is returned."
2525 #: build/C/man3/mbstowcs.3:38
2531 #: build/C/man3/mbstowcs.3:43
2533 "I<n> non-L\\(aq\\e0\\(aq wide characters have been stored at I<dest>. In "
2534 "this case the number of wide characters written to I<dest> is returned, but "
2535 "the shift state at this point is lost."
2539 #: build/C/man3/mbstowcs.3:43
2545 #: build/C/man3/mbstowcs.3:48
2547 "The multibyte string has been completely converted, including the "
2548 "terminating null wide character (\\(aq\\e0\\(aq). In this case the number "
2549 "of wide characters written to I<dest>, excluding the terminating null wide "
2550 "character, is returned."
2554 #: build/C/man3/mbstowcs.3:51
2556 "The programmer must ensure that there is room for at least I<n> wide "
2557 "characters at I<dest>."
2561 #: build/C/man3/mbstowcs.3:55
2563 "If I<dest> is NULL, I<n> is ignored, and the conversion proceeds as above, "
2564 "except that the converted wide characters are not written out to memory, and "
2565 "that no length limit exists."
2569 #: build/C/man3/mbstowcs.3:58
2571 "In order to avoid the case 2 above, the programmer should make sure I<n> is "
2572 "greater or equal to I<mbstowcs(NULL,src,0)+1>."
2576 #: build/C/man3/mbstowcs.3:68
2578 "The B<mbstowcs>() function returns the number of wide characters that make "
2579 "up the converted part of the wide-character string, not including the "
2580 "terminating null wide character. If an invalid multibyte sequence was "
2581 "encountered, I<(size_t)\\ -1> is returned."
2585 #: build/C/man3/mbstowcs.3:77
2587 "The behavior of B<mbstowcs>() depends on the B<LC_CTYPE> category of the "
2592 #: build/C/man3/mbstowcs.3:82
2594 "The function B<mbsrtowcs>(3) provides a better interface to the same "
2599 #: build/C/man3/mbstowcs.3:85
2600 msgid "B<mbsrtowcs>(3), B<wcstombs(3)>"
2604 #: build/C/man3/mbtowc.3:14
2610 #: build/C/man3/mbtowc.3:17
2611 msgid "mbtowc - convert a multibyte sequence to a wide character"
2615 #: build/C/man3/mbtowc.3:22
2617 msgid "B<int mbtowc(wchar_t *>I<pwc>B<, const char *>I<s>B<, size_t >I<n>B<);>\n"
2621 #: build/C/man3/mbtowc.3:37
2623 "The main case for this function is when I<s> is not NULL and I<pwc> is not "
2624 "NULL. In this case, the B<mbtowc>() function inspects at most I<n> bytes "
2625 "of the multibyte string starting at I<s>, extracts the next complete "
2626 "multibyte character, converts it to a wide character and stores it at "
2627 "I<*pwc>. It updates an internal shift state only known to the mbtowc "
2628 "function. If I<s> does not point to a null byte (\\(aq\\e0\\(aq), it "
2629 "returns the number of bytes that were consumed from I<s>, otherwise it "
2634 #: build/C/man3/mbtowc.3:44
2636 "If the I<n> bytes starting at I<s> do not contain a complete multibyte "
2637 "character, or if they contain an invalid multibyte sequence, B<mbtowc>() "
2638 "returns -1. This can happen even if I<n> E<gt>= I<MB_CUR_MAX>, if the "
2639 "multibyte string contains redundant shift sequences."
2643 #: build/C/man3/mbtowc.3:51
2645 "A different case is when I<s> is not NULL but I<pwc> is NULL. In this case "
2646 "the B<mbtowc>() function behaves as above, except that it does not store "
2647 "the converted wide character in memory."
2650 #. The Dinkumware doc and the Single UNIX specification say this, but
2651 #. glibc doesn't implement this.
2653 #: build/C/man3/mbtowc.3:64
2655 "A third case is when I<s> is NULL. In this case, I<pwc> and I<n> are "
2656 "ignored. The B<mbtowc>() function resets the shift state, only known to "
2657 "this function, to the initial state, and returns nonzero if the encoding has "
2658 "nontrivial shift state, or zero if the encoding is stateless."
2662 #: build/C/man3/mbtowc.3:70
2664 "If I<s> is not NULL, the B<mbtowc>() function returns the number of "
2665 "consumed bytes starting at I<s>, or 0 if I<s> points to a null byte, or -1 "
2670 #: build/C/man3/mbtowc.3:76
2672 "If I<s> is NULL, the B<mbtowc>() function returns nonzero if the encoding "
2673 "has nontrivial shift state, or zero if the encoding is stateless."
2677 #: build/C/man3/mbtowc.3:85
2679 "The behavior of B<mbtowc>() depends on the B<LC_CTYPE> category of the "
2684 #: build/C/man3/mbtowc.3:91
2686 "This function is not multithread safe. The function B<mbrtowc>(3) provides "
2687 "a better interface to the same functionality."
2691 #: build/C/man3/mbtowc.3:95
2692 msgid "B<MB_CUR_MAX>(3), B<mbrtowc>(3), B<mbstowcs>(3)"
2696 #: build/C/man3/mkdtemp.3:24
2702 #: build/C/man3/mkdtemp.3:27
2703 msgid "mkdtemp - create a unique temporary directory"
2707 #: build/C/man3/mkdtemp.3:32
2709 msgid "B<char *mkdtemp(char *>I<template>B<);>\n"
2713 #: build/C/man3/mkdtemp.3:40
2714 msgid "B<mkdtemp>():"
2718 #: build/C/man3/mkdtemp.3:45
2723 #: build/C/man3/mkdtemp.3:47
2724 msgid "|| /* Since glibc 2.10: */"
2728 #: build/C/man3/mkdtemp.3:49
2729 msgid "(_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700)"
2733 #: build/C/man3/mkdtemp.3:66
2735 "The B<mkdtemp>() function generates a uniquely named temporary directory "
2736 "from I<template>. The last six characters of I<template> must be XXXXXX and "
2737 "these are replaced with a string that makes the directory name unique. The "
2738 "directory is then created with permissions 0700. Since it will be modified, "
2739 "I<template> must not be a string constant, but should be declared as a "
2744 #: build/C/man3/mkdtemp.3:73
2746 "The B<mkdtemp>() function returns a pointer to the modified template string "
2747 "on success, and NULL on failure, in which case I<errno> is set "
2752 #: build/C/man3/mkdtemp.3:73 build/C/man3/mkstemp.3:142 build/C/man3/mktemp.3:84 build/C/man3/putenv.3:70 build/C/man3/random.3:130 build/C/man3/random_r.3:100 build/C/man3/rpmatch.3:71 build/C/man3/setenv.3:98 build/C/man3/strtod.3:154 build/C/man3/strtol.3:124 build/C/man3/strtoul.3:127
2758 #: build/C/man3/mkdtemp.3:74 build/C/man3/mkstemp.3:147 build/C/man3/mktemp.3:85 build/C/man3/random.3:131 build/C/man3/random_r.3:101 build/C/man3/random_r.3:105 build/C/man3/random_r.3:114 build/C/man3/setenv.3:99 build/C/man3/strtol.3:125 build/C/man3/strtoul.3:128
2764 #: build/C/man3/mkdtemp.3:78
2766 "The last six characters of I<template> were not XXXXXX. Now I<template> is "
2771 #: build/C/man3/mkdtemp.3:82
2772 msgid "Also see B<mkdir>(2) for other possible values for I<errno>."
2776 #: build/C/man3/mkdtemp.3:84
2777 msgid "Available since glibc 2.1.91."
2780 #. As at 2006, this function is being considered for a revision of POSIX.1
2781 #. Also in NetBSD 1.4.
2783 #: build/C/man3/mkdtemp.3:89
2784 msgid "POSIX.1-2008. This function is present on the BSDs."
2788 #: build/C/man3/mkdtemp.3:96
2790 "B<mkdir>(2), B<mkstemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3), "
2795 #: build/C/man3/mkstemp.3:33
2801 #: build/C/man3/mkstemp.3:33
2807 #: build/C/man3/mkstemp.3:36
2808 msgid "mkstemp, mkostemp, mkstemps, mkostemps - create a unique temporary file"
2812 #: build/C/man3/mkstemp.3:41
2814 msgid "B<int mkstemp(char *>I<template>B<);>\n"
2818 #: build/C/man3/mkstemp.3:43
2820 msgid "B<int mkostemp(char *>I<template>B<, int >I<flags>B<);>\n"
2824 #: build/C/man3/mkstemp.3:45
2826 msgid "B<int mkstemps(char *>I<template>B<, int >I<suffixlen>B<);>\n"
2830 #: build/C/man3/mkstemp.3:47
2833 "B<int mkostemps(char *>I<template>B<, int >I<suffixlen>B<, int "
2838 #: build/C/man3/mkstemp.3:55
2839 msgid "B<mkstemp>():"
2843 #: build/C/man3/mkstemp.3:60 build/C/man3/mktemp.3:61
2845 "_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
2846 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
2850 #: build/C/man3/mkstemp.3:62
2851 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200112L"
2855 #: build/C/man3/mkstemp.3:68
2856 msgid "B<mkostemp>(): _GNU_SOURCE"
2860 #: build/C/man3/mkstemp.3:71
2861 msgid "B<mkstemps>(): _BSD_SOURCE || _SVID_SOURCE"
2865 #: build/C/man3/mkstemp.3:74
2866 msgid "B<mkostemps>(): _GNU_SOURCE"
2870 #: build/C/man3/mkstemp.3:81
2872 "The B<mkstemp>() function generates a unique temporary filename from "
2873 "I<template>, creates and opens the file, and returns an open file descriptor "
2878 #: build/C/man3/mkstemp.3:89
2880 "The last six characters of I<template> must be \"XXXXXX\" and these are "
2881 "replaced with a string that makes the filename unique. Since it will be "
2882 "modified, I<template> must not be a string constant, but should be declared "
2883 "as a character array."
2887 #: build/C/man3/mkstemp.3:99
2889 "The file is created with permissions 0600, that is, read plus write for "
2890 "owner only. (In glibc versions 2.06 and earlier, the file is created with "
2891 "permissions 0666, that is, read and write for all users.) The returned file "
2892 "descriptor provides both read and write access to the file. The file is "
2893 "opened with the B<open>(2) B<O_EXCL> flag, guaranteeing that the caller is "
2894 "the process that creates the file."
2898 #: build/C/man3/mkstemp.3:111
2900 "The B<mkostemp>() function is like B<mkstemp>(), with the difference that "
2901 "flags as for B<open>(2) may be specified in I<flags> (e.g., B<O_APPEND>, "
2906 #: build/C/man3/mkstemp.3:127
2908 "The B<mkstemps>() function is like B<mkstemp>(), except that the string in "
2909 "I<template> contains a suffix of I<suffixlen> characters. Thus, I<template> "
2910 "is of the form I<prefixXXXXXXsuffix>, and the string XXXXXX is modified as "
2915 #: build/C/man3/mkstemp.3:136
2917 "The B<mkostemps>() function is to B<mkstemps>() as B<mkostemp>() is to "
2922 #: build/C/man3/mkstemp.3:142
2924 "On success, these functions return the file descriptor of the temporary "
2925 "file. On error, -1 is returned, and I<errno> is set appropriately."
2929 #: build/C/man3/mkstemp.3:143
2935 #: build/C/man3/mkstemp.3:147
2937 "Could not create a unique temporary filename. Now the contents of "
2938 "I<template> are undefined."
2942 #: build/C/man3/mkstemp.3:155
2944 "For B<mkstemp>() and B<mkostemp>(): The last six characters of I<template> "
2945 "were not XXXXXX; now I<template> is unchanged."
2949 #: build/C/man3/mkstemp.3:166
2951 "For B<mkstemps>() and B<mkostemps>(): I<template> is less than I<(6 + "
2952 "suffixlen)> characters long, or the last 6 characters before the suffix in "
2953 "I<template> were not XXXXXX."
2957 #: build/C/man3/mkstemp.3:169
2959 "These functions may also fail with any of the errors described for "
2964 #: build/C/man3/mkstemp.3:176
2966 "B<mkostemp>() is available since glibc 2.7. B<mkstemps>() and "
2967 "B<mkostemps>() are available since glibc 2.11."
2971 #: build/C/man3/mkstemp.3:179
2972 msgid "B<mkstemp>(): 4.3BSD, POSIX.1-2001."
2975 #. mkstemps() appears to be at least on the BSDs, Mac OS X, Solaris,
2978 #: build/C/man3/mkstemp.3:184
2979 msgid "B<mkstemps>(): unstandardized, but appears on several other systems."
2983 #: build/C/man3/mkstemp.3:189
2984 msgid "B<mkostemp>() and B<mkostemps>(): are glibc extensions."
2988 #: build/C/man3/mkstemp.3:193
2990 "The old behavior of creating a file with mode 0666 may be a security risk, "
2991 "especially since other UNIX flavors use 0600, and somebody might overlook "
2992 "this detail when porting programs."
2996 #: build/C/man3/mkstemp.3:204
2998 "More generally, the POSIX specification of B<mkstemp>() does not say "
2999 "anything about file modes, so the application should make sure its file mode "
3000 "creation mask (see B<umask>(2)) is set appropriately before calling "
3001 "B<mkstemp>() (and B<mkostemp>())."
3005 #: build/C/man3/mkstemp.3:211
3007 "The prototype for B<mktemp>() is in I<E<lt>unistd.hE<gt>> for libc4, libc5, "
3008 "glibc1; glibc2 follows POSIX.1 and has the prototype in "
3009 "I<E<lt>stdlib.hE<gt>>."
3013 #: build/C/man3/mkstemp.3:217
3014 msgid "B<mkdtemp>(3), B<mktemp>(3), B<tempnam>(3), B<tmpfile>(3), B<tmpnam>(3)"
3018 #: build/C/man3/mktemp.3:32
3024 #: build/C/man3/mktemp.3:35
3025 msgid "mktemp - make a unique temporary filename"
3029 #: build/C/man3/mktemp.3:40
3031 msgid "B<char *mktemp(char *>I<template>B<);>\n"
3035 #: build/C/man3/mktemp.3:48
3036 msgid "B<mktemp>():"
3040 #: build/C/man3/mktemp.3:57
3043 "_BSD_SOURCE || _SVID_SOURCE ||\n"
3044 " (_XOPEN_SOURCE\\ E<gt>=\\ 500 ||\n"
3045 " _XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED) &&\n"
3046 " !(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600)\n"
3050 #: build/C/man3/mktemp.3:75
3052 "The B<mktemp>() function generates a unique temporary filename from "
3053 "I<template>. The last six characters of I<template> must be XXXXXX and "
3054 "these are replaced with a string that makes the filename unique. Since it "
3055 "will be modified, I<template> must not be a string constant, but should be "
3056 "declared as a character array."
3060 #: build/C/man3/mktemp.3:84
3062 "The B<mktemp>() function always returns I<template>. If a unique name was "
3063 "created, the last six bytes of I<template> will have been modified in such a "
3064 "way that the resulting name is unique (i.e., does not exist already) If a "
3065 "unique name could not be created, I<template> is made an empty string."
3069 #: build/C/man3/mktemp.3:88
3070 msgid "The last six characters of I<template> were not XXXXXX."
3074 #: build/C/man3/mktemp.3:92
3076 "4.3BSD, POSIX.1-2001. POSIX.1-2008 removes the specification of "
3081 #: build/C/man3/mktemp.3:98
3083 "The prototype is in I<E<lt>unistd.hE<gt>> for libc4, libc5, glibc1; glibc2 "
3084 "follows the Single UNIX Specification and has the prototype in "
3085 "I<E<lt>stdlib.hE<gt>>."
3089 #: build/C/man3/mktemp.3:98 build/C/man3/rpmatch.3:90 build/C/man3/setenv.3:121
3095 #: build/C/man3/mktemp.3:111
3097 "Never use B<mktemp>(). Some implementations follow 4.3BSD and replace "
3098 "XXXXXX by the current process ID and a single letter, so that at most 26 "
3099 "different names can be returned. Since on the one hand the names are easy "
3100 "to guess, and on the other hand there is a race between testing whether the "
3101 "name exists and opening the file, every use of B<mktemp>() is a security "
3102 "risk. The race is avoided by B<mkstemp>(3)."
3106 #: build/C/man3/mktemp.3:116
3107 msgid "B<mkstemp>(3), B<tempnam>(3), B<tmpfile>(3), B<tmpnam>(3)"
3111 #: build/C/man3/on_exit.3:29
3117 #: build/C/man3/on_exit.3:32
3118 msgid "on_exit - register a function to be called at normal process termination"
3122 #: build/C/man3/on_exit.3:37
3124 msgid "B<int on_exit(void (*>I<function>B<)(int , void *), void *>I<arg>B<);>\n"
3128 #: build/C/man3/on_exit.3:46
3129 msgid "B<on_exit>(): _BSD_SOURCE || _SVID_SOURCE"
3133 #: build/C/man3/on_exit.3:57
3135 "The B<on_exit>() function registers the given I<function> to be called at "
3136 "normal process termination, whether via B<exit>(3) or via return from the "
3137 "program's I<main>(). The I<function> is passed the status argument given to "
3138 "the last call to B<exit>(3) and the I<arg> argument from B<on_exit>()."
3142 #: build/C/man3/on_exit.3:72
3144 "The B<on_exit>() function returns the value 0 if successful; otherwise it "
3145 "returns a nonzero value."
3149 #: build/C/man3/on_exit.3:79
3151 "This function comes from SunOS 4, but is also present in libc4, libc5 and "
3152 "glibc. It no longer occurs in Solaris (SunOS 5). Avoid this function, and "
3153 "use the standard B<atexit>(3) instead."
3157 #: build/C/man3/on_exit.3:83
3158 msgid "B<_exit>(2), B<atexit>(3), B<exit>(3)"
3162 #: build/C/man3/putenv.3:34
3168 #: build/C/man3/putenv.3:37
3169 msgid "putenv - change or add an environment variable"
3172 #. Not: const char *
3174 #: build/C/man3/putenv.3:43
3176 msgid "B<int putenv(char *>I<string>B<);>\n"
3180 #: build/C/man3/putenv.3:52
3181 msgid "B<putenv>(): _SVID_SOURCE || _XOPEN_SOURCE"
3185 #: build/C/man3/putenv.3:65
3187 "The B<putenv>() function adds or changes the value of environment "
3188 "variables. The argument I<string> is of the form I<name>=I<value>. If "
3189 "I<name> does not already exist in the environment, then I<string> is added "
3190 "to the environment. If I<name> does exist, then the value of I<name> in the "
3191 "environment is changed to I<value>. The string pointed to by I<string> "
3192 "becomes part of the environment, so altering the string changes the "
3197 #: build/C/man3/putenv.3:70
3199 "The B<putenv>() function returns zero on success, or nonzero if an error "
3204 #: build/C/man3/putenv.3:71 build/C/man3/setenv.3:104
3210 #: build/C/man3/putenv.3:74
3211 msgid "Insufficient space to allocate new environment."
3215 #: build/C/man3/putenv.3:76
3216 msgid "SVr4, POSIX.1-2001, 4.3BSD."
3220 #: build/C/man3/putenv.3:81
3222 "The B<putenv>() function is not required to be reentrant, and the one in "
3223 "libc4, libc5 and glibc 2.0 is not, but the glibc 2.1 version is."
3227 #: build/C/man3/putenv.3:94
3229 "Description for libc4, libc5, glibc: If the argument I<string> is of the "
3230 "form I<name>, and does not contain an \\(aq=\\(aq character, then the "
3231 "variable I<name> is removed from the environment. If B<putenv>() has to "
3232 "allocate a new array I<environ>, and the previous array was also allocated "
3233 "by B<putenv>(), then it will be freed. In no case will the old storage "
3234 "associated to the environment variable itself be freed."
3238 #: build/C/man3/putenv.3:110
3240 "The libc4 and libc5 and glibc 2.1.2 versions conform to SUSv2: the pointer "
3241 "I<string> given to B<putenv>() is used. In particular, this string becomes "
3242 "part of the environment; changing it later will change the environment. "
3243 "(Thus, it is an error is to call B<putenv>() with an automatic variable as "
3244 "the argument, then return from the calling function while I<string> is still "
3245 "part of the environment.) However, glibc 2.0-2.1.1 differs: a copy of the "
3246 "string is used. On the one hand this causes a memory leak, and on the other "
3247 "hand it violates SUSv2. This has been fixed in glibc 2.1.2."
3251 #: build/C/man3/putenv.3:112
3252 msgid "The 4.4BSD version, like glibc 2.0, uses a copy."
3256 #: build/C/man3/putenv.3:114
3257 msgid "SUSv2 removes the I<const> from the prototype, and so does glibc 2.1.3."
3261 #: build/C/man3/putenv.3:120
3262 msgid "B<clearenv>(3), B<getenv>(3), B<setenv>(3), B<unsetenv>(3), B<environ>(7)"
3266 #: build/C/man3/qecvt.3:26
3272 #: build/C/man3/qecvt.3:29
3273 msgid "qecvt, qfcvt, qgcvt - convert a floating-point number to a string"
3277 #: build/C/man3/qecvt.3:34
3279 "B<char *qecvt(long double >I<number>B<, int >I<ndigits>B<, int "
3280 "*>I<decpt>B<,> B<int *>I<sign>B<);>"
3284 #: build/C/man3/qecvt.3:37
3286 "B<char *qfcvt(long double >I<number>B<, int >I<ndigits>B<, int "
3287 "*>I<decpt>B<,> B<int *>I<sign>B<);>"
3291 #: build/C/man3/qecvt.3:39
3292 msgid "B<char *qgcvt(long double >I<number>B<, int >I<ndigit>B<, char *>I<buf>B<);>"
3296 #: build/C/man3/qecvt.3:50
3297 msgid "B<qecvt>(), B<qfcvt>(), B<qgcvt>(): _SVID_SOURCE"
3301 #: build/C/man3/qecvt.3:70
3303 "The functions B<qecvt>(), B<qfcvt>() and B<qgcvt>() are identical to "
3304 "B<ecvt>(3), B<fcvt>(3) and B<gcvt>(3) respectively, except that they use a "
3305 "I<long double> argument I<number>. See B<ecvt>(3) and B<gcvt>(3)."
3309 #: build/C/man3/qecvt.3:76
3311 "SVr4. Not seen in most common UNIX implementations, but occurs in SunOS. "
3312 "Not supported by libc4 and libc5. Supported by glibc."
3316 #: build/C/man3/qecvt.3:86
3317 msgid "B<ecvt>(3), B<ecvt_r>(3), B<gcvt>(3), B<sprintf>(3)"
3321 #: build/C/man3/rand.3:39
3327 #: build/C/man3/rand.3:39
3333 #: build/C/man3/rand.3:42
3334 msgid "rand, rand_r, srand - pseudo-random number generator"
3338 #: build/C/man3/rand.3:47
3340 msgid "B<int rand(void);>\n"
3344 #: build/C/man3/rand.3:49
3346 msgid "B<int rand_r(unsigned int *>I<seedp>B<);>\n"
3350 #: build/C/man3/rand.3:51
3352 msgid "B<void srand(unsigned int >I<seed>B<);>\n"
3356 #: build/C/man3/rand.3:60
3357 msgid "B<rand_r>(): _POSIX_C_SOURCE\\ E<gt>=\\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE"
3361 #: build/C/man3/rand.3:66
3363 "The B<rand>() function returns a pseudo-random integer in the range 0 to "
3364 "B<RAND_MAX> inclusive (i.e., the mathematical range [0,\\ B<RAND_MAX>])."
3368 #: build/C/man3/rand.3:75
3370 "The B<srand>() function sets its argument as the seed for a new sequence of "
3371 "pseudo-random integers to be returned by B<rand>(). These sequences are "
3372 "repeatable by calling B<srand>() with the same seed value."
3376 #: build/C/man3/rand.3:79
3378 "If no seed value is provided, the B<rand>() function is automatically "
3379 "seeded with a value of 1."
3383 #: build/C/man3/rand.3:90
3385 "The function B<rand>() is not reentrant or thread-safe, since it uses "
3386 "hidden state that is modified on each call. This might just be the seed "
3387 "value to be used by the next call, or it might be something more elaborate. "
3388 "In order to get reproducible behavior in a threaded application, this state "
3389 "must be made explicit; this can be done using the reentrant function "
3394 #: build/C/man3/rand.3:106
3396 "Like B<rand>(), B<rand_r>() returns a pseudo-random integer in the range "
3397 "[0,\\ B<RAND_MAX>]. The I<seedp> argument is a pointer to an I<unsigned "
3398 "int> that is used to store state between calls. If B<rand_r>() is called "
3399 "with the same initial value for the integer pointed to by I<seedp>, and that "
3400 "value is not modified between calls, then the same pseudo-random sequence "
3405 #: build/C/man3/rand.3:116
3407 "The value pointed to by the I<seedp> argument of B<rand_r>() provides only "
3408 "a very small amount of state, so this function will be a weak pseudo-random "
3409 "generator. Try B<drand48_r>(3) instead."
3413 #: build/C/man3/rand.3:127
3415 "The B<rand>() and B<rand_r>() functions return a value between 0 and "
3416 "B<RAND_MAX> (inclusive). The B<srand>() function returns no value."
3420 #: build/C/man3/rand.3:139
3422 "The functions B<rand>() and B<srand>() conform to SVr4, 4.3BSD, C89, C99, "
3423 "POSIX.1-2001. The function B<rand_r>() is from POSIX.1-2001. POSIX.1-2008 "
3424 "marks B<rand_r>() as obsolete."
3428 #: build/C/man3/rand.3:158
3430 "The versions of B<rand>() and B<srand>() in the Linux C Library use the "
3431 "same random number generator as B<random>(3) and B<srandom>(3), so the "
3432 "lower-order bits should be as random as the higher-order bits. However, on "
3433 "older B<rand>() implementations, and on current implementations on "
3434 "different systems, the lower-order bits are much less random than the "
3435 "higher-order bits. Do not use this function in applications intended to be "
3436 "portable when good randomness is needed. (Use B<random>(3) instead.)"
3440 #: build/C/man3/rand.3:164
3442 "POSIX.1-2001 gives the following example of an implementation of B<rand>() "
3443 "and B<srand>(), possibly useful when one needs the same sequence on two "
3444 "different machines."
3448 #: build/C/man3/rand.3:168
3450 msgid "static unsigned long next = 1;\n"
3454 #: build/C/man3/rand.3:174
3457 "/* RAND_MAX assumed to be 32767 */\n"
3458 "int myrand(void) {\n"
3459 " next = next * 1103515245 + 12345;\n"
3460 " return((unsigned)(next/65536) % 32768);\n"
3465 #: build/C/man3/rand.3:178
3468 "void mysrand(unsigned seed) {\n"
3474 #: build/C/man3/rand.3:185
3476 "The following program can be used to display the pseudo-random sequence "
3477 "produced by B<rand>() when given a particular seed."
3481 #: build/C/man3/rand.3:190
3484 "#include E<lt>stdlib.hE<gt>\n"
3485 "#include E<lt>stdio.hE<gt>\n"
3489 #: build/C/man3/rand.3:196
3493 "main(int argc, char *argv[])\n"
3495 " int j, r, nloops;\n"
3496 " unsigned int seed;\n"
3500 #: build/C/man3/rand.3:201
3503 " if (argc != 3) {\n"
3504 " fprintf(stderr, \"Usage: %s E<lt>seedE<gt> E<lt>nloopsE<gt>\\en\", "
3506 " exit(EXIT_FAILURE);\n"
3511 #: build/C/man3/rand.3:204
3514 " seed = atoi(argv[1]);\n"
3515 " nloops = atoi(argv[2]);\n"
3519 #: build/C/man3/rand.3:210
3523 " for (j = 0; j E<lt> nloops; j++) {\n"
3525 " printf(\"%d\\en\", r);\n"
3530 #: build/C/man3/rand.3:218
3531 msgid "B<drand48>(3), B<random>(3)"
3535 #: build/C/man3/random.3:31
3541 #: build/C/man3/random.3:34
3542 msgid "random, srandom, initstate, setstate - random number generator"
3546 #: build/C/man3/random.3:39
3548 msgid "B<long int random(void);>\n"
3552 #: build/C/man3/random.3:41
3554 msgid "B<void srandom(unsigned int >I<seed>B<);>\n"
3558 #: build/C/man3/random.3:43
3561 "B<char *initstate(unsigned int >I<seed>B<, char *>I<state>B<, size_t "
3566 #: build/C/man3/random.3:45
3568 msgid "B<char *setstate(char *>I<state>B<);>\n"
3572 #: build/C/man3/random.3:57
3573 msgid "B<random>(), B<srandom>(), B<initstate>(), B<setstate>():"
3577 #: build/C/man3/random.3:60
3579 "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
3580 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
3584 #: build/C/man3/random.3:71
3586 "The B<random>() function uses a nonlinear additive feedback random number "
3587 "generator employing a default table of size 31 long integers to return "
3588 "successive pseudo-random numbers in the range from 0 to B<RAND_MAX>. The "
3589 "period of this random number generator is very large, approximately I<16\\ "
3590 "*\\ ((2^31)\\ -\\ 1)>."
3594 #: build/C/man3/random.3:85
3596 "The B<srandom>() function sets its argument as the seed for a new sequence "
3597 "of pseudo-random integers to be returned by B<random>(). These sequences "
3598 "are repeatable by calling B<srandom>() with the same seed value. If no "
3599 "seed value is provided, the B<random>() function is automatically seeded "
3600 "with a value of 1."
3604 #: build/C/man3/random.3:100
3606 "The B<initstate>() function allows a state array I<state> to be initialized "
3607 "for use by B<random>(). The size of the state array I<n> is used by "
3608 "B<initstate>() to decide how sophisticated a random number generator it "
3609 "should use\\(emthe larger the state array, the better the random numbers "
3610 "will be. I<seed> is the seed for the initialization, which specifies a "
3611 "starting point for the random number sequence, and provides for restarting "
3612 "at the same point."
3616 #: build/C/man3/random.3:116
3618 "The B<setstate>() function changes the state array used by the B<random>() "
3619 "function. The state array I<state> is used for random number generation "
3620 "until the next call to B<initstate>() or B<setstate>(). I<state> must "
3621 "first have been initialized using B<initstate>() or be the result of a "
3622 "previous call of B<setstate>()."
3626 #: build/C/man3/random.3:130
3628 "The B<random>() function returns a value between 0 and B<RAND_MAX>. The "
3629 "B<srandom>() function returns no value. The B<initstate>() function "
3630 "returns a pointer to the previous state array. The B<setstate>() function "
3631 "returns a pointer to the previous state array, or NULL on error."
3635 #: build/C/man3/random.3:135
3636 msgid "A state array of less than 8 bytes was specified to B<initstate>()."
3640 #: build/C/man3/random.3:137 build/C/man3/setenv.3:109
3641 msgid "4.3BSD, POSIX.1-2001."
3645 #: build/C/man3/random.3:143
3647 "Current \"optimal\" values for the size of the state array I<n> are 8, 32, "
3648 "64, 128, and 256 bytes; other amounts will be rounded down to the nearest "
3649 "known amount. Using less than 8 bytes will cause an error."
3653 #: build/C/man3/random.3:150
3655 "This function should not be used in cases where multiple threads use "
3656 "B<random>() and the behavior should be reproducible. Use B<random_r>(3) "
3661 #: build/C/man3/random.3:157
3663 "Random-number generation is a complex topic. I<Numerical Recipes in C: The "
3664 "Art of Scientific Computing> (William H. Press, Brian P. Flannery, Saul "
3665 "A. Teukolsky, William T. Vetterling; New York: Cambridge University Press, "
3666 "2007, 3rd ed.) provides an excellent discussion of practical random-number "
3667 "generation issues in Chapter 7 (Random Numbers)."
3671 #: build/C/man3/random.3:163
3673 "For a more theoretical discussion which also covers many practical issues in "
3674 "depth, see Chapter 3 (Random Numbers) in Donald E. Knuth's I<The Art of "
3675 "Computer Programming>, volume 2 (Seminumerical Algorithms), 2nd ed.; "
3676 "Reading, Massachusetts: Addison-Wesley Publishing Company, 1981."
3680 #: build/C/man3/random.3:168
3681 msgid "B<drand48>(3), B<rand>(3), B<random_r>(3), B<srand>(3)"
3685 #: build/C/man3/random_r.3:24
3691 #: build/C/man3/random_r.3:24
3697 #: build/C/man3/random_r.3:28
3699 "random_r, srandom_r, initstate_r, setstate_r - reentrant random number "
3704 #: build/C/man3/random_r.3:33
3706 msgid "B<int random_r(struct random_data *>I<buf>B<, int32_t *>I<result>B<);>\n"
3710 #: build/C/man3/random_r.3:35
3712 msgid "B<int srandom_r(unsigned int >I<seed>B<, struct random_data *>I<buf>B<);>\n"
3716 #: build/C/man3/random_r.3:38
3719 "B<int initstate_r(unsigned int >I<seed>B<, char *>I<statebuf>B<,>\n"
3720 "B< size_t >I<statelen>B<, struct random_data *>I<buf>B<);>\n"
3724 #: build/C/man3/random_r.3:40
3726 msgid "B<int setstate_r(char *>I<statebuf>B<, struct random_data *>I<buf>B<);>\n"
3730 #: build/C/man3/random_r.3:52
3731 msgid "B<random_r>(), B<srandom_r>(), B<initstate_r>(), B<setstate_r>():"
3735 #: build/C/man3/random_r.3:54
3736 msgid "_SVID_SOURCE || _BSD_SOURCE"
3740 #: build/C/man3/random_r.3:62
3742 "These functions are the reentrant equivalents of the functions described in "
3743 "B<random>(3). They are suitable for use in multithreaded programs where "
3744 "each thread needs to obtain an independent, reproducible sequence of random "
3749 #: build/C/man3/random_r.3:73
3751 "The B<random_r>() function is like B<random>(3), except that instead of "
3752 "using state information maintained in a global variable, it uses the state "
3753 "information in the argument pointed to by I<buf>. The generated random "
3754 "number is returned in the argument I<result>."
3758 #: build/C/man3/random_r.3:82
3760 "The B<srandom_r>() function is like B<srandom>(3), except that it "
3761 "initializes the seed for the random number generator whose state is "
3762 "maintained in the object pointed to by I<buf>, instead of the seed "
3763 "associated with the global state variable."
3767 #: build/C/man3/random_r.3:90
3769 "The B<initstate_r>() function is like B<initstate>(3) except that it "
3770 "initializes the state in the object pointed to by I<buf>, rather than "
3771 "initializing the global state variable."
3775 #: build/C/man3/random_r.3:98
3777 "The B<setstate_r>() function is like B<setstate>(3) except that it "
3778 "modifies the state in the object pointer to by I<buf>, rather than modifying "
3779 "the global state variable."
3783 #: build/C/man3/random_r.3:100
3784 msgid "All of these functions return 0 on success, or -1 on error."
3788 #: build/C/man3/random_r.3:105
3789 msgid "A state array of less than 8 bytes was specified to B<initstate_r>()."
3793 #: build/C/man3/random_r.3:114
3794 msgid "The I<statebuf> or I<buf> argument to B<setstate_r>() was NULL."
3798 #: build/C/man3/random_r.3:123
3799 msgid "The I<buf> or I<result> argument to B<random_r>() was NULL."
3802 #. These functions appear to be on Tru64, but don't seem to be on
3803 #. Solaris, HP-UX, or FreeBSD.
3805 #: build/C/man3/random_r.3:127
3806 msgid "These functions are nonstandard glibc extensions."
3810 #: build/C/man3/rpmatch.3:27
3816 #: build/C/man3/rpmatch.3:30
3817 msgid "rpmatch - determine if the answer to a question is affirmative or negative"
3821 #: build/C/man3/rpmatch.3:35
3823 msgid "B<int rpmatch(const char *>I<response>B<);>\n"
3827 #: build/C/man3/rpmatch.3:44
3828 msgid "B<rpmatch>(): _SVID_SOURCE"
3832 #: build/C/man3/rpmatch.3:48
3834 "B<rpmatch>() handles a user response to yes or no questions, with support "
3835 "for internationalization."
3839 #: build/C/man3/rpmatch.3:54
3841 "I<response> should be a null-terminated string containing a user-supplied "
3842 "response, perhaps obtained with B<fgets>(3) or B<getline>(3)."
3846 #: build/C/man3/rpmatch.3:60
3848 "The user's language preference is taken into account per the environment "
3849 "variables B<LANG>, B<LC_MESSAGES>, and B<LC_ALL>, if the program has called "
3850 "B<setlocale>(3) to effect their changes."
3854 #: build/C/man3/rpmatch.3:64
3856 "Regardless of the locale, responses matching B<^[Yy]> are always accepted as "
3857 "affirmative, and those matching B<^[Nn]> are always accepted as negative."
3861 #: build/C/man3/rpmatch.3:71
3863 "After examining I<response>, B<rpmatch>() returns 0 for a recognized "
3864 "negative response (\"no\"), 1 for a recognized positive response (\"yes\"), "
3865 "and -1 when the value of I<response> is unrecognized."
3869 #: build/C/man3/rpmatch.3:75
3871 "A return value of -1 may indicate either an invalid input, or some other "
3872 "error. It is incorrect to only test if the return value is nonzero."
3876 #: build/C/man3/rpmatch.3:85
3878 "B<rpmatch>() can fail for any of the reasons that B<regcomp>(3) or "
3879 "B<regexec>(3) can fail; the cause of the error is not available from "
3880 "I<errno> or anywhere else, but indicates a failure of the regex engine (but "
3881 "this case is indistinguishable from that of an unrecognized value of "
3885 #. It is available on at least AIX 5.1 and FreeBSD 6.0.
3887 #: build/C/man3/rpmatch.3:90
3889 "B<rpmatch>() is not required by any standard, but is available on a few "
3894 #: build/C/man3/rpmatch.3:102
3896 "The B<rpmatch>() implementation looks at only the first character of "
3897 "I<response>. As a consequence, \"nyes\" returns 0, and \"ynever; not in a "
3898 "million years\" returns 1. It would be preferable to accept input strings "
3899 "much more strictly, for example (using the extended regular expression "
3900 "notation described in B<regex>(7)): B<^([yY]|yes|YES)$> and "
3901 "B<^([nN]|no|NO)$>."
3905 #: build/C/man3/rpmatch.3:106
3907 "The following program displays the results when B<rpmatch>() is applied to "
3908 "the string given in the program's command-line argument."
3912 #: build/C/man3/rpmatch.3:113
3915 "#define _SVID_SOURCE\n"
3916 "#include E<lt>locale.hE<gt>\n"
3917 "#include E<lt>stdlib.hE<gt>\n"
3918 "#include E<lt>string.hE<gt>\n"
3919 "#include E<lt>stdio.hE<gt>\n"
3923 #: build/C/man3/rpmatch.3:121
3927 "main(int argc, char *argv[])\n"
3929 " if (argc != 2 || strcmp(argv[1], \"--help\") == 0) {\n"
3930 " fprintf(stderr, \"%s response\\en\", argv[0]);\n"
3931 " exit(EXIT_FAILURE);\n"
3936 #: build/C/man3/rpmatch.3:126
3939 " setlocale(LC_ALL, \"\");\n"
3940 " printf(\"rpmatch() returns: %d\\en\", rpmatch(argv[1]));\n"
3941 " exit(EXIT_SUCCESS);\n"
3946 #: build/C/man3/rpmatch.3:133
3948 "B<fgets>(3), B<getline>(3), B<nl_langinfo>(3), B<regcomp>(3), "
3953 #: build/C/man3/setenv.3:35
3959 #: build/C/man3/setenv.3:38
3960 msgid "setenv - change or add an environment variable"
3964 #: build/C/man3/setenv.3:43
3967 "B<int setenv(const char *>I<name>B<, const char *>I<value>B<, int "
3968 ">I<overwrite>B<);>\n"
3972 #: build/C/man3/setenv.3:45
3974 msgid "B<int unsetenv(const char *>I<name>B<);>\n"
3978 #: build/C/man3/setenv.3:55
3979 msgid "B<setenv>(), B<unsetenv>():"
3983 #: build/C/man3/setenv.3:57
3985 "_BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ "
3990 #: build/C/man3/setenv.3:75
3992 "The B<setenv>() function adds the variable I<name> to the environment with "
3993 "the value I<value>, if I<name> does not already exist. If I<name> does "
3994 "exist in the environment, then its value is changed to I<value> if "
3995 "I<overwrite> is nonzero; if I<overwrite> is zero, then the value of I<name> "
3996 "is not changed. This function makes copies of the strings pointed to by "
3997 "I<name> and I<value> (by contrast with B<putenv>(3))."
4001 #: build/C/man3/setenv.3:84
4003 "The B<unsetenv>() function deletes the variable I<name> from the "
4004 "environment. If I<name> does not exist in the environment, then the "
4005 "function succeeds, and the environment is unchanged."
4009 #: build/C/man3/setenv.3:91
4011 "The B<setenv>() function returns zero on success, or -1 on error, with "
4012 "I<errno> set to indicate the cause of the error."
4016 #: build/C/man3/setenv.3:98
4018 "The B<unsetenv>() function returns zero on success, or -1 on error, with "
4019 "I<errno> set to indicate the cause of the error."
4023 #: build/C/man3/setenv.3:104
4025 "I<name> is NULL, points to a string of length 0, or contains an \\(aq=\\(aq "
4030 #: build/C/man3/setenv.3:107
4031 msgid "Insufficient memory to add a new variable to the environment."
4035 #: build/C/man3/setenv.3:115
4037 "POSIX.1-2001 does not require B<setenv>() or B<unsetenv>() to be "
4042 #: build/C/man3/setenv.3:121
4044 "Prior to glibc 2.2.2, B<unsetenv>() was prototyped as returning I<void>; "
4045 "more recent glibc versions follow the POSIX.1-2001-compliant prototype shown "
4050 #: build/C/man3/setenv.3:130
4052 "POSIX.1-2001 specifies that if I<name> contains an \\(aq=\\(aq character, "
4053 "then B<setenv>() should fail with the error B<EINVAL>; however, versions of "
4054 "glibc before 2.3.4 allowed an \\(aq=\\(aq sign in I<name>."
4058 #: build/C/man3/setenv.3:135
4059 msgid "B<clearenv>(3), B<getenv>(3), B<putenv>(3), B<environ>(7)"
4063 #: build/C/man3/strtod.3:43
4069 #: build/C/man3/strtod.3:46
4070 msgid "strtod, strtof, strtold - convert ASCII string to floating-point number"
4074 #: build/C/man3/strtod.3:50
4075 msgid "B<double strtod(const char *>I<nptr>B<, char **>I<endptr>B<);>"
4079 #: build/C/man3/strtod.3:52
4080 msgid "B<float strtof(const char *>I<nptr>B<, char **>I<endptr>B<);>"
4084 #: build/C/man3/strtod.3:54
4085 msgid "B<long double strtold(const char *>I<nptr>B<, char **>I<endptr>B<);>"
4089 #: build/C/man3/strtod.3:63
4090 msgid "B<strtof>(), B<strtold>():"
4094 #: build/C/man3/strtod.3:85
4096 "The B<strtod>(), B<strtof>(), and B<strtold>() functions convert the "
4097 "initial portion of the string pointed to by I<nptr> to I<double>, I<float>, "
4098 "and I<long double> representation, respectively."
4102 #: build/C/man3/strtod.3:92
4104 "The expected form of the (initial portion of the) string is optional leading "
4105 "white space as recognized by B<isspace>(3), an optional plus (\\(aq+\\(aq) "
4106 "or minus sign (\\(aq-\\(aq) and then either (i) a decimal number, or (ii) a "
4107 "hexadecimal number, or (iii) an infinity, or (iv) a NAN (not-a-number)."
4111 #: build/C/man3/strtod.3:101
4113 "A I<decimal number> consists of a nonempty sequence of decimal digits "
4114 "possibly containing a radix character (decimal point, locale-dependent, "
4115 "usually \\(aq.\\(aq), optionally followed by a decimal exponent. A decimal "
4116 "exponent consists of an \\(aqE\\(aq or \\(aqe\\(aq, followed by an optional "
4117 "plus or minus sign, followed by a nonempty sequence of decimal digits, and "
4118 "indicates multiplication by a power of 10."
4122 #: build/C/man3/strtod.3:112
4124 "A I<hexadecimal number> consists of a \"0x\" or \"0X\" followed by a "
4125 "nonempty sequence of hexadecimal digits possibly containing a radix "
4126 "character, optionally followed by a binary exponent. A binary exponent "
4127 "consists of a \\(aqP\\(aq or \\(aqp\\(aq, followed by an optional plus or "
4128 "minus sign, followed by a nonempty sequence of decimal digits, and indicates "
4129 "multiplication by a power of 2. At least one of radix character and binary "
4130 "exponent must be present."
4134 #: build/C/man3/strtod.3:116
4135 msgid "An I<infinity> is either \"INF\" or \"INFINITY\", disregarding case."
4138 #. From glibc 2.8's stdlib/strtod_l.c:
4139 #. We expect it to be a number which is put in the
4140 #. mantissa of the number.
4142 #: build/C/man3/strtod.3:126
4144 "A I<NAN> is \"NAN\" (disregarding case) optionally followed by \\(aq(\\(aq, "
4145 "a sequence of characters, followed by \\(aq)\\(aq. The character string "
4146 "specifies in an implementation-dependent way the type of NAN."
4150 #: build/C/man3/strtod.3:128
4151 msgid "These functions return the converted value, if any."
4155 #: build/C/man3/strtod.3:135
4157 "If I<endptr> is not NULL, a pointer to the character after the last "
4158 "character used in the conversion is stored in the location referenced by "
4163 #: build/C/man3/strtod.3:140
4165 "If no conversion is performed, zero is returned and the value of I<nptr> is "
4166 "stored in the location referenced by I<endptr>."
4170 #: build/C/man3/strtod.3:154
4172 "If the correct value would cause overflow, plus or minus B<HUGE_VAL> "
4173 "(B<HUGE_VALF>, B<HUGE_VALL>) is returned (according to the sign of the "
4174 "value), and B<ERANGE> is stored in I<errno>. If the correct value would "
4175 "cause underflow, zero is returned and B<ERANGE> is stored in I<errno>."
4179 #: build/C/man3/strtod.3:155 build/C/man3/strtol.3:131 build/C/man3/strtoul.3:134
4185 #: build/C/man3/strtod.3:158
4186 msgid "Overflow or underflow occurred."
4190 #: build/C/man3/strtod.3:163
4191 msgid "C89 describes B<strtod>(), C99 describes the other two functions."
4195 #: build/C/man3/strtod.3:172
4197 "Since 0 can legitimately be returned on both success and failure, the "
4198 "calling program should set I<errno> to 0 before the call, and then determine "
4199 "if an error occurred by checking whether I<errno> has a nonzero value after "
4204 #: build/C/man3/strtod.3:177 build/C/man3/strtoul.3:188
4206 "See the example on the B<strtol>(3) manual page; the use of the functions "
4207 "described in this manual page is similar."
4211 #: build/C/man3/strtod.3:183
4212 msgid "B<atof>(3), B<atoi>(3), B<atol>(3), B<strtol>(3), B<strtoul>(3)"
4216 #: build/C/man3/strtoimax.3:23
4222 #: build/C/man3/strtoimax.3:23
4228 #: build/C/man3/strtoimax.3:26
4229 msgid "strtoimax, strtoumax - convert string to integer"
4233 #: build/C/man3/strtoimax.3:29
4235 msgid "B<#include E<lt>inttypes.hE<gt>>\n"
4239 #: build/C/man3/strtoimax.3:31
4242 "B<intmax_t strtoimax(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4247 #: build/C/man3/strtoimax.3:33
4250 "B<uintmax_t strtoumax(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4255 #: build/C/man3/strtoimax.3:44
4257 "These functions are just like B<strtol>(3) and B<strtoul>(3), except that "
4258 "they return a value of type I<intmax_t> and I<uintmax_t>, respectively."
4262 #: build/C/man3/strtoimax.3:57
4264 "On success, the converted value is returned. If nothing was found to "
4265 "convert, zero is returned. On overflow or underflow B<INTMAX_MAX> or "
4266 "B<INTMAX_MIN> or B<UINTMAX_MAX> is returned, and I<errno> is set to "
4271 #: build/C/man3/strtoimax.3:65
4272 msgid "B<imaxabs>(3), B<imaxdiv>(3), B<strtol>(3), B<strtoul>(3), B<wcstoimax>(3)"
4276 #: build/C/man3/strtol.3:29
4282 #: build/C/man3/strtol.3:32
4283 msgid "strtol, strtoll, strtoq - convert a string to a long integer"
4287 #: build/C/man3/strtol.3:37
4290 "B<long int strtol(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4295 #: build/C/man3/strtol.3:40
4298 "B<long long int strtoll(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4303 #: build/C/man3/strtol.3:49
4304 msgid "B<strtoll>():"
4308 #: build/C/man3/strtol.3:52 build/C/man3/strtoul.3:55
4310 "XOPEN_SOURCE\\ E<gt>=\\ 600 || _BSD_SOURCE || _SVID_SOURCE || _ISOC99_SOURCE "
4311 "|| _POSIX_C_SOURCE\\ E<gt>=\\ 200112L;"
4315 #: build/C/man3/strtol.3:63
4317 "The B<strtol>() function converts the initial part of the string in I<nptr> "
4318 "to a long integer value according to the given I<base>, which must be "
4319 "between 2 and 36 inclusive, or be the special value 0."
4323 #: build/C/man3/strtol.3:72 build/C/man3/strtoul.3:79
4325 "The string may begin with an arbitrary amount of white space (as determined "
4326 "by B<isspace>(3)) followed by a single optional \\(aq+\\(aq or \\(aq-\\(aq "
4327 "sign. If I<base> is zero or 16, the string may then include a \"0x\" "
4328 "prefix, and the number will be read in base 16; otherwise, a zero I<base> is "
4329 "taken as 10 (decimal) unless the next character is \\(aq0\\(aq, in which "
4330 "case it is taken as 8 (octal)."
4334 #: build/C/man3/strtol.3:81
4336 "The remainder of the string is converted to a I<long int> value in the "
4337 "obvious manner, stopping at the first character which is not a valid digit "
4338 "in the given base. (In bases above 10, the letter \\(aqA\\(aq in either "
4339 "upper or lower case represents 10, \\(aqB\\(aq represents 11, and so forth, "
4340 "with \\(aqZ\\(aq representing 35.)"
4344 #: build/C/man3/strtol.3:93
4346 "If I<endptr> is not NULL, B<strtol>() stores the address of the first "
4347 "invalid character in I<*endptr>. If there were no digits at all, "
4348 "B<strtol>() stores the original value of I<nptr> in I<*endptr> (and returns "
4349 "0). In particular, if I<*nptr> is not \\(aq\\e0\\(aq but I<**endptr> is "
4350 "\\(aq\\e0\\(aq on return, the entire string is valid."
4354 #: build/C/man3/strtol.3:99
4356 "The B<strtoll>() function works just like the B<strtol>() function but "
4357 "returns a long long integer value."
4361 #: build/C/man3/strtol.3:124
4363 "The B<strtol>() function returns the result of the conversion, unless the "
4364 "value would underflow or overflow. If an underflow occurs, B<strtol>() "
4365 "returns B<LONG_MIN>. If an overflow occurs, B<strtol>() returns "
4366 "B<LONG_MAX>. In both cases, I<errno> is set to B<ERANGE>. Precisely the "
4367 "same holds for B<strtoll>() (with B<LLONG_MIN> and B<LLONG_MAX> instead of "
4368 "B<LONG_MIN> and B<LONG_MAX>)."
4372 #: build/C/man3/strtol.3:131 build/C/man3/strtoul.3:134
4373 msgid "(not in C99) The given I<base> contains an unsupported value."
4377 #: build/C/man3/strtol.3:134 build/C/man3/strtoul.3:137
4378 msgid "The resulting value was out of range."
4382 #: build/C/man3/strtol.3:137 build/C/man3/strtoul.3:140
4384 "The implementation may also set I<errno> to B<EINVAL> in case no conversion "
4385 "was performed (no digits seen, and 0 returned)."
4389 #: build/C/man3/strtol.3:142
4391 "B<strtol>() conforms to SVr4, 4.3BSD, C89, C99 and POSIX.1-2001, and "
4392 "B<strtoll>() to C99 and POSIX.1-2001."
4396 #: build/C/man3/strtol.3:160
4398 "Since B<strtol>() can legitimately return 0, B<LONG_MAX>, or B<LONG_MIN> "
4399 "(B<LLONG_MAX> or B<LLONG_MIN> for B<strtoll>()) on both success and "
4400 "failure, the calling program should set I<errno> to 0 before the call, and "
4401 "then determine if an error occurred by checking whether I<errno> has a "
4402 "nonzero value after the call."
4406 #: build/C/man3/strtol.3:164
4408 "In locales other than the \"C\" locale, other strings may also be accepted. "
4409 "(For example, the thousands separator of the current locale may be "
4414 #: build/C/man3/strtol.3:166 build/C/man3/strtoul.3:165
4415 msgid "BSD also has"
4419 #: build/C/man3/strtol.3:170
4422 "B<quad_t strtoq(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4427 #: build/C/man3/strtol.3:179
4429 "with completely analogous definition. Depending on the wordsize of the "
4430 "current architecture, this may be equivalent to B<strtoll>() or to "
4435 #: build/C/man3/strtol.3:193
4437 "The program shown below demonstrates the use of B<strtol>(). The first "
4438 "command-line argument specifies a string from which B<strtol>() should "
4439 "parse a number. The second (optional) argument specifies the base to be "
4440 "used for the conversion. (This argument is converted to numeric form using "
4441 "B<atoi>(3), a function that performs no error checking and has a simpler "
4442 "interface than B<strtol>().) Some examples of the results produced by this "
4443 "program are the following:"
4447 #: build/C/man3/strtol.3:209
4450 "$B< ./a.out 123>\n"
4451 "strtol() returned 123\n"
4452 "$B< ./a.out \\(aq 123\\(aq>\n"
4453 "strtol() returned 123\n"
4454 "$B< ./a.out 123abc>\n"
4455 "strtol() returned 123\n"
4456 "Further characters after number: abc\n"
4457 "$B< ./a.out 123abc 55>\n"
4458 "strtol: Invalid argument\n"
4459 "$B< ./a.out \\(aq\\(aq>\n"
4460 "No digits were found\n"
4461 "$B< ./a.out 4000000000>\n"
4462 "strtol: Numerical result out of range\n"
4466 #: build/C/man3/strtol.3:211
4468 msgid "Program source"
4472 #: build/C/man3/strtol.3:218
4475 "#include E<lt>stdlib.hE<gt>\n"
4476 "#include E<lt>limits.hE<gt>\n"
4477 "#include E<lt>stdio.hE<gt>\n"
4478 "#include E<lt>errno.hE<gt>\n"
4482 #: build/C/man3/strtol.3:225
4486 "main(int argc, char *argv[])\n"
4489 " char *endptr, *str;\n"
4494 #: build/C/man3/strtol.3:230
4497 " if (argc E<lt> 2) {\n"
4498 " fprintf(stderr, \"Usage: %s str [base]\\en\", argv[0]);\n"
4499 " exit(EXIT_FAILURE);\n"
4504 #: build/C/man3/strtol.3:233
4508 " base = (argc E<gt> 2) ? atoi(argv[2]) : 10;\n"
4512 #: build/C/man3/strtol.3:236
4515 " errno = 0; /* To distinguish success/failure after call */\n"
4516 " val = strtol(str, &endptr, base);\n"
4520 #: build/C/man3/strtol.3:238
4522 msgid " /* Check for various possible errors */\n"
4526 #: build/C/man3/strtol.3:244
4529 " if ((errno == ERANGE && (val == LONG_MAX || val == LONG_MIN))\n"
4530 " || (errno != 0 && val == 0)) {\n"
4531 " perror(\"strtol\");\n"
4532 " exit(EXIT_FAILURE);\n"
4537 #: build/C/man3/strtol.3:249
4540 " if (endptr == str) {\n"
4541 " fprintf(stderr, \"No digits were found\\en\");\n"
4542 " exit(EXIT_FAILURE);\n"
4547 #: build/C/man3/strtol.3:251
4549 msgid " /* If we got here, strtol() successfully parsed a number */\n"
4553 #: build/C/man3/strtol.3:253
4555 msgid " printf(\"strtol() returned %ld\\en\", val);\n"
4559 #: build/C/man3/strtol.3:256
4562 " if (*endptr != \\(aq\\e0\\(aq) /* Not necessarily an "
4564 " printf(\"Further characters after number: %s\\en\", endptr);\n"
4568 #: build/C/man3/strtol.3:266
4569 msgid "B<atof>(3), B<atoi>(3), B<atol>(3), B<strtod>(3), B<strtoul>(3)"
4573 #: build/C/man3/strtoul.3:31
4579 #: build/C/man3/strtoul.3:31
4585 #: build/C/man3/strtoul.3:34
4586 msgid "strtoul, strtoull, strtouq - convert a string to an unsigned long integer"
4590 #: build/C/man3/strtoul.3:40
4593 "B<unsigned long int strtoul(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4598 #: build/C/man3/strtoul.3:43
4601 "B<unsigned long long int strtoull(const char *>I<nptr>B<, char "
4602 "**>I<endptr>B<,>\n"
4603 "B< int >I<base>B<);>\n"
4607 #: build/C/man3/strtoul.3:52
4608 msgid "B<strtoull>():"
4612 #: build/C/man3/strtoul.3:69
4614 "The B<strtoul>() function converts the initial part of the string in "
4615 "I<nptr> to an I<unsigned long int> value according to the given I<base>, "
4616 "which must be between 2 and 36 inclusive, or be the special value 0."
4620 #: build/C/man3/strtoul.3:88
4622 "The remainder of the string is converted to an I<unsigned long int> value in "
4623 "the obvious manner, stopping at the first character which is not a valid "
4624 "digit in the given base. (In bases above 10, the letter \\(aqA\\(aq in "
4625 "either upper or lower case represents 10, \\(aqB\\(aq represents 11, and so "
4626 "forth, with \\(aqZ\\(aq representing 35.)"
4630 #: build/C/man3/strtoul.3:100
4632 "If I<endptr> is not NULL, B<strtoul>() stores the address of the first "
4633 "invalid character in I<*endptr>. If there were no digits at all, "
4634 "B<strtoul>() stores the original value of I<nptr> in I<*endptr> (and "
4635 "returns 0). In particular, if I<*nptr> is not \\(aq\\e0\\(aq but "
4636 "I<**endptr> is \\(aq\\e0\\(aq on return, the entire string is valid."
4640 #: build/C/man3/strtoul.3:108
4642 "The B<strtoull>() function works just like the B<strtoul>() function but "
4643 "returns an I<unsigned long long int> value."
4647 #: build/C/man3/strtoul.3:127
4649 "The B<strtoul>() function returns either the result of the conversion or, "
4650 "if there was a leading minus sign, the negation of the result of the "
4651 "conversion represented as an unsigned value, unless the original "
4652 "(nonnegated) value would overflow; in the latter case, B<strtoul>() returns "
4653 "B<ULONG_MAX> and sets I<errno> to B<ERANGE>. Precisely the same holds for "
4654 "B<strtoull>() (with B<ULLONG_MAX> instead of B<ULONG_MAX>)."
4658 #: build/C/man3/strtoul.3:145
4660 "B<strtoul>() conforms to SVr4, C89, C99 and POSIX-2001, and B<strtoull>() "
4661 "to C99 and POSIX.1-2001."
4665 #: build/C/man3/strtoul.3:159
4667 "Since B<strtoul>() can legitimately return 0 or B<ULONG_MAX> (B<ULLONG_MAX> "
4668 "for B<strtoull>()) on both success and failure, the calling program should "
4669 "set I<errno> to 0 before the call, and then determine if an error occurred "
4670 "by checking whether I<errno> has a nonzero value after the call."
4674 #: build/C/man3/strtoul.3:163
4676 "In locales other than the \"C\" locale, other strings may be accepted. (For "
4677 "example, the thousands separator of the current locale may be supported.)"
4681 #: build/C/man3/strtoul.3:169
4684 "B<u_quad_t strtouq(const char *>I<nptr>B<, char **>I<endptr>B<, int "
4689 #: build/C/man3/strtoul.3:178
4691 "with completely analogous definition. Depending on the wordsize of the "
4692 "current architecture, this may be equivalent to B<strtoull>() or to "
4697 #: build/C/man3/strtoul.3:183
4699 "Negative values are considered valid input and are silently converted to the "
4700 "equivalent I<unsigned long int> value."
4704 #: build/C/man3/strtoul.3:194
4705 msgid "B<atof>(3), B<atoi>(3), B<atol>(3), B<strtod>(3), B<strtol>(3)"
4709 #: build/C/man3/system.3:28
4715 #: build/C/man3/system.3:28
4721 #: build/C/man3/system.3:31
4722 msgid "system - execute a shell command"
4726 #: build/C/man3/system.3:36
4728 msgid "B<int system(const char *>I<command>B<);>\n"
4732 #: build/C/man3/system.3:52
4734 "B<system>() executes a command specified in I<command> by calling B</bin/sh "
4735 "-c> I<command>, and returns after the command has been completed. During "
4736 "execution of the command, B<SIGCHLD> will be blocked, and B<SIGINT> and "
4737 "B<SIGQUIT> will be ignored."
4741 #: build/C/man3/system.3:67
4743 "The value returned is -1 on error (e.g. B<fork>(2) failed), and the return "
4744 "status of the command otherwise. This latter return status is in the format "
4745 "specified in B<wait>(2). Thus, the exit code of the command will be "
4746 "I<WEXITSTATUS(status)>. In case I</bin/sh> could not be executed, the exit "
4747 "status will be that of a command that does I<exit(127)>."
4751 #: build/C/man3/system.3:73
4753 "If the value of I<command> is NULL, B<system>() returns nonzero if the "
4754 "shell is available, and zero if not."
4758 #: build/C/man3/system.3:76
4759 msgid "B<system>() does not affect the wait status of any other children."
4763 #: build/C/man3/system.3:78
4764 msgid "C89, C99, POSIX.1-2001."
4768 #: build/C/man3/system.3:91
4770 "If the B<_XOPEN_SOURCE> feature test macro is defined (before including "
4771 "I<any> header files), then the macros described in B<wait>(2) "
4772 "(B<WEXITSTATUS>(), etc.) are made available when including "
4773 "I<E<lt>stdlib.hE<gt>>."
4777 #: build/C/man3/system.3:102
4779 "As mentioned, B<system>() ignores B<SIGINT> and B<SIGQUIT>. This may make "
4780 "programs that call it from a loop uninterruptible, unless they take care "
4781 "themselves to check the exit status of the child. E.g."
4785 #: build/C/man3/system.3:107
4788 " while (something) {\n"
4789 " int ret = system(\"foo\");\n"
4793 #: build/C/man3/system.3:112
4796 " if (WIFSIGNALED(ret) &&\n"
4797 " (WTERMSIG(ret) == SIGINT || WTERMSIG(ret) == SIGQUIT))\n"
4803 #: build/C/man3/system.3:132
4805 "Do not use B<system>() from a program with set-user-ID or set-group-ID "
4806 "privileges, because strange values for some environment variables might be "
4807 "used to subvert system integrity. Use the B<exec>(3) family of functions "
4808 "instead, but not B<execlp>(3) or B<execvp>(3). B<system>() will not, in "
4809 "fact, work properly from programs with set-user-ID or set-group-ID "
4810 "privileges on systems on which I</bin/sh> is bash version 2, since bash 2 "
4811 "drops privileges on startup. (Debian uses a modified bash which does not do "
4812 "this when invoked as B<sh>.)"
4816 #: build/C/man3/system.3:146
4818 "In versions of glibc before 2.1.3, the check for the availability of "
4819 "I</bin/sh> was not actually performed if I<command> was NULL; instead it was "
4820 "always assumed to be available, and B<system>() always returned 1 in this "
4821 "case. Since glibc 2.1.3, this check is performed because, even though "
4822 "POSIX.1-2001 requires a conforming implementation to provide a shell, that "
4823 "shell may not be available or executable if the calling program has "
4824 "previously called B<chroot>(2) (which is not specified by POSIX.1-2001)."
4828 #: build/C/man3/system.3:151
4830 "It is possible for the shell command to return 127, so that code is not a "
4831 "sure indication that the B<execve>(2) call failed."
4835 #: build/C/man3/system.3:156
4836 msgid "B<sh>(1), B<signal>(2), B<wait>(2), B<exec>(3)"
4840 #: build/C/man3/wcstombs.3:14
4846 #: build/C/man3/wcstombs.3:14
4852 #: build/C/man3/wcstombs.3:17
4853 msgid "wcstombs - convert a wide-character string to a multibyte string"
4857 #: build/C/man3/wcstombs.3:22
4860 "B<size_t wcstombs(char *>I<dest>B<, const wchar_t *>I<src>B<, size_t "
4865 #: build/C/man3/wcstombs.3:33
4867 "If I<dest> is not a NULL pointer, the B<wcstombs>() function converts the "
4868 "wide-character string I<src> to a multibyte string starting at I<dest>. At "
4869 "most I<n> bytes are written to I<dest>. The conversion starts in the "
4870 "initial state. The conversion can stop for three reasons:"
4874 #: build/C/man3/wcstombs.3:39
4876 "1. A wide character has been encountered that can not be represented as a "
4877 "multibyte sequence (according to the current locale). In this case "
4878 "I<(size_t)\\ -1> is returned."
4882 #: build/C/man3/wcstombs.3:43
4884 "2. The length limit forces a stop. In this case the number of bytes written "
4885 "to I<dest> is returned, but the shift state at this point is lost."
4889 #: build/C/man3/wcstombs.3:49
4891 "3. The wide-character string has been completely converted, including the "
4892 "terminating null wide character (L\\(aq\\e0\\(aq). In this case the "
4893 "conversion ends in the initial state. The number of bytes written to "
4894 "I<dest>, excluding the terminating null byte (\\(aq\\e0\\(aq), is returned."
4898 #: build/C/man3/wcstombs.3:52
4900 "The programmer must ensure that there is room for at least I<n> bytes at "
4905 #: build/C/man3/wcstombs.3:56
4907 "If I<dest> is NULL, I<n> is ignored, and the conversion proceeds as above, "
4908 "except that the converted bytes are not written out to memory, and that no "
4909 "length limit exists."
4913 #: build/C/man3/wcstombs.3:59
4915 "In order to avoid the case 2 above, the programmer should make sure I<n> is "
4916 "greater or equal to I<wcstombs(NULL,src,0)+1>."
4920 #: build/C/man3/wcstombs.3:68
4922 "The B<wcstombs>() function returns the number of bytes that make up the "
4923 "converted part of multibyte sequence, not including the terminating null "
4924 "byte. If a wide character was encountered which could not be converted, "
4925 "I<(size_t)\\ -1> is returned."
4929 #: build/C/man3/wcstombs.3:77
4931 "The behavior of B<wcstombs>() depends on the B<LC_CTYPE> category of the "
4936 #: build/C/man3/wcstombs.3:82
4938 "The function B<wcsrtombs>(3) provides a thread safe interface to the same "
4943 #: build/C/man3/wcstombs.3:85
4944 msgid "B<mbstowcs>(3), B<wcsrtombs>(3)"
4948 #: build/C/man3/wctomb.3:14
4954 #: build/C/man3/wctomb.3:17
4955 msgid "wctomb - convert a wide character to a multibyte sequence"
4959 #: build/C/man3/wctomb.3:22
4961 msgid "B<int wctomb(char *>I<s>B<, wchar_t >I<wc>B<);>\n"
4965 #: build/C/man3/wctomb.3:36
4967 "If I<s> is not NULL, the B<wctomb>() function converts the wide character "
4968 "I<wc> to its multibyte representation and stores it at the beginning of the "
4969 "character array pointed to by I<s>. It updates the shift state, which is "
4970 "stored in a static anonymous variable only known to the wctomb function, and "
4971 "returns the length of said multibyte representation, that is, the number of "
4972 "bytes written at I<s>."
4976 #: build/C/man3/wctomb.3:40
4978 "The programmer must ensure that there is room for at least B<MB_CUR_MAX> "
4982 #. The Dinkumware doc and the Single UNIX specification say this, but
4983 #. glibc doesn't implement this.
4985 #: build/C/man3/wctomb.3:50
4987 "If I<s> is NULL, the B<wctomb>() function resets the shift state, only "
4988 "known to this function, to the initial state, and returns nonzero if the "
4989 "encoding has nontrivial shift state, or zero if the encoding is stateless."
4993 #: build/C/man3/wctomb.3:59
4995 "If I<s> is not NULL, the B<wctomb>() function returns the number of bytes "
4996 "that have been written to the byte array at I<s>. If I<wc> can not be "
4997 "represented as a multibyte sequence (according to the current locale), -1 is "
5002 #: build/C/man3/wctomb.3:64
5004 "If I<s> is NULL, the B<wctomb>() function returns nonzero if the encoding "
5005 "has nontrivial shift state, or zero if the encoding is stateless."
5009 #: build/C/man3/wctomb.3:73
5011 "The behavior of B<wctomb>() depends on the B<LC_CTYPE> category of the "
5016 #: build/C/man3/wctomb.3:79
5018 "This function is not multithread safe. The function B<wcrtomb>(3) provides "
5019 "a better interface to the same functionality."
5023 #: build/C/man3/wctomb.3:83
5024 msgid "B<MB_CUR_MAX>(3), B<wcrtomb>(3), B<wcstombs>(3)"