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: 2015-02-04 23:33+0900\n"
11 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
12 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13 "Language-Team: LANGUAGE <LL@li.org>\n"
16 "Content-Type: text/plain; charset=UTF-8\n"
17 "Content-Transfer-Encoding: 8bit\n"
20 #: build/C/man3/bcmp.3:31
26 #: build/C/man3/bcmp.3:31
32 #: build/C/man3/bcmp.3:31 build/C/man3/bcopy.3:33 build/C/man3/bzero.3:31
38 #: build/C/man3/bcmp.3:31 build/C/man3/bcopy.3:33 build/C/man3/bstring.3:32 build/C/man3/bzero.3:31 build/C/man3/ffs.3:33 build/C/man3/index.3:31 build/C/man3/memccpy.3:30 build/C/man3/memchr.3:32 build/C/man3/memcmp.3:30 build/C/man3/memcpy.3:30 build/C/man3/memfrob.3:30 build/C/man3/memmem.3:30 build/C/man3/memmove.3:30 build/C/man3/mempcpy.3:10 build/C/man3/memset.3:30 build/C/man3/stpcpy.3:25 build/C/man3/stpncpy.3:14 build/C/man3/strcasecmp.3:30 build/C/man3/strcat.3:32 build/C/man3/strchr.3:33 build/C/man3/strcmp.3:32 build/C/man3/strcoll.3:30 build/C/man3/strcpy.3:35 build/C/man3/strdup.3:31 build/C/man3/strerror.3:39 build/C/man3/strfry.3:30 build/C/man3/string.3:30 build/C/man3/strlen.3:30 build/C/man3/strnlen.3:13 build/C/man3/strpbrk.3:30 build/C/man3/strsep.3:33 build/C/man3/strsignal.3:30 build/C/man3/strspn.3:30 build/C/man3/strstr.3:33 build/C/man3/strtok.3:32 build/C/man3/strverscmp.3:25 build/C/man3/strxfrm.3:30
40 msgid "Linux Programmer's Manual"
44 #: build/C/man3/bcmp.3:32 build/C/man3/bcopy.3:34 build/C/man3/bstring.3:33 build/C/man3/bzero.3:32 build/C/man3/ffs.3:34 build/C/man3/index.3:32 build/C/man3/memccpy.3:31 build/C/man3/memchr.3:33 build/C/man3/memcmp.3:31 build/C/man3/memcpy.3:31 build/C/man3/memfrob.3:31 build/C/man3/memmem.3:31 build/C/man3/memmove.3:31 build/C/man3/mempcpy.3:11 build/C/man3/memset.3:31 build/C/man3/stpcpy.3:26 build/C/man3/stpncpy.3:15 build/C/man3/strcasecmp.3:31 build/C/man3/strcat.3:33 build/C/man3/strchr.3:34 build/C/man3/strcmp.3:33 build/C/man3/strcoll.3:31 build/C/man3/strcpy.3:36 build/C/man3/strdup.3:32 build/C/man3/strerror.3:40 build/C/man3/strfry.3:31 build/C/man3/string.3:31 build/C/man3/strlen.3:31 build/C/man3/strnlen.3:14 build/C/man3/strpbrk.3:31 build/C/man3/strsep.3:34 build/C/man3/strsignal.3:31 build/C/man3/strspn.3:31 build/C/man3/strstr.3:34 build/C/man3/strtok.3:33 build/C/man3/strverscmp.3:26 build/C/man3/strxfrm.3:31
50 #: build/C/man3/bcmp.3:34
51 msgid "bcmp - compare byte sequences"
55 #: build/C/man3/bcmp.3:34 build/C/man3/bcopy.3:36 build/C/man3/bstring.3:36 build/C/man3/bzero.3:34 build/C/man3/ffs.3:36 build/C/man3/index.3:34 build/C/man3/memccpy.3:33 build/C/man3/memchr.3:35 build/C/man3/memcmp.3:33 build/C/man3/memcpy.3:33 build/C/man3/memfrob.3:33 build/C/man3/memmem.3:33 build/C/man3/memmove.3:33 build/C/man3/mempcpy.3:13 build/C/man3/memset.3:33 build/C/man3/stpcpy.3:28 build/C/man3/stpncpy.3:17 build/C/man3/strcasecmp.3:33 build/C/man3/strcat.3:35 build/C/man3/strchr.3:36 build/C/man3/strcmp.3:35 build/C/man3/strcoll.3:33 build/C/man3/strcpy.3:38 build/C/man3/strdup.3:34 build/C/man3/strerror.3:42 build/C/man3/strfry.3:33 build/C/man3/string.3:36 build/C/man3/strlen.3:33 build/C/man3/strnlen.3:16 build/C/man3/strpbrk.3:33 build/C/man3/strsep.3:36 build/C/man3/strsignal.3:33 build/C/man3/strspn.3:33 build/C/man3/strstr.3:36 build/C/man3/strtok.3:35 build/C/man3/strverscmp.3:28 build/C/man3/strxfrm.3:33
61 #: build/C/man3/bcmp.3:37 build/C/man3/bcopy.3:39 build/C/man3/bzero.3:37 build/C/man3/ffs.3:39 build/C/man3/index.3:37 build/C/man3/strcasecmp.3:36
63 msgid "B<#include E<lt>strings.hE<gt>>\n"
67 #: build/C/man3/bcmp.3:39 build/C/man3/bstring.3:41
69 msgid "B<int bcmp(const void *>I<s1>B<, const void *>I<s2>B<, size_t >I<n>B<);>\n"
73 #: build/C/man3/bcmp.3:40 build/C/man3/bcopy.3:42 build/C/man3/bstring.3:63 build/C/man3/bzero.3:40 build/C/man3/ffs.3:74 build/C/man3/index.3:42 build/C/man3/memccpy.3:39 build/C/man3/memchr.3:54 build/C/man3/memcmp.3:39 build/C/man3/memcpy.3:39 build/C/man3/memfrob.3:40 build/C/man3/memmem.3:41 build/C/man3/memmove.3:39 build/C/man3/mempcpy.3:27 build/C/man3/memset.3:39 build/C/man3/stpcpy.3:53 build/C/man3/stpncpy.3:42 build/C/man3/strcasecmp.3:41 build/C/man3/strcat.3:43 build/C/man3/strchr.3:49 build/C/man3/strcmp.3:43 build/C/man3/strcoll.3:39 build/C/man3/strcpy.3:46 build/C/man3/strdup.3:77 build/C/man3/strerror.3:72 build/C/man3/strfry.3:41 build/C/man3/string.3:204 build/C/man3/strlen.3:39 build/C/man3/strnlen.3:41 build/C/man3/strpbrk.3:39 build/C/man3/strsep.3:50 build/C/man3/strsignal.3:60 build/C/man3/strspn.3:41 build/C/man3/strstr.3:48 build/C/man3/strtok.3:54 build/C/man3/strverscmp.3:36 build/C/man3/strxfrm.3:39
79 #: build/C/man3/bcmp.3:56
81 "The B<bcmp>() function compares the two byte sequences I<s1> and I<s2> of "
82 "length I<n> each. If they are equal, and in particular if I<n> is zero, "
83 "B<bcmp>() returns 0. Otherwise, it returns a nonzero result."
87 #: build/C/man3/bcmp.3:56 build/C/man3/bcopy.3:52 build/C/man3/bzero.3:48 build/C/man3/ffs.3:87 build/C/man3/index.3:55 build/C/man3/memccpy.3:55 build/C/man3/memchr.3:105 build/C/man3/memcmp.3:45 build/C/man3/memcpy.3:48 build/C/man3/memfrob.3:53 build/C/man3/memmem.3:54 build/C/man3/memmove.3:57 build/C/man3/mempcpy.3:53 build/C/man3/memset.3:49 build/C/man3/stpcpy.3:63 build/C/man3/stpncpy.3:82 build/C/man3/strcasecmp.3:63 build/C/man3/strcat.3:123 build/C/man3/strchr.3:81 build/C/man3/strcmp.3:66 build/C/man3/strcoll.3:58 build/C/man3/strcpy.3:108 build/C/man3/strdup.3:111 build/C/man3/strerror.3:160 build/C/man3/strfry.3:52 build/C/man3/strlen.3:45 build/C/man3/strnlen.3:58 build/C/man3/strpbrk.3:47 build/C/man3/strsep.3:73 build/C/man3/strsignal.3:77 build/C/man3/strspn.3:57 build/C/man3/strstr.3:62 build/C/man3/strtok.3:162 build/C/man3/strverscmp.3:81 build/C/man3/strxfrm.3:62
93 #: build/C/man3/bcmp.3:61
95 "The B<bcmp>() function returns 0 if the byte sequences are equal, otherwise "
96 "a nonzero result is returned."
100 #: build/C/man3/bcmp.3:61 build/C/man3/bcopy.3:54 build/C/man3/bzero.3:50 build/C/man3/ffs.3:91 build/C/man3/index.3:62 build/C/man3/memccpy.3:70 build/C/man3/memchr.3:124 build/C/man3/memcmp.3:64 build/C/man3/memcpy.3:52 build/C/man3/memfrob.3:58 build/C/man3/memmem.3:59 build/C/man3/memmove.3:62 build/C/man3/mempcpy.3:60 build/C/man3/memset.3:54 build/C/man3/stpcpy.3:71 build/C/man3/stpncpy.3:91 build/C/man3/strcat.3:130 build/C/man3/strchr.3:107 build/C/man3/strcmp.3:79 build/C/man3/strcpy.3:116 build/C/man3/strerror.3:202 build/C/man3/strlen.3:50 build/C/man3/strnlen.3:71 build/C/man3/strpbrk.3:56 build/C/man3/strsep.3:79 build/C/man3/strspn.3:74 build/C/man3/strstr.3:65 build/C/man3/strtok.3:169
106 #: build/C/man3/bcmp.3:62 build/C/man3/bcopy.3:55 build/C/man3/bzero.3:51 build/C/man3/ffs.3:92 build/C/man3/index.3:63 build/C/man3/memccpy.3:71 build/C/man3/memchr.3:125 build/C/man3/memcmp.3:65 build/C/man3/memcpy.3:53 build/C/man3/memfrob.3:59 build/C/man3/memmem.3:60 build/C/man3/memmove.3:63 build/C/man3/mempcpy.3:61 build/C/man3/memset.3:55 build/C/man3/stpcpy.3:72 build/C/man3/stpncpy.3:92 build/C/man3/strcat.3:131 build/C/man3/strchr.3:108 build/C/man3/strcmp.3:80 build/C/man3/strcpy.3:117 build/C/man3/strerror.3:203 build/C/man3/strlen.3:51 build/C/man3/strnlen.3:72 build/C/man3/strpbrk.3:57 build/C/man3/strsep.3:80 build/C/man3/strspn.3:75 build/C/man3/strstr.3:66 build/C/man3/strtok.3:170
108 msgid "Multithreading (see pthreads(7))"
112 #: build/C/man3/bcmp.3:66
113 msgid "The B<bcmp>() function is thread-safe."
117 #: build/C/man3/bcmp.3:66 build/C/man3/bcopy.3:59 build/C/man3/bzero.3:55 build/C/man3/ffs.3:99 build/C/man3/index.3:69 build/C/man3/memccpy.3:75 build/C/man3/memchr.3:132 build/C/man3/memcmp.3:69 build/C/man3/memcpy.3:57 build/C/man3/memfrob.3:63 build/C/man3/memmem.3:64 build/C/man3/memmove.3:67 build/C/man3/mempcpy.3:67 build/C/man3/memset.3:59 build/C/man3/stpcpy.3:76 build/C/man3/stpncpy.3:96 build/C/man3/strcasecmp.3:76 build/C/man3/strcat.3:137 build/C/man3/strchr.3:115 build/C/man3/strcmp.3:86 build/C/man3/strcoll.3:69 build/C/man3/strcpy.3:123 build/C/man3/strdup.3:123 build/C/man3/strerror.3:216 build/C/man3/strfry.3:57 build/C/man3/strlen.3:55 build/C/man3/strnlen.3:76 build/C/man3/strpbrk.3:61 build/C/man3/strsep.3:84 build/C/man3/strsignal.3:84 build/C/man3/strspn.3:81 build/C/man3/strstr.3:77 build/C/man3/strtok.3:178 build/C/man3/strverscmp.3:90 build/C/man3/strxfrm.3:76
119 msgid "CONFORMING TO"
123 #: build/C/man3/bcmp.3:73
125 "4.3BSD. This function is deprecated (marked as LEGACY in POSIX.1-2001): use "
126 "B<memcmp>(3) in new programs. POSIX.1-2008 removes the specification of "
131 #: build/C/man3/bcmp.3:73 build/C/man3/bcopy.3:73 build/C/man3/bstring.3:82 build/C/man3/bzero.3:62 build/C/man3/ffs.3:111 build/C/man3/index.3:80 build/C/man3/memccpy.3:77 build/C/man3/memchr.3:144 build/C/man3/memcmp.3:82 build/C/man3/memcpy.3:59 build/C/man3/memfrob.3:68 build/C/man3/memmem.3:91 build/C/man3/memmove.3:69 build/C/man3/mempcpy.3:80 build/C/man3/memset.3:61 build/C/man3/stpcpy.3:115 build/C/man3/stpncpy.3:100 build/C/man3/strcasecmp.3:92 build/C/man3/strcat.3:176 build/C/man3/strchr.3:122 build/C/man3/strcmp.3:88 build/C/man3/strcoll.3:80 build/C/man3/strcpy.3:226 build/C/man3/strdup.3:133 build/C/man3/strerror.3:248 build/C/man3/strfry.3:62 build/C/man3/string.3:208 build/C/man3/strlen.3:57 build/C/man3/strnlen.3:78 build/C/man3/strpbrk.3:63 build/C/man3/strsep.3:104 build/C/man3/strsignal.3:87 build/C/man3/strspn.3:83 build/C/man3/strstr.3:96 build/C/man3/strtok.3:268 build/C/man3/strverscmp.3:92 build/C/man3/strxfrm.3:88
137 #: build/C/man3/bcmp.3:80
139 "B<memcmp>(3), B<strcasecmp>(3), B<strcmp>(3), B<strcoll>(3), "
140 "B<strncasecmp>(3), B<strncmp>(3)"
144 #: build/C/man3/bcmp.3:80 build/C/man3/bcopy.3:79 build/C/man3/bstring.3:94 build/C/man3/bzero.3:65 build/C/man3/ffs.3:113 build/C/man3/index.3:90 build/C/man3/memccpy.3:83 build/C/man3/memchr.3:156 build/C/man3/memcmp.3:90 build/C/man3/memcpy.3:67 build/C/man3/memfrob.3:70 build/C/man3/memmem.3:93 build/C/man3/memmove.3:76 build/C/man3/mempcpy.3:85 build/C/man3/memset.3:65 build/C/man3/stpcpy.3:124 build/C/man3/stpncpy.3:103 build/C/man3/strcasecmp.3:101 build/C/man3/strcat.3:185 build/C/man3/strchr.3:135 build/C/man3/strcmp.3:98 build/C/man3/strcoll.3:88 build/C/man3/strcpy.3:237 build/C/man3/strdup.3:141 build/C/man3/strerror.3:255 build/C/man3/strfry.3:65 build/C/man3/string.3:233 build/C/man3/strlen.3:62 build/C/man3/strnlen.3:80 build/C/man3/strpbrk.3:74 build/C/man3/strsep.3:114 build/C/man3/strsignal.3:90 build/C/man3/strspn.3:95 build/C/man3/strstr.3:109 build/C/man3/strtok.3:279 build/C/man3/strverscmp.3:97 build/C/man3/strxfrm.3:96
150 #: build/C/man3/bcmp.3:88 build/C/man3/bcopy.3:87 build/C/man3/bstring.3:102 build/C/man3/bzero.3:73 build/C/man3/ffs.3:121 build/C/man3/index.3:98 build/C/man3/memccpy.3:91 build/C/man3/memchr.3:164 build/C/man3/memcmp.3:98 build/C/man3/memcpy.3:75 build/C/man3/memfrob.3:78 build/C/man3/memmem.3:101 build/C/man3/memmove.3:84 build/C/man3/mempcpy.3:93 build/C/man3/memset.3:73 build/C/man3/stpcpy.3:132 build/C/man3/stpncpy.3:111 build/C/man3/strcasecmp.3:109 build/C/man3/strcat.3:193 build/C/man3/strchr.3:143 build/C/man3/strcmp.3:106 build/C/man3/strcoll.3:96 build/C/man3/strcpy.3:245 build/C/man3/strdup.3:149 build/C/man3/strerror.3:263 build/C/man3/strfry.3:73 build/C/man3/string.3:241 build/C/man3/strlen.3:70 build/C/man3/strnlen.3:88 build/C/man3/strpbrk.3:82 build/C/man3/strsep.3:122 build/C/man3/strsignal.3:98 build/C/man3/strspn.3:103 build/C/man3/strstr.3:117 build/C/man3/strtok.3:287 build/C/man3/strverscmp.3:105 build/C/man3/strxfrm.3:104
152 "This page is part of release 3.79 of the Linux I<man-pages> project. A "
153 "description of the project, information about reporting bugs, and the latest "
154 "version of this page, can be found at "
155 "\\%http://www.kernel.org/doc/man-pages/."
159 #: build/C/man3/bcopy.3:33
165 #: build/C/man3/bcopy.3:33 build/C/man3/bzero.3:31
171 #: build/C/man3/bcopy.3:36
172 msgid "bcopy - copy byte sequence"
176 #: build/C/man3/bcopy.3:41 build/C/man3/bstring.3:43
178 msgid "B<void bcopy(const void *>I<src>B<, void *>I<dest>B<, size_t >I<n>B<);>\n"
182 #: build/C/man3/bcopy.3:52
184 "The B<bcopy>() function copies I<n> bytes from I<src> to I<dest>. The "
185 "result is correct, even when both areas overlap."
189 #: build/C/man3/bcopy.3:54 build/C/man3/bzero.3:50
194 #: build/C/man3/bcopy.3:59
195 msgid "The B<bcopy>() function is thread-safe."
199 #: build/C/man3/bcopy.3:73
201 "4.3BSD. This function is deprecated (marked as LEGACY in POSIX.1-2001): use "
202 "B<memcpy>(3) or B<memmove>(3) in new programs. Note that the first two "
203 "arguments are interchanged for B<memcpy>(3) and B<memmove>(3). "
204 "POSIX.1-2008 removes the specification of B<bcopy>()."
208 #: build/C/man3/bcopy.3:79
209 msgid "B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<strcpy>(3), B<strncpy>(3)"
213 #: build/C/man3/bstring.3:32
219 #: build/C/man3/bstring.3:32
225 #: build/C/man3/bstring.3:36
227 "bcmp, bcopy, bzero, memccpy, memchr, memcmp, memcpy, memfrob, memmem, "
228 "memmove, memset - byte string operations"
232 #: build/C/man3/bstring.3:39 build/C/man3/ffs.3:43 build/C/man3/memccpy.3:36 build/C/man3/memchr.3:38 build/C/man3/memcmp.3:36 build/C/man3/memcpy.3:36 build/C/man3/memmove.3:36 build/C/man3/mempcpy.3:18 build/C/man3/memset.3:36 build/C/man3/stpcpy.3:31 build/C/man3/stpncpy.3:20 build/C/man3/strcat.3:38 build/C/man3/strchr.3:39 build/C/man3/strcmp.3:38 build/C/man3/strcoll.3:36 build/C/man3/strcpy.3:41 build/C/man3/strdup.3:37 build/C/man3/strerror.3:45 build/C/man3/strfry.3:38 build/C/man3/strlen.3:36 build/C/man3/strnlen.3:19 build/C/man3/strpbrk.3:36 build/C/man3/strsep.3:39 build/C/man3/strsignal.3:36 build/C/man3/strspn.3:36 build/C/man3/strstr.3:39 build/C/man3/strstr.3:45 build/C/man3/strtok.3:38 build/C/man3/strverscmp.3:33 build/C/man3/strxfrm.3:36
234 msgid "B<#include E<lt>string.hE<gt>>\n"
238 #: build/C/man3/bstring.3:45 build/C/man3/bzero.3:39
240 msgid "B<void bzero(void *>I<s>B<, size_t >I<n>B<);>\n"
244 #: build/C/man3/bstring.3:47 build/C/man3/memccpy.3:38
247 "B<void *memccpy(void *>I<dest>B<, const void *>I<src>B<, int >I<c>B<, size_t "
252 #: build/C/man3/bstring.3:49 build/C/man3/memchr.3:40
254 msgid "B<void *memchr(const void *>I<s>B<, int >I<c>B<, size_t >I<n>B<);>\n"
258 #: build/C/man3/bstring.3:51 build/C/man3/memcmp.3:38
260 msgid "B<int memcmp(const void *>I<s1>B<, const void *>I<s2>B<, size_t >I<n>B<);>\n"
264 #: build/C/man3/bstring.3:53 build/C/man3/memcpy.3:38
266 msgid "B<void *memcpy(void *>I<dest>B<, const void *>I<src>B<, size_t >I<n>B<);>\n"
270 #: build/C/man3/bstring.3:55 build/C/man3/memfrob.3:39
272 msgid "B<void *memfrob(void *>I<s>B<, size_t >I<n>B<);>\n"
276 #: build/C/man3/bstring.3:58
279 "B<void *memmem(const void *>I<needle>B<, size_t >I<needlelen>B<,>\n"
280 "B< const void *>I<haystack>B<, size_t >I<haystacklen>B<);>\n"
284 #: build/C/man3/bstring.3:60 build/C/man3/memmove.3:38
286 msgid "B<void *memmove(void *>I<dest>B<, const void *>I<src>B<, size_t >I<n>B<);>\n"
290 #: build/C/man3/bstring.3:62 build/C/man3/memset.3:38
292 msgid "B<void *memset(void *>I<s>B<, int >I<c>B<, size_t >I<n>B<);>\n"
296 #: build/C/man3/bstring.3:68
298 "The byte string functions perform operations on strings (byte arrays) that "
299 "are not necessarily null-terminated. See the individual man pages for "
300 "descriptions of each function."
304 #: build/C/man3/bstring.3:68 build/C/man3/ffs.3:108 build/C/man3/memcmp.3:71 build/C/man3/strcasecmp.3:78 build/C/man3/strcat.3:139 build/C/man3/strcoll.3:71 build/C/man3/strcpy.3:125 build/C/man3/strsep.3:86 build/C/man3/strxfrm.3:78
309 #. The old functions are not even available on some non-GNU/Linux systems.
311 #: build/C/man3/bstring.3:82
313 "The functions B<bcmp>(), B<bcopy>() and B<bzero>() are obsolete. Use "
314 "B<memcmp>(), B<memcpy>() and B<memset>() instead."
318 #: build/C/man3/bstring.3:94
320 "B<bcmp>(3), B<bcopy>(3), B<bzero>(3), B<memccpy>(3), B<memchr>(3), "
321 "B<memcmp>(3), B<memcpy>(3), B<memfrob>(3), B<memmem>(3), B<memmove>(3), "
326 #: build/C/man3/bzero.3:31
332 #: build/C/man3/bzero.3:34
333 msgid "bzero - write zero-valued bytes"
337 #: build/C/man3/bzero.3:48
339 "The B<bzero>() function sets the first I<n> bytes of the area starting at "
340 "I<s> to zero (bytes containing \\(aq\\e0\\(aq)."
344 #: build/C/man3/bzero.3:55
345 msgid "The B<bzero>() function is thread-safe."
349 #: build/C/man3/bzero.3:62
351 "4.3BSD. This function is deprecated (marked as LEGACY in POSIX.1-2001): use "
352 "B<memset>(3) in new programs. POSIX.1-2008 removes the specification of "
357 #: build/C/man3/bzero.3:65
358 msgid "B<memset>(3), B<swab>(3)"
362 #: build/C/man3/ffs.3:33
368 #: build/C/man3/ffs.3:33
374 #: build/C/man3/ffs.3:33 build/C/man3/index.3:31 build/C/man3/memccpy.3:30 build/C/man3/memfrob.3:30 build/C/man3/memmem.3:30 build/C/man3/memmove.3:30 build/C/man3/mempcpy.3:10 build/C/man3/memset.3:30 build/C/man3/stpcpy.3:25 build/C/man3/stpncpy.3:14 build/C/man3/strcat.3:32 build/C/man3/strchr.3:33 build/C/man3/strcoll.3:30 build/C/man3/strcpy.3:35 build/C/man3/strdup.3:31 build/C/man3/strfry.3:30 build/C/man3/strlen.3:30 build/C/man3/strnlen.3:13 build/C/man3/strsep.3:33 build/C/man3/strsignal.3:30 build/C/man3/strstr.3:33 build/C/man3/strtok.3:32 build/C/man3/strverscmp.3:25 build/C/man3/strxfrm.3:30
380 #: build/C/man3/ffs.3:36
381 msgid "ffs, ffsl, ffsll - find first bit set in a word"
385 #: build/C/man3/ffs.3:41
387 msgid "B<int ffs(int >I<i>B<);>\n"
391 #: build/C/man3/ffs.3:45
393 msgid "B<int ffsl(long int >I<i>B<);>\n"
397 #: build/C/man3/ffs.3:47
399 msgid "B<int ffsll(long long int >I<i>B<);>\n"
403 #: build/C/man3/ffs.3:52 build/C/man3/memchr.3:49 build/C/man3/stpcpy.3:38 build/C/man3/stpncpy.3:27 build/C/man3/strdup.3:50 build/C/man3/strerror.3:60 build/C/man3/strnlen.3:26 build/C/man3/strsep.3:46 build/C/man3/strsignal.3:45 build/C/man3/strtok.3:47
404 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
408 #: build/C/man3/ffs.3:57
413 #: build/C/man3/ffs.3:58
415 msgid "Since glibc 2.12:"
419 #: build/C/man3/ffs.3:62
421 "_SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L || "
422 "_XOPEN_SOURCE\\ E<gt>=\\ 700 ||"
426 #: build/C/man3/ffs.3:62
428 msgid "Before glibc 2.12:"
432 #: build/C/man3/ffs.3:65
437 #: build/C/man3/ffs.3:69
438 msgid "B<ffsl>(), B<ffsll>():"
442 #: build/C/man3/ffs.3:71 build/C/man3/stpcpy.3:50 build/C/man3/stpncpy.3:39 build/C/man3/strdup.3:70 build/C/man3/strnlen.3:38 build/C/man3/strsignal.3:57
447 #: build/C/man3/ffs.3:87
449 "The B<ffs>() function returns the position of the first (least significant) "
450 "bit set in the word I<i>. The least significant bit is position 1 and the "
451 "most significant position is, for example, 32 or 64. The functions "
452 "B<ffsll>() and B<ffsl>() do the same but take arguments of possibly "
457 #: build/C/man3/ffs.3:91
459 "These functions return the position of the first bit set, or 0 if no bits "
464 #: build/C/man3/ffs.3:99
465 msgid "The B<ffs>(), B<ffsl>(), and B<ffsll>() functions are thread-safe."
469 #: build/C/man3/ffs.3:102
470 msgid "B<ffs>(): 4.3BSD, POSIX.1-2001."
474 #: build/C/man3/ffs.3:108
475 msgid "The B<ffsl>() and B<ffsll>() functions are glibc extensions."
479 #: build/C/man3/ffs.3:111
480 msgid "BSD systems have a prototype in I<E<lt>string.hE<gt>>."
484 #: build/C/man3/ffs.3:113
489 #: build/C/man3/index.3:31
495 #: build/C/man3/index.3:31
501 #: build/C/man3/index.3:34
502 msgid "index, rindex - locate character in string"
506 #: build/C/man3/index.3:39
508 msgid "B<char *index(const char *>I<s>B<, int >I<c>B<);>\n"
512 #: build/C/man3/index.3:41
514 msgid "B<char *rindex(const char *>I<s>B<, int >I<c>B<);>\n"
518 #: build/C/man3/index.3:47
520 "The B<index>() function returns a pointer to the first occurrence of the "
521 "character I<c> in the string I<s>."
525 #: build/C/man3/index.3:52
527 "The B<rindex>() function returns a pointer to the last occurrence of the "
528 "character I<c> in the string I<s>."
532 #: build/C/man3/index.3:55
534 "The terminating null byte (\\(aq\\e0\\(aq) is considered to be a part of the "
539 #: build/C/man3/index.3:62
541 "The B<index>() and B<rindex>() functions return a pointer to the matched "
542 "character or NULL if the character is not found."
546 #: build/C/man3/index.3:69
547 msgid "The B<index>() and B<rindex>() functions are thread-safe."
551 #: build/C/man3/index.3:80
553 "4.3BSD; marked as LEGACY in POSIX.1-2001. POSIX.1-2008 removes the "
554 "specifications of B<index>() and B<rindex>(), recommending B<strchr>(3) "
555 "and B<strrchr>(3) instead."
559 #: build/C/man3/index.3:90
561 "B<memchr>(3), B<strchr>(3), B<string>(3), B<strpbrk>(3), B<strrchr>(3), "
562 "B<strsep>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3)"
566 #: build/C/man3/memccpy.3:30
572 #: build/C/man3/memccpy.3:30
578 #: build/C/man3/memccpy.3:33
579 msgid "memccpy - copy memory area"
583 #: build/C/man3/memccpy.3:53
585 "The B<memccpy>() function copies no more than I<n> bytes from memory area "
586 "I<src> to memory area I<dest>, stopping when the character I<c> is found."
590 #: build/C/man3/memccpy.3:55
591 msgid "If the memory areas overlap, the results are undefined."
595 #: build/C/man3/memccpy.3:70
597 "The B<memccpy>() function returns a pointer to the next character in "
598 "I<dest> after I<c>, or NULL if I<c> was not found in the first I<n> "
599 "characters of I<src>."
603 #: build/C/man3/memccpy.3:75
604 msgid "The B<memccpy>() function is thread-safe."
608 #: build/C/man3/memccpy.3:77
609 msgid "SVr4, 4.3BSD, POSIX.1-2001."
613 #: build/C/man3/memccpy.3:83
614 msgid "B<bcopy>(3), B<memcpy>(3), B<memmove>(3), B<strcpy>(3), B<strncpy>(3)"
618 #: build/C/man3/memchr.3:32
624 #: build/C/man3/memchr.3:32 build/C/man3/strstr.3:33
630 #: build/C/man3/memchr.3:35
631 msgid "memchr, memrchr, rawmemchr - scan memory for a character"
635 #: build/C/man3/memchr.3:42
637 msgid "B<void *memrchr(const void *>I<s>B<, int >I<c>B<, size_t >I<n>B<);>\n"
641 #: build/C/man3/memchr.3:44
643 msgid "B<void *rawmemchr(const void *>I<s>B<, int >I<c>B<);>\n"
647 #: build/C/man3/memchr.3:54
648 msgid "B<memrchr>(), B<rawmemchr>(): _GNU_SOURCE"
652 #: build/C/man3/memchr.3:70
654 "The B<memchr>() function scans the initial I<n> bytes of the memory area "
655 "pointed to by I<s> for the first instance of I<c>. Both I<c> and the bytes "
656 "of the memory area pointed to by I<s> are interpreted as I<unsigned char>."
660 #: build/C/man3/memchr.3:81
662 "The B<memrchr>() function is like the B<memchr>() function, except that it "
663 "searches backward from the end of the I<n> bytes pointed to by I<s> instead "
664 "of forward from the beginning."
668 #: build/C/man3/memchr.3:99
670 "The B<rawmemchr>() function is similar to B<memchr>(): it assumes (i.e., "
671 "the programmer knows for certain) that an instance of I<c> lies somewhere "
672 "in the memory area starting at the location pointed to by I<s>, and so "
673 "performs an optimized search for I<c> (i.e., no use of a count argument to "
674 "limit the range of the search). If an instance of I<c> is not found, the "
675 "results are unpredictable. The following call is a fast means of locating a "
676 "string's terminating null byte:"
680 #: build/C/man3/memchr.3:103
682 msgid "char *p = rawmemchr(s,\\ \\(aq\\e0\\(aq);\n"
686 #: build/C/man3/memchr.3:113
688 "The B<memchr>() and B<memrchr>() functions return a pointer to the "
689 "matching byte or NULL if the character does not occur in the given memory "
694 #: build/C/man3/memchr.3:118
696 "The B<rawmemchr>() function returns a pointer to the matching byte, if one "
697 "is found. If no matching byte is found, the result is unspecified."
701 #: build/C/man3/memchr.3:118 build/C/man3/mempcpy.3:57 build/C/man3/strchr.3:104 build/C/man3/strerror.3:212
707 #: build/C/man3/memchr.3:121
708 msgid "B<rawmemchr>() first appeared in glibc in version 2.1."
712 #: build/C/man3/memchr.3:124
713 msgid "B<memrchr>() first appeared in glibc in version 2.2."
717 #: build/C/man3/memchr.3:132
719 "The B<memchr>(), B<memrchr>(), and B<rawmemchr>() functions are "
724 #: build/C/man3/memchr.3:136
725 msgid "The B<memchr>() function conforms to SVr4, 4.3BSD, C89, C99, POSIX.1-2001."
729 #: build/C/man3/memchr.3:140
730 msgid "The B<memrchr>() function is a GNU extension, available since glibc 2.1.91."
734 #: build/C/man3/memchr.3:144
735 msgid "The B<rawmemchr>() function is a GNU extension, available since glibc 2.1."
739 #: build/C/man3/memchr.3:156
741 "B<ffs>(3), B<index>(3), B<memmem>(3), B<rindex>(3), B<strchr>(3), "
742 "B<strpbrk>(3), B<strrchr>(3), B<strsep>(3), B<strspn>(3), B<strstr>(3), "
747 #: build/C/man3/memcmp.3:30
753 #: build/C/man3/memcmp.3:30
759 #: build/C/man3/memcmp.3:33
760 msgid "memcmp - compare memory areas"
764 #: build/C/man3/memcmp.3:45
766 "The B<memcmp>() function compares the first I<n> bytes (each interpreted as "
767 "I<unsigned char>) of the memory areas I<s1> and I<s2>."
771 #: build/C/man3/memcmp.3:52
773 "The B<memcmp>() function returns an integer less than, equal to, or greater "
774 "than zero if the first I<n> bytes of I<s1> is found, respectively, to be "
775 "less than, to match, or be greater than the first I<n> bytes of I<s2>."
779 #: build/C/man3/memcmp.3:60
781 "For a nonzero return value, the sign is determined by the sign of the "
782 "difference between the first pair of bytes (interpreted as I<unsigned char>) "
783 "that differ in I<s1> and I<s2>."
787 #: build/C/man3/memcmp.3:64
788 msgid "If I<n> is zero, the return value is zero."
792 #: build/C/man3/memcmp.3:69
793 msgid "The B<memcmp>() function is thread-safe."
797 #: build/C/man3/memcmp.3:71 build/C/man3/memcpy.3:59 build/C/man3/memmove.3:69 build/C/man3/memset.3:61
798 msgid "SVr4, 4.3BSD, C89, C99, POSIX.1-2001."
802 #: build/C/man3/memcmp.3:82
804 "Do not use B<memcmp>() to compare security critical data, such as "
805 "cryptographic secrets, because the required CPU time depends on the number "
806 "of equal bytes. Instead, a function that performs comparisons in constant "
807 "time is required. Some operating systems provide such a function (e.g., "
808 "NetBSD's B<consttime_memequal>()), but no such function is specified in "
809 "POSIX. On Linux, it may be necessary to implement such a function oneself."
813 #: build/C/man3/memcmp.3:90
815 "B<bcmp>(3), B<strcasecmp>(3), B<strcmp>(3), B<strcoll>(3), "
816 "B<strncasecmp>(3), B<strncmp>(3), B<wmemcmp>(3)"
820 #: build/C/man3/memcpy.3:30
826 #: build/C/man3/memcpy.3:30 build/C/man3/memfrob.3:30 build/C/man3/memmove.3:30
832 #: build/C/man3/memcpy.3:33
833 msgid "memcpy - copy memory area"
837 #: build/C/man3/memcpy.3:48
839 "The B<memcpy>() function copies I<n> bytes from memory area I<src> to "
840 "memory area I<dest>. The memory areas must not overlap. Use B<memmove>(3) "
841 "if the memory areas do overlap."
845 #: build/C/man3/memcpy.3:52
846 msgid "The B<memcpy>() function returns a pointer to I<dest>."
850 #: build/C/man3/memcpy.3:57
851 msgid "The B<memcpy>() function is thread-safe."
855 #: build/C/man3/memcpy.3:67
857 "B<bcopy>(3), B<memccpy>(3), B<memmove>(3), B<mempcpy>(3), B<strcpy>(3), "
858 "B<strncpy>(3), B<wmemcpy>(3)"
862 #: build/C/man3/memfrob.3:30
868 #: build/C/man3/memfrob.3:33
869 msgid "memfrob - frobnicate (encrypt) a memory area"
873 #: build/C/man3/memfrob.3:37
876 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
877 "B<#include E<lt>string.hE<gt>>\n"
881 #: build/C/man3/memfrob.3:50
883 "The B<memfrob>() function encrypts the first I<n> bytes of the memory area "
884 "I<s> by exclusive-ORing each character with the number 42. The effect can "
885 "be reversed by using B<memfrob>() on the encrypted memory area."
889 #: build/C/man3/memfrob.3:53
891 "Note that this function is not a proper encryption routine as the XOR "
892 "constant is fixed, and is suitable only for hiding strings."
896 #: build/C/man3/memfrob.3:58
897 msgid "The B<memfrob>() function returns a pointer to the encrypted memory area."
901 #: build/C/man3/memfrob.3:63
902 msgid "The B<memfrob>() function is thread-safe."
906 #: build/C/man3/memfrob.3:68
907 msgid "The B<memfrob>() function is unique to the GNU C Library."
911 #: build/C/man3/memfrob.3:70
916 #: build/C/man3/memmem.3:30
922 #: build/C/man3/memmem.3:30
928 #: build/C/man3/memmem.3:33
929 msgid "memmem - locate a substring"
933 #: build/C/man3/memmem.3:37 build/C/man3/strchr.3:46
936 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
937 "B<#include E<lt>string.hE<gt>>\n"
941 #: build/C/man3/memmem.3:40
944 "B<void *memmem(const void *>I<haystack>B<, size_t >I<haystacklen>B<,>\n"
945 "B< const void *>I<needle>B<, size_t >I<needlelen>B<);>\n"
949 #: build/C/man3/memmem.3:54
951 "The B<memmem>() function finds the start of the first occurrence of the "
952 "substring I<needle> of length I<needlelen> in the memory area I<haystack> of "
953 "length I<haystacklen>."
957 #: build/C/man3/memmem.3:59
959 "The B<memmem>() function returns a pointer to the beginning of the "
960 "substring, or NULL if the substring is not found."
964 #: build/C/man3/memmem.3:64
965 msgid "The B<memmem>() function is thread-safe."
969 #: build/C/man3/memmem.3:66 build/C/man3/mempcpy.3:69 build/C/man3/strverscmp.3:92
970 msgid "This function is a GNU extension."
974 #: build/C/man3/memmem.3:66 build/C/man3/stpcpy.3:85 build/C/man3/strcpy.3:215 build/C/man3/strsep.3:95 build/C/man3/strtok.3:185
979 #. This function was broken in Linux libraries up to and including libc 5.0.9;
984 #. arguments were interchanged,
985 #. and a pointer to the end of the first occurrence of
989 #. Both old and new libc's have the bug that if
997 #: build/C/man3/memmem.3:91
999 "In glibc 2.0, if I<needle> is empty, B<memmem>() returns a pointer to the "
1000 "last byte of I<haystack>. This is fixed in glibc 2.1."
1004 #: build/C/man3/memmem.3:93
1005 msgid "B<strstr>(3)"
1009 #: build/C/man3/memmove.3:30
1015 #: build/C/man3/memmove.3:33
1016 msgid "memmove - copy memory area"
1020 #: build/C/man3/memmove.3:57
1022 "The B<memmove>() function copies I<n> bytes from memory area I<src> to "
1023 "memory area I<dest>. The memory areas may overlap: copying takes place as "
1024 "though the bytes in I<src> are first copied into a temporary array that does "
1025 "not overlap I<src> or I<dest>, and the bytes are then copied from the "
1026 "temporary array to I<dest>."
1030 #: build/C/man3/memmove.3:62
1031 msgid "The B<memmove>() function returns a pointer to I<dest>."
1035 #: build/C/man3/memmove.3:67
1036 msgid "The B<memmove>() function is thread-safe."
1040 #: build/C/man3/memmove.3:76
1042 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<strcpy>(3), B<strncpy>(3), "
1047 #: build/C/man3/mempcpy.3:10
1053 #: build/C/man3/mempcpy.3:10 build/C/man3/memset.3:30 build/C/man3/strerror.3:39
1059 #: build/C/man3/mempcpy.3:13
1060 msgid "mempcpy, wmempcpy - copy memory area"
1064 #: build/C/man3/mempcpy.3:16 build/C/man3/mempcpy.3:22 build/C/man3/strfry.3:36 build/C/man3/strstr.3:43 build/C/man3/strverscmp.3:31
1066 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
1070 #: build/C/man3/mempcpy.3:20
1072 msgid "B<void *mempcpy(void *>I<dest>B<, const void *>I<src>B<, size_t >I<n>B<);>\n"
1076 #: build/C/man3/mempcpy.3:24
1078 msgid "B<#include E<lt>wchar.hE<gt>>\n"
1082 #: build/C/man3/mempcpy.3:26
1085 "B<wchar_t *wmempcpy(wchar_t *>I<dest>B<, const wchar_t *>I<src>B<, size_t "
1090 #: build/C/man3/mempcpy.3:42
1092 "The B<mempcpy>() function is nearly identical to the B<memcpy>(3) "
1093 "function. It copies I<n> bytes from the object beginning at I<src> into the "
1094 "object pointed to by I<dest>. But instead of returning the value of I<dest> "
1095 "it returns a pointer to the byte following the last written byte."
1099 #: build/C/man3/mempcpy.3:45
1101 "This function is useful in situations where a number of objects shall be "
1102 "copied to consecutive memory positions."
1106 #: build/C/man3/mempcpy.3:53
1108 "The B<wmempcpy>() function is identical but takes I<wchar_t> type arguments "
1109 "and copies I<n> wide characters."
1113 #: build/C/man3/mempcpy.3:57
1114 msgid "I<dest> + I<n>."
1118 #: build/C/man3/mempcpy.3:60
1119 msgid "B<mempcpy>() first appeared in glibc in version 2.1."
1123 #: build/C/man3/mempcpy.3:67
1124 msgid "The B<mempcpy>() and B<wmempcpy>() functions are thread-safe."
1128 #: build/C/man3/mempcpy.3:69 build/C/man3/stpcpy.3:88 build/C/man3/strtok.3:201
1134 #: build/C/man3/mempcpy.3:79
1138 "combine(void *o1, size_t s1, void *o2, size_t s2)\n"
1140 " void *result = malloc(s1 + s2);\n"
1141 " if (result != NULL)\n"
1142 " mempcpy(mempcpy(result, o1, s1), o2, s2);\n"
1148 #: build/C/man3/mempcpy.3:85
1149 msgid "B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<wmemcpy>(3)"
1153 #: build/C/man3/memset.3:30
1159 #: build/C/man3/memset.3:33
1160 msgid "memset - fill memory with a constant byte"
1164 #: build/C/man3/memset.3:49
1166 "The B<memset>() function fills the first I<n> bytes of the memory area "
1167 "pointed to by I<s> with the constant byte I<c>."
1171 #: build/C/man3/memset.3:54
1172 msgid "The B<memset>() function returns a pointer to the memory area I<s>."
1176 #: build/C/man3/memset.3:59
1177 msgid "The B<memset>() function is thread-safe."
1181 #: build/C/man3/memset.3:65
1182 msgid "B<bzero>(3), B<swab>(3), B<wmemset>(3)"
1186 #: build/C/man3/stpcpy.3:25
1192 #: build/C/man3/stpcpy.3:25 build/C/man3/stpncpy.3:14 build/C/man3/strcasecmp.3:30
1198 #: build/C/man3/stpcpy.3:28
1199 msgid "stpcpy - copy a string returning a pointer to its end"
1203 #: build/C/man3/stpcpy.3:33
1205 msgid "B<char *stpcpy(char *>I<dest>B<, const char *>I<src>B<);>\n"
1209 #: build/C/man3/stpcpy.3:41
1210 msgid "B<stpcpy>():"
1214 #: build/C/man3/stpcpy.3:44 build/C/man3/stpncpy.3:33 build/C/man3/strdup.3:64 build/C/man3/strnlen.3:32 build/C/man3/strsignal.3:51
1216 msgid "Since glibc 2.10:"
1220 #: build/C/man3/stpcpy.3:47 build/C/man3/stpncpy.3:36 build/C/man3/strnlen.3:35 build/C/man3/strsignal.3:54
1221 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
1225 #: build/C/man3/stpcpy.3:47 build/C/man3/stpncpy.3:36 build/C/man3/strdup.3:67 build/C/man3/strnlen.3:35 build/C/man3/strsignal.3:54
1227 msgid "Before glibc 2.10:"
1231 #: build/C/man3/stpcpy.3:63
1233 "The B<stpcpy>() function copies the string pointed to by I<src> (including "
1234 "the terminating null byte (\\(aq\\e0\\(aq)) to the array pointed to by "
1235 "I<dest>. The strings may not overlap, and the destination string I<dest> "
1236 "must be large enough to receive the copy."
1240 #: build/C/man3/stpcpy.3:71
1242 "B<stpcpy>() returns a pointer to the B<end> of the string I<dest> (that is, "
1243 "the address of the terminating null byte) rather than the beginning."
1247 #: build/C/man3/stpcpy.3:76
1248 msgid "The B<stpcpy>() function is thread-safe."
1252 #: build/C/man3/stpcpy.3:85
1254 "This function was added to POSIX.1-2008. Before that, it was not part of "
1255 "the C or POSIX.1 standards, nor customary on UNIX systems. It first "
1256 "appeared at least as early as 1986, in the Lattice C AmigaDOS compiler, then "
1257 "in the GNU fileutils and GNU textutils in 1989, and in the GNU C library by "
1258 "1992. It is also present on the BSDs."
1262 #: build/C/man3/stpcpy.3:88
1263 msgid "This function may overrun the buffer I<dest>."
1267 #: build/C/man3/stpcpy.3:98
1269 "For example, this program uses B<stpcpy>() to concatenate B<foo> and B<bar> "
1270 "to produce B<foobar>, which it then prints."
1274 #: build/C/man3/stpcpy.3:103
1277 "#define _GNU_SOURCE\n"
1278 "#include E<lt>string.hE<gt>\n"
1279 "#include E<lt>stdio.hE<gt>\n"
1283 #: build/C/man3/stpcpy.3:109
1289 " char buffer[20];\n"
1290 " char *to = buffer;\n"
1294 #: build/C/man3/stpcpy.3:114
1297 " to = stpcpy(to, \"foo\");\n"
1298 " to = stpcpy(to, \"bar\");\n"
1299 " printf(\"%s\\en\", buffer);\n"
1304 #: build/C/man3/stpcpy.3:124
1306 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<stpncpy>(3), "
1307 "B<strcpy>(3), B<string>(3), B<wcpcpy>(3)"
1311 #: build/C/man3/stpncpy.3:14
1317 #: build/C/man3/stpncpy.3:17
1318 msgid "stpncpy - copy a fixed-size string, returning a pointer to its end"
1322 #: build/C/man3/stpncpy.3:22
1324 msgid "B<char *stpncpy(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
1328 #: build/C/man3/stpncpy.3:30
1329 msgid "B<stpncpy>():"
1333 #: build/C/man3/stpncpy.3:74
1335 "The B<stpncpy>() function copies at most I<n> characters from the string "
1336 "pointed to by I<src>, including the terminating null byte (\\(aq\\e0\\(aq), "
1337 "to the array pointed to by I<dest>. Exactly I<n> characters are written at "
1338 "I<dest>. If the length I<strlen(src)> is smaller than I<n>, the remaining "
1339 "characters in the array pointed to by I<dest> are filled with null bytes "
1340 "(\\(aq\\e0\\(aq), If the length I<strlen(src)> is greater than or equal to "
1341 "I<n>, the string pointed to by I<dest> will not be null-terminated."
1345 #: build/C/man3/stpncpy.3:76
1346 msgid "The strings may not overlap."
1350 #: build/C/man3/stpncpy.3:82
1352 "The programmer must ensure that there is room for at least I<n> characters "
1357 #: build/C/man3/stpncpy.3:91
1359 "B<stpncpy>() returns a pointer to the terminating null byte in I<dest>, or, "
1360 "if I<dest> is not null-terminated, I<dest>+I<n>."
1364 #: build/C/man3/stpncpy.3:96
1365 msgid "The B<stpncpy>() function is thread-safe."
1369 #: build/C/man3/stpncpy.3:100
1371 "This function was added to POSIX.1-2008. Before that, it was a GNU "
1372 "extension. It first appeared in version 1.07 of the GNU C library in 1993."
1376 #: build/C/man3/stpncpy.3:103
1377 msgid "B<strncpy>(3), B<wcpncpy>(3)"
1381 #: build/C/man3/strcasecmp.3:30
1387 #: build/C/man3/strcasecmp.3:33
1388 msgid "strcasecmp, strncasecmp - compare two strings ignoring case"
1392 #: build/C/man3/strcasecmp.3:38
1394 msgid "B<int strcasecmp(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
1398 #: build/C/man3/strcasecmp.3:40
1401 "B<int strncasecmp(const char *>I<s1>B<, const char *>I<s2>B<, size_t "
1406 #: build/C/man3/strcasecmp.3:55
1408 "The B<strcasecmp>() function compares the two strings I<s1> and I<s2>, "
1409 "ignoring the case of the characters. It returns an integer less than, equal "
1410 "to, or greater than zero if I<s1> is found, respectively, to be less than, "
1411 "to match, or be greater than I<s2>."
1415 #: build/C/man3/strcasecmp.3:63
1417 "The B<strncasecmp>() function is similar, except it compares the only first "
1418 "I<n> bytes of I<s1>."
1422 #: build/C/man3/strcasecmp.3:76
1424 "The B<strcasecmp>() and B<strncasecmp>() functions return an integer less "
1425 "than, equal to, or greater than zero if I<s1> (or the first I<n> bytes "
1426 "thereof) is found, respectively, to be less than, to match, or be greater "
1431 #: build/C/man3/strcasecmp.3:78
1432 msgid "4.4BSD, POSIX.1-2001."
1436 #: build/C/man3/strcasecmp.3:92
1438 "The B<strcasecmp>() and B<strncasecmp>() functions first appeared in "
1439 "4.4BSD, where they were declared in I<E<lt>string.hE<gt>>. Thus, for "
1440 "reasons of historical compatibility, the glibc I<E<lt>string.hE<gt>> header "
1441 "file also declares these functions, if the B<_DEFAULT_SOURCE> (or, in glibc "
1442 "2.19 and earlier, B<_BSD_SOURCE>) feature test macro is defined."
1446 #: build/C/man3/strcasecmp.3:101
1448 "B<bcmp>(3), B<memcmp>(3), B<strcmp>(3), B<strcoll>(3), B<string>(3), "
1449 "B<strncmp>(3), B<wcscasecmp>(3), B<wcsncasecmp>(3)"
1453 #: build/C/man3/strcat.3:32
1459 #: build/C/man3/strcat.3:32 build/C/man3/strchr.3:33 build/C/man3/strcmp.3:32
1465 #: build/C/man3/strcat.3:35
1466 msgid "strcat, strncat - concatenate two strings"
1470 #: build/C/man3/strcat.3:40
1472 msgid "B<char *strcat(char *>I<dest>B<, const char *>I<src>B<);>\n"
1476 #: build/C/man3/strcat.3:42
1478 msgid "B<char *strncat(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
1482 #: build/C/man3/strcat.3:62
1484 "The B<strcat>() function appends the I<src> string to the I<dest> string, "
1485 "overwriting the terminating null byte (\\(aq\\e0\\(aq) at the end of "
1486 "I<dest>, and then adds a terminating null byte. The strings may not "
1487 "overlap, and the I<dest> string must have enough space for the result. If "
1488 "I<dest> is not large enough, program behavior is unpredictable; I<buffer "
1489 "overruns are a favorite avenue for attacking secure programs>."
1493 #: build/C/man3/strcat.3:66
1494 msgid "The B<strncat>() function is similar, except that"
1498 #: build/C/man3/strcat.3:66 build/C/man3/strcat.3:72 build/C/man3/strsep.3:98 build/C/man3/strsep.3:100 build/C/man3/strsep.3:102 build/C/man3/strtok.3:188 build/C/man3/strtok.3:190 build/C/man3/strtok.3:192 build/C/man3/strtok.3:194
1504 #: build/C/man3/strcat.3:72
1505 msgid "it will use at most I<n> bytes from I<src>; and"
1509 #: build/C/man3/strcat.3:77
1511 "I<src> does not need to be null-terminated if it contains I<n> or more "
1516 #: build/C/man3/strcat.3:83
1518 "As with B<strcat>(), the resulting string in I<dest> is always "
1523 #: build/C/man3/strcat.3:102
1525 "If I<src> contains I<n> or more bytes, B<strncat>() writes I<n+1> bytes to "
1526 "I<dest> (I<n> from I<src> plus the terminating null byte). Therefore, the "
1527 "size of I<dest> must be at least I<strlen(dest)+n+1>."
1531 #: build/C/man3/strcat.3:106
1532 msgid "A simple implementation of B<strncat>() might be:"
1536 #: build/C/man3/strcat.3:114
1540 "strncat(char *dest, const char *src, size_t n)\n"
1542 " size_t dest_len = strlen(dest);\n"
1547 #: build/C/man3/strcat.3:118
1550 " for (i = 0 ; i E<lt> n && src[i] != \\(aq\\e0\\(aq ; i++)\n"
1551 " dest[dest_len + i] = src[i];\n"
1552 " dest[dest_len + i] = \\(aq\\e0\\(aq;\n"
1556 #: build/C/man3/strcat.3:121 build/C/man3/strcpy.3:106
1564 #: build/C/man3/strcat.3:130
1566 "The B<strcat>() and B<strncat>() functions return a pointer to the "
1567 "resulting string I<dest>."
1571 #: build/C/man3/strcat.3:137
1572 msgid "The B<strcat>() and B<strncat>() functions are thread-safe."
1576 #: build/C/man3/strcat.3:139 build/C/man3/strcmp.3:88 build/C/man3/strcoll.3:71 build/C/man3/strcpy.3:125 build/C/man3/strlen.3:57 build/C/man3/strpbrk.3:63 build/C/man3/strspn.3:83 build/C/man3/strxfrm.3:78
1577 msgid "SVr4, 4.3BSD, C89, C99."
1581 #: build/C/man3/strcat.3:141 build/C/man3/strcpy.3:178
1582 msgid "Some systems (the BSDs, Solaris, and others) provide the following function:"
1586 #: build/C/man3/strcat.3:143
1588 msgid " size_t strlcat(char *dest, const char *src, size_t size);\n"
1591 #. https://lwn.net/Articles/506530/
1593 #: build/C/man3/strcat.3:176
1595 "This function appends the null-terminated string I<src> to the string "
1596 "I<dest>, copying at most I<size-strlen(dest)-1> from I<src>, and adds a "
1597 "terminating null byte to the result, I<unless> I<size> is less than "
1598 "I<strlen(dest)>. This function fixes the buffer overrun problem of "
1599 "B<strcat>(), but the caller must still handle the possibility of data loss "
1600 "if I<size> is too small. The function returns the length of the string "
1601 "B<strlcat>() tried to create; if the return value is greater than or equal "
1602 "to I<size>, data loss occurred. If data loss matters, the caller I<must> "
1603 "either check the arguments before the call, or test the function return "
1604 "value. B<strlcat>() is not present in glibc and is not standardized by "
1605 "POSIX, but is available on Linux via the I<libbsd> library."
1609 #: build/C/man3/strcat.3:185
1611 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<strcpy>(3), B<string>(3), "
1612 "B<strncpy>(3), B<wcscat>(3), B<wcsncat>(3)"
1616 #: build/C/man3/strchr.3:33
1622 #: build/C/man3/strchr.3:36
1623 msgid "strchr, strrchr, strchrnul - locate character in string"
1627 #: build/C/man3/strchr.3:41
1629 msgid "B<char *strchr(const char *>I<s>B<, int >I<c>B<);>\n"
1633 #: build/C/man3/strchr.3:43
1635 msgid "B<char *strrchr(const char *>I<s>B<, int >I<c>B<);>\n"
1639 #: build/C/man3/strchr.3:48
1641 msgid "B<char *strchrnul(const char *>I<s>B<, int >I<c>B<);>\n"
1645 #: build/C/man3/strchr.3:57
1647 "The B<strchr>() function returns a pointer to the first occurrence of the "
1648 "character I<c> in the string I<s>."
1652 #: build/C/man3/strchr.3:65
1654 "The B<strrchr>() function returns a pointer to the last occurrence of the "
1655 "character I<c> in the string I<s>."
1659 #: build/C/man3/strchr.3:78
1661 "The B<strchrnul>() function is like B<strchr>() except that if I<c> is not "
1662 "found in I<s>, then it returns a pointer to the null byte at the end of "
1663 "I<s>, rather than NULL."
1667 #: build/C/man3/strchr.3:81
1669 "Here \"character\" means \"byte\"; these functions do not work with wide or "
1670 "multibyte characters."
1674 #: build/C/man3/strchr.3:93
1676 "The B<strchr>() and B<strrchr>() functions return a pointer to the matched "
1677 "character or NULL if the character is not found. The terminating null byte "
1678 "is considered part of the string, so that if I<c> is specified as "
1679 "\\(aq\\e0\\(aq, these functions return a pointer to the terminator."
1683 #: build/C/man3/strchr.3:104
1685 "The B<strchrnul>() function returns a pointer to the matched character, or "
1686 "a pointer to the null byte at the end of I<s> (i.e., I<s+strlen(s)>) if the "
1687 "character is not found."
1691 #: build/C/man3/strchr.3:107
1692 msgid "B<strchrnul>() first appeared in glibc in version 2.1.1."
1696 #: build/C/man3/strchr.3:115
1698 "The B<strchr>(), B<strrchr>(), and B<strchrnul>() functions are "
1703 #: build/C/man3/strchr.3:122
1705 "B<strchr>() and B<strrchr>() are in SVr4, 4.3BSD, C89, C99. "
1706 "B<strchrnul>() is a GNU extension."
1710 #: build/C/man3/strchr.3:135
1712 "B<index>(3), B<memchr>(3), B<rindex>(3), B<string>(3), B<strlen>(3), "
1713 "B<strpbrk>(3), B<strsep>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3), "
1714 "B<wcschr>(3), B<wcsrchr>(3)"
1718 #: build/C/man3/strcmp.3:32
1724 #: build/C/man3/strcmp.3:35
1725 msgid "strcmp, strncmp - compare two strings"
1729 #: build/C/man3/strcmp.3:40
1731 msgid "B<int strcmp(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
1735 #: build/C/man3/strcmp.3:42
1738 "B<int strncmp(const char *>I<s1>B<, const char *>I<s2>B<, size_t "
1743 #: build/C/man3/strcmp.3:56
1745 "The B<strcmp>() function compares the two strings I<s1> and I<s2>. It "
1746 "returns an integer less than, equal to, or greater than zero if I<s1> is "
1747 "found, respectively, to be less than, to match, or be greater than I<s2>."
1751 #: build/C/man3/strcmp.3:66
1753 "The B<strncmp>() function is similar, except it compares only the first (at "
1754 "most) I<n> bytes of I<s1> and I<s2>."
1758 #: build/C/man3/strcmp.3:79
1760 "The B<strcmp>() and B<strncmp>() functions return an integer less than, "
1761 "equal to, or greater than zero if I<s1> (or the first I<n> bytes thereof) is "
1762 "found, respectively, to be less than, to match, or be greater than I<s2>."
1766 #: build/C/man3/strcmp.3:86
1767 msgid "The B<strcmp>() and B<strncmp>() functions are thread-safe."
1771 #: build/C/man3/strcmp.3:98
1773 "B<bcmp>(3), B<memcmp>(3), B<strcasecmp>(3), B<strcoll>(3), B<string>(3), "
1774 "B<strncasecmp>(3), B<strverscmp>(3), B<wcscmp>(3), B<wcsncmp>(3)"
1778 #: build/C/man3/strcoll.3:30
1784 #: build/C/man3/strcoll.3:30 build/C/man3/strfry.3:30
1790 #: build/C/man3/strcoll.3:33
1791 msgid "strcoll - compare two strings using the current locale"
1795 #: build/C/man3/strcoll.3:38
1797 msgid "B<int strcoll(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
1801 #: build/C/man3/strcoll.3:58
1803 "The B<strcoll>() function compares the two strings I<s1> and I<s2>. It "
1804 "returns an integer less than, equal to, or greater than zero if I<s1> is "
1805 "found, respectively, to be less than, to match, or be greater than I<s2>. "
1806 "The comparison is based on strings interpreted as appropriate for the "
1807 "program's current locale for category B<LC_COLLATE>. (See B<setlocale>(3).)"
1811 #: build/C/man3/strcoll.3:69
1813 "The B<strcoll>() function returns an integer less than, equal to, or "
1814 "greater than zero if I<s1> is found, respectively, to be less than, to "
1815 "match, or be greater than I<s2>, when both are interpreted as appropriate "
1816 "for the current locale."
1820 #: build/C/man3/strcoll.3:80
1821 msgid "In the I<POSIX> or I<C> locales B<strcoll>() is equivalent to B<strcmp>(3)."
1825 #: build/C/man3/strcoll.3:88
1827 "B<bcmp>(3), B<memcmp>(3), B<setlocale>(3), B<strcasecmp>(3), B<strcmp>(3), "
1828 "B<string>(3), B<strxfrm>(3)"
1832 #: build/C/man3/strcpy.3:35
1838 #: build/C/man3/strcpy.3:35
1844 #: build/C/man3/strcpy.3:38
1845 msgid "strcpy, strncpy - copy a string"
1849 #: build/C/man3/strcpy.3:43
1851 msgid "B<char *strcpy(char *>I<dest>B<, const char *>I<src>B<);>\n"
1855 #: build/C/man3/strcpy.3:45
1857 msgid "B<char *strncpy(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
1861 #: build/C/man3/strcpy.3:59
1863 "The B<strcpy>() function copies the string pointed to by I<src>, including "
1864 "the terminating null byte (\\(aq\\e0\\(aq), to the buffer pointed to by "
1865 "I<dest>. The strings may not overlap, and the destination string I<dest> "
1866 "must be large enough to receive the copy. I<Beware of buffer overruns!> "
1871 #: build/C/man3/strcpy.3:76
1873 "The B<strncpy>() function is similar, except that at most I<n> bytes of "
1874 "I<src> are copied. B<Warning>: If there is no null byte among the first "
1875 "I<n> bytes of I<src>, the string placed in I<dest> will not be "
1880 #: build/C/man3/strcpy.3:87
1882 "If the length of I<src> is less than I<n>, B<strncpy>() writes additional "
1883 "null bytes to I<dest> to ensure that a total of I<n> bytes are written."
1887 #: build/C/man3/strcpy.3:91
1888 msgid "A simple implementation of B<strncpy>() might be:"
1892 #: build/C/man3/strcpy.3:98
1896 "strncpy(char *dest, const char *src, size_t n)\n"
1902 #: build/C/man3/strcpy.3:103
1905 " for (i = 0; i E<lt> n && src[i] != \\(aq\\e0\\(aq; i++)\n"
1906 " dest[i] = src[i];\n"
1907 " for ( ; i E<lt> n; i++)\n"
1908 " dest[i] = \\(aq\\e0\\(aq;\n"
1912 #: build/C/man3/strcpy.3:116
1914 "The B<strcpy>() and B<strncpy>() functions return a pointer to the "
1915 "destination string I<dest>."
1919 #: build/C/man3/strcpy.3:123
1920 msgid "The B<strcpy>() and B<strncpy>() functions are thread-safe."
1924 #: build/C/man3/strcpy.3:138
1926 "Some programmers consider B<strncpy>() to be inefficient and error prone. "
1927 "If the programmer knows (i.e., includes code to test!) that the size of "
1928 "I<dest> is greater than the length of I<src>, then B<strcpy>() can be used."
1932 #: build/C/man3/strcpy.3:147
1934 "One valid (and intended) use of B<strncpy>() is to copy a C string to a "
1935 "fixed-length buffer while ensuring both that the buffer is not overflowed "
1936 "and that unused bytes in the target buffer are zeroed out (perhaps to "
1937 "prevent information leaks if the buffer is to be written to media or "
1938 "transmitted to another process via an interprocess communication technique)."
1942 #: build/C/man3/strcpy.3:160
1944 "If there is no terminating null byte in the first I<n> bytes of I<src>, "
1945 "B<strncpy>() produces an unterminated string in I<dest>. If I<buf> has "
1946 "length I<buflen>, you can force termination using something like the "
1951 #: build/C/man3/strcpy.3:166
1954 "strncpy(buf, str, buflen - 1);\n"
1955 "if (buflen E<gt> 0)\n"
1956 " buf[buflen - 1]= \\(aq\\e0\\(aq;\n"
1960 #: build/C/man3/strcpy.3:176
1962 "(Of course, the above technique ignores the fact that, if I<src> contains "
1963 "more than I<buflen\\ -\\ 1> bytes, information is lost in the copying to "
1968 #: build/C/man3/strcpy.3:176
1974 #: build/C/man3/strcpy.3:180
1976 msgid " size_t strlcpy(char *dest, const char *src, size_t size);\n"
1979 #. http://static.usenix.org/event/usenix99/full_papers/millert/millert_html/index.html
1980 #. "strlcpy and strlcat - consistent, safe, string copy and concatenation"
1981 #. 1999 USENIX Annual Technical Conference
1982 #. https://lwn.net/Articles/506530/
1984 #: build/C/man3/strcpy.3:215
1986 "This function is similar to B<strncpy>(), but it copies at most I<size-1> "
1987 "bytes to I<dest>, always adds a terminating null byte, and does not pad the "
1988 "target with (further) null bytes. This function fixes some of the problems "
1989 "of B<strcpy>() and B<strncpy>(), but the caller must still handle the "
1990 "possibility of data loss if I<size> is too small. The return value of the "
1991 "function is the length of I<src>, which allows truncation to be easily "
1992 "detected: if the return value is greater than or equal to I<size>, "
1993 "truncation occurred. If loss of data matters, the caller I<must> either "
1994 "check the arguments before the call, or test the function return value. "
1995 "B<strlcpy>() is not present in glibc and is not standardized by POSIX, but "
1996 "is available on Linux via the I<libbsd> library."
2000 #: build/C/man3/strcpy.3:226
2002 "If the destination string of a B<strcpy>() is not large enough, then "
2003 "anything might happen. Overflowing fixed-length string buffers is a "
2004 "favorite cracker technique for taking complete control of the machine. Any "
2005 "time a program reads or copies data into a buffer, the program first needs "
2006 "to check that there's enough space. This may be unnecessary if you can show "
2007 "that overflow is impossible, but be careful: programs can get changed over "
2008 "time, in ways that may make the impossible possible."
2012 #: build/C/man3/strcpy.3:237
2014 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<stpcpy>(3), "
2015 "B<stpncpy>(3), B<strdup>(3), B<string>(3), B<wcscpy>(3), B<wcsncpy>(3)"
2019 #: build/C/man3/strdup.3:31
2025 #: build/C/man3/strdup.3:31
2031 #: build/C/man3/strdup.3:34
2032 msgid "strdup, strndup, strdupa, strndupa - duplicate a string"
2036 #: build/C/man3/strdup.3:39
2038 msgid "B<char *strdup(const char *>I<s>B<);>\n"
2042 #: build/C/man3/strdup.3:41
2044 msgid "B<char *strndup(const char *>I<s>B<, size_t >I<n>B<);>\n"
2048 #: build/C/man3/strdup.3:43
2050 msgid "B<char *strdupa(const char *>I<s>B<);>\n"
2054 #: build/C/man3/strdup.3:45
2056 msgid "B<char *strndupa(const char *>I<s>B<, size_t >I<n>B<);>\n"
2060 #: build/C/man3/strdup.3:55
2061 msgid "B<strdup>():"
2065 #: build/C/man3/strdup.3:58
2067 "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
2068 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
2072 #: build/C/man3/strdup.3:60
2073 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
2077 #: build/C/man3/strdup.3:63
2078 msgid "B<strndup>():"
2082 #: build/C/man3/strdup.3:67
2083 msgid "_POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700"
2087 #: build/C/man3/strdup.3:75
2088 msgid "B<strdupa>(), B<strndupa>(): _GNU_SOURCE"
2092 #: build/C/man3/strdup.3:88
2094 "The B<strdup>() function returns a pointer to a new string which is a "
2095 "duplicate of the string I<s>. Memory for the new string is obtained with "
2096 "B<malloc>(3), and can be freed with B<free>(3)."
2100 #: build/C/man3/strdup.3:101
2102 "The B<strndup>() function is similar, but copies at most I<n> bytes. If "
2103 "I<s> is longer than I<n>, only I<n> bytes are copied, and a terminating null "
2104 "byte (\\(aq\\e0\\(aq) is added."
2108 #: build/C/man3/strdup.3:111
2110 "B<strdupa>() and B<strndupa>() are similar, but use B<alloca>(3) to "
2111 "allocate the buffer. They are available only when using the GNU GCC suite, "
2112 "and suffer from the same limitations described in B<alloca>(3)."
2116 #: build/C/man3/strdup.3:119
2118 "On success, the B<strdup>() function returns a pointer to the duplicated "
2119 "string. It returns NULL if insufficient memory was available, with I<errno> "
2120 "set to indicate the cause of the error."
2124 #: build/C/man3/strdup.3:119 build/C/man3/strerror.3:193
2130 #: build/C/man3/strdup.3:120
2136 #: build/C/man3/strdup.3:123
2137 msgid "Insufficient memory available to allocate duplicate string."
2140 #. 4.3BSD-Reno, not (first) 4.3BSD.
2142 #: build/C/man3/strdup.3:133
2144 "B<strdup>() conforms to SVr4, 4.3BSD, POSIX.1-2001. B<strndup>() conforms "
2145 "to POSIX.1-2008. B<strdupa>() and B<strndupa>() are GNU extensions."
2149 #: build/C/man3/strdup.3:141
2151 "B<alloca>(3), B<calloc>(3), B<free>(3), B<malloc>(3), B<realloc>(3), "
2152 "B<string>(3), B<wcsdup>(3)"
2156 #: build/C/man3/strerror.3:39
2162 #: build/C/man3/strerror.3:42
2163 msgid "strerror, strerror_r, strerror_l - return string describing error number"
2167 #: build/C/man3/strerror.3:47
2169 msgid "B<char *strerror(int >I<errnum>B<);>\n"
2173 #: build/C/man3/strerror.3:50
2176 "B<int strerror_r(int >I<errnum>B<, char *>I<buf>B<, size_t >I<buflen>B<);>\n"
2177 " /* XSI-compliant */\n"
2181 #: build/C/man3/strerror.3:53
2184 "B<char *strerror_r(int >I<errnum>B<, char *>I<buf>B<, size_t "
2186 " /* GNU-specific */\n"
2190 #: build/C/man3/strerror.3:55
2192 msgid "B<char *strerror_l(int >I<errnum>B<, locale_t >I<locale>B<);>\n"
2196 #: build/C/man3/strerror.3:64
2197 msgid "B<strerror_r>():"
2201 #: build/C/man3/strerror.3:66
2202 msgid "The XSI-compliant version is provided if:"
2206 #: build/C/man3/strerror.3:68
2208 "(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600) && !\\ "
2213 #: build/C/man3/strerror.3:70
2214 msgid "Otherwise, the GNU-specific version is provided."
2218 #: build/C/man3/strerror.3:95
2220 "The B<strerror>() function returns a pointer to a string that describes the "
2221 "error code passed in the argument I<errnum>, possibly using the "
2222 "B<LC_MESSAGES> part of the current locale to select the appropriate "
2223 "language. (For example, if I<errnum> is B<EINVAL>, the returned description "
2224 "will be \"Invalid argument\".) This string must not be modified by the "
2225 "application, but may be modified by a subsequent call to B<strerror>() or "
2226 "B<strerror_l>(). No other library function, including B<perror>(3), will "
2227 "modify this string."
2231 #: build/C/man3/strerror.3:95
2233 msgid "strerror_r()"
2237 #: build/C/man3/strerror.3:116
2239 "The B<strerror_r>() function is similar to B<strerror>(), but is thread "
2240 "safe. This function is available in two versions: an XSI-compliant version "
2241 "specified in POSIX.1-2001 (available since glibc 2.3.4, but not "
2242 "POSIX-compliant until glibc 2.13), and a GNU-specific version (available "
2243 "since glibc 2.0). The XSI-compliant version is provided with the feature "
2244 "test macros settings shown in the SYNOPSIS; otherwise the GNU-specific "
2245 "version is provided. If no feature test macros are explicitly defined, then "
2246 "(since glibc 2.4) B<_POSIX_SOURCE> is defined by default with the value "
2247 "200112L, so that the XSI-compliant version of B<strerror_r>() is provided "
2252 #: build/C/man3/strerror.3:124
2254 "The XSI-compliant B<strerror_r>() is preferred for portable applications. "
2255 "It returns the error string in the user-supplied buffer I<buf> of length "
2260 #: build/C/man3/strerror.3:145
2262 "The GNU-specific B<strerror_r>() returns a pointer to a string containing "
2263 "the error message. This may be either a pointer to a string that the "
2264 "function stores in I<buf>, or a pointer to some (immutable) static string "
2265 "(in which case I<buf> is unused). If the function stores a string in "
2266 "I<buf>, then at most I<buflen> bytes are stored (the string may be truncated "
2267 "if I<buflen> is too small and I<errnum> is unknown). The string always "
2268 "includes a terminating null byte (\\(aq\\e0\\(aq)."
2272 #: build/C/man3/strerror.3:145
2274 msgid "strerror_l()"
2278 #: build/C/man3/strerror.3:160
2280 "B<strerror_l>() is like B<strerror>(), but maps I<errnum> to a "
2281 "locale-dependent error message in the locale specified by I<locale>. The "
2282 "behavior of B<strerror_l>() is undefined if I<locale> is the special locale "
2283 "object B<LC_GLOBAL_LOCALE> or is not a valid locale object handle."
2287 #: build/C/man3/strerror.3:169
2289 "The B<strerror>(), B<strerror_l>(), and the GNU-specific B<strerror_r>() "
2290 "functions return the appropriate error description string, or an \"Unknown "
2291 "error nnn\" message if the error number is unknown."
2295 #: build/C/man3/strerror.3:178
2297 "The XSI-compliant B<strerror_r>() function returns 0 on success. On error, "
2298 "a (positive) error number is returned (since glibc 2.13), or -1 is returned "
2299 "and I<errno> is set to indicate the error (glibc versions before 2.13)."
2303 #: build/C/man3/strerror.3:193
2305 "POSIX.1-2001 and POSIX.1-2008 require that a successful call to "
2306 "B<strerror>() or B<strerror_l>() shall leave I<errno> unchanged, and note "
2307 "that, since no function return value is reserved to indicate an error, an "
2308 "application that wishes to check for errors should initialize I<errno> to "
2309 "zero before the call, and then check I<errno> after the call."
2313 #: build/C/man3/strerror.3:194
2319 #: build/C/man3/strerror.3:199
2320 msgid "The value of I<errnum> is not a valid error number."
2324 #: build/C/man3/strerror.3:199
2330 #: build/C/man3/strerror.3:202
2331 msgid "Insufficient storage was supplied to contain the error description string."
2335 #: build/C/man3/strerror.3:207
2336 msgid "The B<strerror>() function is not thread-safe."
2339 #. FIXME . Need a thread-safety statement about strerror_l()
2341 #: build/C/man3/strerror.3:212
2342 msgid "The B<strerror_r>() function is thread-safe."
2346 #: build/C/man3/strerror.3:216
2347 msgid "The B<strerror_l>() function first appeared in glibc 2.6."
2351 #: build/C/man3/strerror.3:221
2353 "B<strerror>() is specified by POSIX.1-2001, POSIX.1-2008, C89, and C99. "
2354 "B<strerror_r>() is specified by POSIX.1-2001 and POSIX.1-2008."
2358 #: build/C/man3/strerror.3:224
2359 msgid "B<strerror_l>() is specified in POSIX.1-2008."
2363 #: build/C/man3/strerror.3:228
2364 msgid "The GNU-specific B<strerror_r>() function is a nonstandard extension."
2367 #. e.g., Solaris 8, HP-UX 11
2368 #. e.g., FreeBSD 5.4, Tru64 5.1B
2370 #: build/C/man3/strerror.3:248
2372 "POSIX.1-2001 permits B<strerror>() to set I<errno> if the call encounters "
2373 "an error, but does not specify what value should be returned as the function "
2374 "result in the event of an error. On some systems, B<strerror>() returns "
2375 "NULL if the error number is unknown. On other systems, B<strerror>() "
2376 "returns a string something like \"Error nnn occurred\" and sets I<errno> to "
2377 "B<EINVAL> if the error number is unknown. C99 and POSIX.1-2008 require the "
2378 "return value to be non-NULL."
2382 #: build/C/man3/strerror.3:255
2384 "B<err>(3), B<errno>(3), B<error>(3), B<perror>(3), B<strsignal>(3), "
2389 #: build/C/man3/strfry.3:30
2395 #: build/C/man3/strfry.3:33
2396 msgid "strfry - randomize a string"
2400 #: build/C/man3/strfry.3:40
2402 msgid "B<char *strfry(char *>I<string>B<);>\n"
2406 #: build/C/man3/strfry.3:52
2408 "The B<strfry>() function randomizes the contents of I<string> by using "
2409 "B<rand>(3) to randomly swap characters in the string. The result is an "
2410 "anagram of I<string>."
2414 #: build/C/man3/strfry.3:57
2415 msgid "The B<strfry>() functions returns a pointer to the randomized string."
2419 #: build/C/man3/strfry.3:62
2420 msgid "The B<strfry>() function is unique to the GNU C Library."
2424 #: build/C/man3/strfry.3:65
2425 msgid "B<memfrob>(3), B<string>(3)"
2429 #: build/C/man3/string.3:30
2435 #: build/C/man3/string.3:30
2441 #: build/C/man3/string.3:36
2443 "stpcpy, strcasecmp, strcat, strchr, strcmp, strcoll, strcpy, strcspn, "
2444 "strdup, strfry, strlen, strncat, strncmp, strncpy, strncasecmp, strpbrk, "
2445 "strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex - string "
2450 #: build/C/man3/string.3:38
2451 msgid "B<#include E<lt>strings.hE<gt>>"
2455 #: build/C/man3/string.3:38
2457 msgid "B<int strcasecmp(const char *>I<s1>B<, const char *>I<s2>B<);>"
2461 #: build/C/man3/string.3:45
2462 msgid "Compare the strings I<s1> and I<s2> ignoring case."
2466 #: build/C/man3/string.3:45
2469 "B<int strncasecmp(const char *>I<s1>B<, const char *>I<s2>B<, size_t "
2474 #: build/C/man3/string.3:54
2476 "Compare the first I<n> characters of the strings I<s1> and I<s2> ignoring "
2481 #: build/C/man3/string.3:54
2483 msgid "B<char *index(const char *>I<s>B<, int >I<c>B<);>"
2487 #: build/C/man3/string.3:60 build/C/man3/string.3:90
2489 "Return a pointer to the first occurrence of the character I<c> in the string "
2494 #: build/C/man3/string.3:60
2496 msgid "B<char *rindex(const char *>I<s>B<, int >I<c>B<);>"
2500 #: build/C/man3/string.3:66 build/C/man3/string.3:171
2502 "Return a pointer to the last occurrence of the character I<c> in the string "
2507 #: build/C/man3/string.3:66
2509 msgid "B<#include E<lt>string.hE<gt>>"
2513 #: build/C/man3/string.3:68
2515 msgid "B<char *stpcpy(char *>I<dest>B<, const char *>I<src>B<);>"
2519 #: build/C/man3/string.3:76
2521 "Copy a string from I<src> to I<dest>, returning a pointer to the end of the "
2522 "resulting string at I<dest>."
2526 #: build/C/man3/string.3:76
2528 msgid "B<char *strcat(char *>I<dest>B<, const char *>I<src>B<);>"
2532 #: build/C/man3/string.3:84
2533 msgid "Append the string I<src> to the string I<dest>, returning a pointer I<dest>."
2537 #: build/C/man3/string.3:84
2539 msgid "B<char *strchr(const char *>I<s>B<, int >I<c>B<);>"
2543 #: build/C/man3/string.3:90
2545 msgid "B<int strcmp(const char *>I<s1>B<, const char *>I<s2>B<);>"
2549 #: build/C/man3/string.3:96
2550 msgid "Compare the strings I<s1> with I<s2>."
2554 #: build/C/man3/string.3:96
2556 msgid "B<int strcoll(const char *>I<s1>B<, const char *>I<s2>B<);>"
2560 #: build/C/man3/string.3:103
2561 msgid "Compare the strings I<s1> with I<s2> using the current locale."
2565 #: build/C/man3/string.3:103
2567 msgid "B<char *strcpy(char *>I<dest>B<, const char *>I<src>B<);>"
2571 #: build/C/man3/string.3:111
2573 "Copy the string I<src> to I<dest>, returning a pointer to the start of "
2578 #: build/C/man3/string.3:111
2580 msgid "B<size_t strcspn(const char *>I<s>B<, const char *>I<reject>B<);>"
2584 #: build/C/man3/string.3:117
2586 "Calculate the length of the initial segment of the string I<s> which does "
2587 "not contain any of bytes in the string I<reject>,"
2591 #: build/C/man3/string.3:117
2593 msgid "B<char *strdup(const char *>I<s>B<);>"
2597 #: build/C/man3/string.3:123
2599 "Return a duplicate of the string I<s> in memory allocated using "
2604 #: build/C/man3/string.3:123
2606 msgid "B<char *strfry(char *>I<string>B<);>"
2610 #: build/C/man3/string.3:127
2611 msgid "Randomly swap the characters in I<string>."
2615 #: build/C/man3/string.3:127
2617 msgid "B<size_t strlen(const char *>I<s>B<);>"
2621 #: build/C/man3/string.3:131
2622 msgid "Return the length of the string I<s>."
2626 #: build/C/man3/string.3:131
2628 msgid "B<char *strncat(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>"
2632 #: build/C/man3/string.3:141
2634 "Append at most I<n> characters from the string I<src> to the string I<dest>, "
2635 "returning a pointer to I<dest>."
2639 #: build/C/man3/string.3:141
2641 msgid "B<int strncmp(const char *>I<s1>B<, const char *>I<s2>B<, size_t >I<n>B<);>"
2645 #: build/C/man3/string.3:149
2646 msgid "Compare at most I<n> bytes of the strings I<s1> and I<s2>."
2650 #: build/C/man3/string.3:149
2652 msgid "B<char *strncpy(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>"
2656 #: build/C/man3/string.3:159
2658 "Copy at most I<n> bytes from string I<src> to I<dest>, returning a pointer "
2659 "to the start of I<dest>."
2663 #: build/C/man3/string.3:159
2665 msgid "B<char *strpbrk(const char *>I<s>B<, const char *>I<accept>B<);>"
2669 #: build/C/man3/string.3:165
2671 "Return a pointer to the first occurrence in the string I<s> of one of the "
2672 "bytes in the string I<accept>."
2676 #: build/C/man3/string.3:165
2678 msgid "B<char *strrchr(const char *>I<s>B<, int >I<c>B<);>"
2682 #: build/C/man3/string.3:171
2684 msgid "B<char *strsep(char **>I<stringp>B<, const char *>I<delim>B<);>"
2688 #: build/C/man3/string.3:177
2690 "Extract the initial token in I<stringp> that is delimited by one of the "
2691 "bytes in I<delim>."
2695 #: build/C/man3/string.3:177
2697 msgid "B<size_t strspn(const char *>I<s>B<, const char *>I<accept>B<);>"
2701 #: build/C/man3/string.3:183
2703 "Calculate the length of the starting segment in the string I<s> that "
2704 "consists entirely of bytes in I<accept>."
2708 #: build/C/man3/string.3:183
2710 msgid "B<char *strstr(const char *>I<haystack>B<, const char *>I<needle>B<);>"
2714 #: build/C/man3/string.3:190
2716 "Find the first occurrence of the substring I<needle> in the string "
2717 "I<haystack>, returning a pointer to the found substring."
2721 #: build/C/man3/string.3:190
2723 msgid "B<char *strtok(char *>I<s>B<, const char *>I<delim>B<);>"
2727 #: build/C/man3/string.3:196
2729 "Extract tokens from the string I<s> that are delimited by one of the bytes "
2734 #: build/C/man3/string.3:196
2736 msgid "B<size_t strxfrm(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>"
2740 #: build/C/man3/string.3:204
2742 "Transforms I<src> to the current locale and copies the first I<n> characters "
2747 #: build/C/man3/string.3:208
2749 "The string functions perform string operations on null-terminated strings. "
2750 "See the individual man pages for descriptions of each function."
2754 #: build/C/man3/string.3:233
2756 "B<index>(3), B<rindex>(3), B<stpcpy>(3), B<strcasecmp>(3), B<strcat>(3), "
2757 "B<strchr>(3), B<strcmp>(3), B<strcoll>(3), B<strcpy>(3), B<strcspn>(3), "
2758 "B<strdup>(3), B<strfry>(3), B<strlen>(3), B<strncasecmp>(3), B<strncat>(3), "
2759 "B<strncmp>(3), B<strncpy>(3), B<strpbrk>(3), B<strrchr>(3), B<strsep>(3), "
2760 "B<strspn>(3), B<strstr>(3), B<strtok>(3), B<strxfrm>(3)"
2764 #: build/C/man3/strlen.3:30
2770 #: build/C/man3/strlen.3:30 build/C/man3/strnlen.3:13 build/C/man3/strpbrk.3:30 build/C/man3/strsep.3:33
2776 #: build/C/man3/strlen.3:33
2777 msgid "strlen - calculate the length of a string"
2781 #: build/C/man3/strlen.3:38
2783 msgid "B<size_t strlen(const char *>I<s>B<);>\n"
2787 #: build/C/man3/strlen.3:45
2789 "The B<strlen>() function calculates the length of the string I<s>, "
2790 "excluding the terminating null byte (\\(aq\\e0\\(aq)."
2794 #: build/C/man3/strlen.3:50
2795 msgid "The B<strlen>() function returns the number of bytes in the string I<s>."
2799 #: build/C/man3/strlen.3:55
2800 msgid "The B<strlen>() function is thread-safe."
2804 #: build/C/man3/strlen.3:62
2805 msgid "B<string>(3), B<strnlen>(3), B<wcslen>(3), B<wcsnlen>(3)"
2809 #: build/C/man3/strnlen.3:13
2815 #: build/C/man3/strnlen.3:16
2816 msgid "strnlen - determine the length of a fixed-size string"
2820 #: build/C/man3/strnlen.3:21
2822 msgid "B<size_t strnlen(const char *>I<s>B<, size_t >I<maxlen>B<);>\n"
2826 #: build/C/man3/strnlen.3:29
2827 msgid "B<strnlen>():"
2831 #: build/C/man3/strnlen.3:58
2833 "The B<strnlen>() function returns the number of bytes in the string pointed "
2834 "to by I<s>, excluding the terminating null byte (\\(aq\\e0\\(aq), but at "
2835 "most I<maxlen>. In doing this, B<strnlen>() looks only at the first "
2836 "I<maxlen> bytes at I<s> and never beyond I<s+maxlen>."
2840 #: build/C/man3/strnlen.3:71
2842 "The B<strnlen>() function returns I<strlen(s)>, if that is less than "
2843 "I<maxlen>, or I<maxlen> if there is no null byte (\\(aq\\e0\\(aq) among the "
2844 "first I<maxlen> bytes pointed to by I<s>."
2848 #: build/C/man3/strnlen.3:76
2849 msgid "The B<strnlen>() function is thread-safe."
2853 #: build/C/man3/strnlen.3:78
2854 msgid "POSIX.1-2008."
2858 #: build/C/man3/strnlen.3:80
2859 msgid "B<strlen>(3)"
2863 #: build/C/man3/strpbrk.3:30
2869 #: build/C/man3/strpbrk.3:33
2870 msgid "strpbrk - search a string for any of a set of bytes"
2874 #: build/C/man3/strpbrk.3:38
2876 msgid "B<char *strpbrk(const char *>I<s>B<, const char *>I<accept>B<);>\n"
2880 #: build/C/man3/strpbrk.3:47
2882 "The B<strpbrk>() function locates the first occurrence in the string I<s> "
2883 "of any of the bytes in the string I<accept>."
2887 #: build/C/man3/strpbrk.3:56
2889 "The B<strpbrk>() function returns a pointer to the byte in I<s> that "
2890 "matches one of the bytes in I<accept>, or NULL if no such byte is found."
2894 #: build/C/man3/strpbrk.3:61
2895 msgid "The B<strpbrk>() function is thread-safe."
2899 #: build/C/man3/strpbrk.3:74
2901 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
2902 "B<strsep>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3), B<wcspbrk>(3)"
2906 #: build/C/man3/strsep.3:33
2912 #: build/C/man3/strsep.3:36
2913 msgid "strsep - extract token from string"
2917 #: build/C/man3/strsep.3:41
2919 msgid "B<char *strsep(char **>I<stringp>B<, const char *>I<delim>B<);>\n"
2923 #: build/C/man3/strsep.3:50
2924 msgid "B<strsep>(): _BSD_SOURCE"
2928 #: build/C/man3/strsep.3:73
2930 "If I<*stringp> is NULL, the B<strsep>() function returns NULL and does "
2931 "nothing else. Otherwise, this function finds the first token in the string "
2932 "I<*stringp>, that is delimited by one of the bytes in the string I<delim>. "
2933 "This token is terminated by overwriting the delimiter with a null byte "
2934 "(\\(aq\\e0\\(aq), and I<*stringp> is updated to point past the token. In "
2935 "case no delimiter was found, the token is taken to be the entire string "
2936 "I<*stringp>, and I<*stringp> is made NULL."
2940 #: build/C/man3/strsep.3:79
2942 "The B<strsep>() function returns a pointer to the token, that is, it "
2943 "returns the original value of I<*stringp>."
2947 #: build/C/man3/strsep.3:84
2948 msgid "The B<strsep>() function is thread-safe."
2952 #: build/C/man3/strsep.3:86
2957 #: build/C/man3/strsep.3:95
2959 "The B<strsep>() function was introduced as a replacement for B<strtok>(3), "
2960 "since the latter cannot handle empty fields. However, B<strtok>(3) "
2961 "conforms to C89/C99 and hence is more portable."
2965 #: build/C/man3/strsep.3:98
2966 msgid "Be cautious when using this function. If you do use it, note that:"
2970 #: build/C/man3/strsep.3:100
2971 msgid "This function modifies its first argument."
2975 #: build/C/man3/strsep.3:102
2976 msgid "This function cannot be used on constant strings."
2980 #: build/C/man3/strsep.3:104
2981 msgid "The identity of the delimiting character is lost."
2985 #: build/C/man3/strsep.3:114
2987 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
2988 "B<strpbrk>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3)"
2992 #: build/C/man3/strsignal.3:30
2998 #: build/C/man3/strsignal.3:30
3004 #: build/C/man3/strsignal.3:33
3005 msgid "strsignal - return string describing signal"
3009 #: build/C/man3/strsignal.3:38
3011 msgid "B<char *strsignal(int >I<sig>B<);>\n"
3015 #: build/C/man3/strsignal.3:40
3017 msgid "B<extern const char * const >I<sys_siglist>B<[];>\n"
3021 #: build/C/man3/strsignal.3:48
3022 msgid "B<strsignal>():"
3026 #: build/C/man3/strsignal.3:68
3028 "The B<strsignal>() function returns a string describing the signal number "
3029 "passed in the argument I<sig>. The string can be used only until the next "
3030 "call to B<strsignal>()."
3034 #: build/C/man3/strsignal.3:77
3036 "The array I<sys_siglist> holds the signal description strings indexed by "
3037 "signal number. The B<strsignal>() function should be used if possible "
3038 "instead of this array."
3042 #: build/C/man3/strsignal.3:84
3044 "The B<strsignal>() function returns the appropriate description string, or "
3045 "an unknown signal message if the signal number is invalid. On some systems "
3046 "(but not on Linux), NULL may instead be returned for an invalid signal "
3051 #: build/C/man3/strsignal.3:87
3052 msgid "POSIX.1-2008. Present on Solaris and the BSDs."
3056 #: build/C/man3/strsignal.3:90
3057 msgid "B<psignal>(3), B<strerror>(3)"
3061 #: build/C/man3/strspn.3:30
3067 #: build/C/man3/strspn.3:30
3073 #: build/C/man3/strspn.3:33
3074 msgid "strspn, strcspn - get length of a prefix substring"
3078 #: build/C/man3/strspn.3:38
3080 msgid "B<size_t strspn(const char *>I<s>B<, const char *>I<accept>B<);>\n"
3084 #: build/C/man3/strspn.3:40
3086 msgid "B<size_t strcspn(const char *>I<s>B<, const char *>I<reject>B<);>\n"
3090 #: build/C/man3/strspn.3:49
3092 "The B<strspn>() function calculates the length (in bytes) of the initial "
3093 "segment of I<s> which consists entirely of bytes in I<accept>."
3097 #: build/C/man3/strspn.3:57
3099 "The B<strcspn>() function calculates the length of the initial segment of "
3100 "I<s> which consists entirely of bytes not in I<reject>."
3104 #: build/C/man3/strspn.3:66
3106 "The B<strspn>() function returns the number of bytes in the initial segment "
3107 "of I<s> which consist only of bytes from I<accept>."
3111 #: build/C/man3/strspn.3:74
3113 "The B<strcspn>() function returns the number of bytes in the initial "
3114 "segment of I<s> which are not in the string I<reject>."
3118 #: build/C/man3/strspn.3:81
3119 msgid "The B<strspn>() and B<strcspn>() functions are thread-safe."
3123 #: build/C/man3/strspn.3:95
3125 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
3126 "B<strpbrk>(3), B<strsep>(3), B<strstr>(3), B<strtok>(3), B<wcscspn>(3), "
3131 #: build/C/man3/strstr.3:33
3137 #: build/C/man3/strstr.3:36
3138 msgid "strstr, strcasestr - locate a substring"
3142 #: build/C/man3/strstr.3:41
3144 msgid "B<char *strstr(const char *>I<haystack>B<, const char *>I<needle>B<);>\n"
3148 #: build/C/man3/strstr.3:47
3150 msgid "B<char *strcasestr(const char *>I<haystack>B<, const char *>I<needle>B<);>\n"
3154 #: build/C/man3/strstr.3:56
3156 "The B<strstr>() function finds the first occurrence of the substring "
3157 "I<needle> in the string I<haystack>. The terminating null bytes "
3158 "(\\(aq\\e0\\(aq) are not compared."
3162 #: build/C/man3/strstr.3:62
3164 "The B<strcasestr>() function is like B<strstr>(), but ignores the case of "
3169 #: build/C/man3/strstr.3:65
3171 "These functions return a pointer to the beginning of the located substring, "
3172 "or NULL if the substring is not found."
3176 #: build/C/man3/strstr.3:70
3177 msgid "The B<strstr>() function is thread-safe."
3181 #: build/C/man3/strstr.3:77
3183 "The B<strcasestr>() function is thread-safe with exceptions. It can be "
3184 "safely used in multithreaded applications, as long as B<setlocale>(3) is "
3185 "not called to change the locale during its execution."
3189 #. Early versions of Linux libc (like 4.5.26) would not allow
3194 #. Later versions (like 4.6.27) work correctly,
3201 #: build/C/man3/strstr.3:96
3203 "The B<strstr>() function conforms to C89 and C99. The B<strcasestr>() "
3204 "function is a nonstandard extension."
3208 #: build/C/man3/strstr.3:109
3210 "B<index>(3), B<memchr>(3), B<memmem>(3), B<rindex>(3), B<strcasecmp>(3), "
3211 "B<strchr>(3), B<string>(3), B<strpbrk>(3), B<strsep>(3), B<strspn>(3), "
3212 "B<strtok>(3), B<wcsstr>(3)"
3216 #: build/C/man3/strtok.3:32
3222 #: build/C/man3/strtok.3:32
3228 #: build/C/man3/strtok.3:35
3229 msgid "strtok, strtok_r - extract tokens from strings"
3233 #: build/C/man3/strtok.3:40
3235 msgid "B<char *strtok(char *>I<str>B<, const char *>I<delim>B<);>\n"
3239 #: build/C/man3/strtok.3:42
3242 "B<char *strtok_r(char *>I<str>B<, const char *>I<delim>B<, char "
3243 "**>I<saveptr>B<);>\n"
3247 #: build/C/man3/strtok.3:53
3249 "B<strtok_r>(): _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 1 "
3250 "|| _XOPEN_SOURCE || _POSIX_SOURCE"
3254 #: build/C/man3/strtok.3:66
3256 "The B<strtok>() function breaks a string into a sequence of zero or more "
3257 "nonempty tokens. On the first call to B<strtok>() the string to be parsed "
3258 "should be specified in I<str>. In each subsequent call that should parse "
3259 "the same string, I<str> must be NULL."
3263 #: build/C/man3/strtok.3:75
3265 "The I<delim> argument specifies a set of bytes that delimit the tokens in "
3266 "the parsed string. The caller may specify different strings in I<delim> in "
3267 "successive calls that parse the same string."
3271 #: build/C/man3/strtok.3:84
3273 "Each call to B<strtok>() returns a pointer to a null-terminated string "
3274 "containing the next token. This string does not include the delimiting "
3275 "byte. If no more tokens are found, B<strtok>() returns NULL."
3279 #: build/C/man3/strtok.3:104
3281 "A sequence of calls to B<strtok>() that operate on the same string "
3282 "maintains a pointer that determines the point from which to start searching "
3283 "for the next token. The first call to B<strtok>() sets this pointer to "
3284 "point to the first byte of the string. The start of the next token is "
3285 "determined by scanning forward for the next nondelimiter byte in I<str>. If "
3286 "such a byte is found, it is taken as the start of the next token. If no "
3287 "such byte is found, then there are no more tokens, and B<strtok>() returns "
3288 "NULL. (A string that is empty or that contains only delimiters will thus "
3289 "cause B<strtok>() to return NULL on the first call.)"
3293 #: build/C/man3/strtok.3:117
3295 "The end of each token is found by scanning forward until either the next "
3296 "delimiter byte is found or until the terminating null byte (\\(aq\\e0\\(aq) "
3297 "is encountered. If a delimiter byte is found, it is overwritten with a null "
3298 "byte to terminate the current token, and B<strtok>() saves a pointer to the "
3299 "following byte; that pointer will be used as the starting point when "
3300 "searching for the next token. In this case, B<strtok>() returns a pointer "
3301 "to the start of the found token."
3305 #: build/C/man3/strtok.3:131
3307 "From the above description, it follows that a sequence of two or more "
3308 "contiguous delimiter bytes in the parsed string is considered to be a single "
3309 "delimiter, and that delimiter bytes at the start or end of the string are "
3310 "ignored. Put another way: the tokens returned by B<strtok>() are always "
3311 "nonempty strings. Thus, for example, given the string \"I<aaa;;bbb,>\", "
3312 "successive calls to B<strtok>() that specify the delimiter string \"I<;,>\" "
3313 "would return the strings \"I<aaa>\" and \"I<bbb>\", and then a null pointer."
3317 #: build/C/man3/strtok.3:144
3319 "The B<strtok_r>() function is a reentrant version B<strtok>(). The "
3320 "I<saveptr> argument is a pointer to a I<char\\ *> variable that is used "
3321 "internally by B<strtok_r>() in order to maintain context between successive "
3322 "calls that parse the same string."
3326 #: build/C/man3/strtok.3:156
3328 "On the first call to B<strtok_r>(), I<str> should point to the string to be "
3329 "parsed, and the value of I<saveptr> is ignored. In subsequent calls, I<str> "
3330 "should be NULL, and I<saveptr> should be unchanged since the previous call."
3334 #: build/C/man3/strtok.3:162
3336 "Different strings may be parsed concurrently using sequences of calls to "
3337 "B<strtok_r>() that specify different I<saveptr> arguments."
3341 #: build/C/man3/strtok.3:169
3343 "The B<strtok>() and B<strtok_r>() functions return a pointer to the next "
3344 "token, or NULL if there are no more tokens."
3348 #: build/C/man3/strtok.3:174
3349 msgid "The B<strtok>() function is not thread-safe."
3353 #: build/C/man3/strtok.3:178
3354 msgid "The B<strtok_r>() function is thread-safe."
3358 #: build/C/man3/strtok.3:179
3364 #: build/C/man3/strtok.3:182
3365 msgid "SVr4, POSIX.1-2001, 4.3BSD, C89, C99."
3369 #: build/C/man3/strtok.3:182
3371 msgid "B<strtok_r>()"
3375 #: build/C/man3/strtok.3:185
3376 msgid "POSIX.1-2001."
3380 #: build/C/man3/strtok.3:188
3381 msgid "Be cautious when using these functions. If you do use them, note that:"
3385 #: build/C/man3/strtok.3:190
3386 msgid "These functions modify their first argument."
3390 #: build/C/man3/strtok.3:192
3391 msgid "These functions cannot be used on constant strings."
3395 #: build/C/man3/strtok.3:194
3396 msgid "The identity of the delimiting byte is lost."
3400 #: build/C/man3/strtok.3:201
3402 "The B<strtok>() function uses a static buffer while parsing, so it's not "
3403 "thread safe. Use B<strtok_r>() if this matters to you."
3407 #: build/C/man3/strtok.3:210
3409 "The program below uses nested loops that employ B<strtok_r>() to break a "
3410 "string into a two-level hierarchy of tokens. The first command-line "
3411 "argument specifies the string to be parsed. The second argument specifies "
3412 "the delimiter byte(s) to be used to separate that string into \"major\" "
3413 "tokens. The third argument specifies the delimiter byte(s) to be used to "
3414 "separate the \"major\" tokens into subtokens."
3418 #: build/C/man3/strtok.3:212
3419 msgid "An example of the output produced by this program is the following:"
3423 #: build/C/man3/strtok.3:224
3426 "$B< ./a.out \\(aqa/bbb///cc;xxx:yyy:\\(aq \\(aq:;\\(aq \\(aq/\\(aq>\n"
3438 #: build/C/man3/strtok.3:226
3440 msgid "Program source"
3444 #: build/C/man3/strtok.3:232
3447 "#include E<lt>stdio.hE<gt>\n"
3448 "#include E<lt>stdlib.hE<gt>\n"
3449 "#include E<lt>string.hE<gt>\n"
3453 #: build/C/man3/strtok.3:239
3457 "main(int argc, char *argv[])\n"
3459 " char *str1, *str2, *token, *subtoken;\n"
3460 " char *saveptr1, *saveptr2;\n"
3465 #: build/C/man3/strtok.3:245
3468 " if (argc != 4) {\n"
3469 " fprintf(stderr, \"Usage: %s string delim subdelim\\en\",\n"
3471 " exit(EXIT_FAILURE);\n"
3476 #: build/C/man3/strtok.3:251
3479 " for (j = 1, str1 = argv[1]; ; j++, str1 = NULL) {\n"
3480 " token = strtok_r(str1, argv[2], &saveptr1);\n"
3481 " if (token == NULL)\n"
3483 " printf(\"%d: %s\\en\", j, token);\n"
3487 #: build/C/man3/strtok.3:259
3490 " for (str2 = token; ; str2 = NULL) {\n"
3491 " subtoken = strtok_r(str2, argv[3], &saveptr2);\n"
3492 " if (subtoken == NULL)\n"
3494 " printf(\"\\t --E<gt> %s\\en\", subtoken);\n"
3500 #: build/C/man3/strtok.3:262
3503 " exit(EXIT_SUCCESS);\n"
3508 #: build/C/man3/strtok.3:268
3510 "Another example program using B<strtok>() can be found in "
3511 "B<getaddrinfo_a>(3)."
3515 #: build/C/man3/strtok.3:279
3517 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
3518 "B<strpbrk>(3), B<strsep>(3), B<strspn>(3), B<strstr>(3), B<wcstok>(3)"
3522 #: build/C/man3/strverscmp.3:25
3528 #: build/C/man3/strverscmp.3:25
3534 #: build/C/man3/strverscmp.3:28
3535 msgid "strverscmp - compare two version strings"
3539 #: build/C/man3/strverscmp.3:35
3541 msgid "B<int strverscmp(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
3544 #. classical solution: "rename jan jan0 jan?"
3546 #: build/C/man3/strverscmp.3:52
3548 "Often one has files I<jan1>, I<jan2>, ..., I<jan9>, I<jan10>, ... and it "
3549 "feels wrong when B<ls>(1) orders them I<jan1>, I<jan10>, ..., I<jan2>, ..., "
3550 "I<jan9>. In order to rectify this, GNU introduced the I<-v> option to "
3551 "B<ls>(1), which is implemented using B<versionsort>(3), which again uses "
3556 #: build/C/man3/strverscmp.3:63
3558 "Thus, the task of B<strverscmp>() is to compare two strings and find the "
3559 "\"right\" order, while B<strcmp>(3) finds only the lexicographic order. "
3560 "This function does not use the locale category B<LC_COLLATE>, so is meant "
3561 "mostly for situations where the strings are expected to be in ASCII."
3565 #: build/C/man3/strverscmp.3:81
3567 "What this function does is the following. If both strings are equal, return "
3568 "0. Otherwise, find the position between two bytes with the property that "
3569 "before it both strings are equal, while directly after it there is a "
3570 "difference. Find the largest consecutive digit strings containing (or "
3571 "starting at, or ending at) this position. If one or both of these is empty, "
3572 "then return what B<strcmp>(3) would have returned (numerical ordering of "
3573 "byte values). Otherwise, compare both digit strings numerically, where "
3574 "digit strings with one or more leading zeros are interpreted as if they have "
3575 "a decimal point in front (so that in particular digit strings with more "
3576 "leading zeros come before digit strings with fewer leading zeros). Thus, "
3577 "the ordering is I<000>, I<00>, I<01>, I<010>, I<09>, I<0>, I<1>, I<9>, "
3582 #: build/C/man3/strverscmp.3:90
3584 "The B<strverscmp>() function returns an integer less than, equal to, or "
3585 "greater than zero if I<s1> is found, respectively, to be earlier than, equal "
3586 "to, or later than I<s2>."
3590 #: build/C/man3/strverscmp.3:97
3591 msgid "B<rename>(1), B<strcasecmp>(3), B<strcmp>(3), B<strcoll>(3)"
3595 #: build/C/man3/strxfrm.3:30
3601 #: build/C/man3/strxfrm.3:30
3607 #: build/C/man3/strxfrm.3:33
3608 msgid "strxfrm - string transformation"
3612 #: build/C/man3/strxfrm.3:38
3615 "B<size_t strxfrm(char *>I<dest>B<, const char *>I<src>B<, size_t "
3620 #: build/C/man3/strxfrm.3:62
3622 "The B<strxfrm>() function transforms the I<src> string into a form such "
3623 "that the result of B<strcmp>(3) on two strings that have been transformed "
3624 "with B<strxfrm>() is the same as the result of B<strcoll>(3) on the two "
3625 "strings before their transformation. The first I<n> bytes of the "
3626 "transformed string are placed in I<dest>. The transformation is based on "
3627 "the program's current locale for category B<LC_COLLATE>. (See "
3632 #: build/C/man3/strxfrm.3:76
3634 "The B<strxfrm>() function returns the number of bytes required to store the "
3635 "transformed string in I<dest> excluding the terminating null byte "
3636 "(\\(aq\\e0\\(aq). If the value returned is I<n> or more, the contents of "
3637 "I<dest> are indeterminate."
3641 #: build/C/man3/strxfrm.3:88
3643 "In the I<POSIX> or I<C> locales B<strxfrm>() is equivalent to copying the "
3644 "string with B<strncpy>(3)."
3648 #: build/C/man3/strxfrm.3:96
3650 "B<bcmp>(3), B<memcmp>(3), B<setlocale>(3), B<strcasecmp>(3), B<strcmp>(3), "
3651 "B<strcoll>(3), B<string>(3)"