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: 2013-03-22 01:07+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 build/C/man3/bzero.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:30 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:31 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:33 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 build/C/man3/string.3:39
63 msgid "B<#include E<lt>strings.hE<gt>>\n"
67 #: build/C/man3/bcmp.3:39
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:67 build/C/man3/strfry.3:41 build/C/man3/string.3:90 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:52 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:47 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:47 build/C/man3/memmove.3:53 build/C/man3/mempcpy.3:53 build/C/man3/memset.3:44 build/C/man3/stpcpy.3:61 build/C/man3/stpncpy.3:61 build/C/man3/strcasecmp.3:54 build/C/man3/strcat.3:97 build/C/man3/strchr.3:81 build/C/man3/strcmp.3:56 build/C/man3/strcoll.3:51 build/C/man3/strcpy.3:97 build/C/man3/strdup.3:104 build/C/man3/strerror.3:136 build/C/man3/strfry.3:49 build/C/man3/strlen.3:44 build/C/man3/strnlen.3:51 build/C/man3/strpbrk.3:44 build/C/man3/strsep.3:63 build/C/man3/strsignal.3:75 build/C/man3/strspn.3:53 build/C/man3/strstr.3:60 build/C/man3/strtok.3:106 build/C/man3/strverscmp.3:81 build/C/man3/strxfrm.3:56
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:53 build/C/man3/memchr.3:124 build/C/man3/memcmp.3:60 build/C/man3/memcpy.3:52 build/C/man3/memfrob.3:58 build/C/man3/memmem.3:52 build/C/man3/memmove.3:57 build/C/man3/mempcpy.3:58 build/C/man3/memset.3:49 build/C/man3/stpcpy.3:66 build/C/man3/stpncpy.3:66 build/C/man3/strcasecmp.3:63 build/C/man3/strcat.3:103 build/C/man3/strchr.3:104 build/C/man3/strcmp.3:65 build/C/man3/strcoll.3:58 build/C/man3/strcpy.3:104 build/C/man3/strdup.3:113 build/C/man3/strerror.3:175 build/C/man3/strfry.3:54 build/C/man3/strlen.3:48 build/C/man3/strnlen.3:58 build/C/man3/strpbrk.3:50 build/C/man3/strsep.3:68 build/C/man3/strsignal.3:82 build/C/man3/strspn.3:65 build/C/man3/strstr.3:63 build/C/man3/strtok.3:113 build/C/man3/strverscmp.3:88 build/C/man3/strxfrm.3:64
102 msgid "CONFORMING TO"
106 #: build/C/man3/bcmp.3:68
108 "4.3BSD. This function is deprecated (marked as LEGACY in POSIX.1-2001): use "
109 "B<memcmp>(3) in new programs. POSIX.1-2008 removes the specification of "
114 #: build/C/man3/bcmp.3:68 build/C/man3/bcopy.3:68 build/C/man3/bstring.3:82 build/C/man3/bzero.3:57 build/C/man3/ffs.3:103 build/C/man3/index.3:73 build/C/man3/memccpy.3:55 build/C/man3/memchr.3:136 build/C/man3/memcmp.3:62 build/C/man3/memcpy.3:54 build/C/man3/memfrob.3:63 build/C/man3/memmem.3:65 build/C/man3/memmove.3:59 build/C/man3/mempcpy.3:71 build/C/man3/memset.3:51 build/C/man3/stpcpy.3:99 build/C/man3/stpncpy.3:68 build/C/man3/strcasecmp.3:65 build/C/man3/strcat.3:142 build/C/man3/strchr.3:111 build/C/man3/strcmp.3:67 build/C/man3/strcoll.3:65 build/C/man3/strcpy.3:194 build/C/man3/strdup.3:123 build/C/man3/strerror.3:204 build/C/man3/strfry.3:59 build/C/man3/string.3:94 build/C/man3/strlen.3:50 build/C/man3/strnlen.3:60 build/C/man3/strpbrk.3:52 build/C/man3/strsep.3:88 build/C/man3/strsignal.3:85 build/C/man3/strspn.3:67 build/C/man3/strstr.3:76 build/C/man3/strtok.3:203 build/C/man3/strverscmp.3:90 build/C/man3/strxfrm.3:72
120 #: build/C/man3/bcmp.3:75
122 "B<memcmp>(3), B<strcasecmp>(3), B<strcmp>(3), B<strcoll>(3), "
123 "B<strncasecmp>(3), B<strncmp>(3)"
127 #: build/C/man3/bcmp.3:75 build/C/man3/bcopy.3:74 build/C/man3/bstring.3:94 build/C/man3/bzero.3:60 build/C/man3/ffs.3:105 build/C/man3/index.3:83 build/C/man3/memccpy.3:61 build/C/man3/memchr.3:147 build/C/man3/memcmp.3:70 build/C/man3/memcpy.3:62 build/C/man3/memfrob.3:65 build/C/man3/memmem.3:67 build/C/man3/memmove.3:66 build/C/man3/mempcpy.3:76 build/C/man3/memset.3:55 build/C/man3/stpcpy.3:108 build/C/man3/stpncpy.3:71 build/C/man3/strcasecmp.3:74 build/C/man3/strcat.3:151 build/C/man3/strchr.3:124 build/C/man3/strcmp.3:77 build/C/man3/strcoll.3:73 build/C/man3/strcpy.3:205 build/C/man3/strdup.3:131 build/C/man3/strerror.3:210 build/C/man3/strfry.3:62 build/C/man3/string.3:119 build/C/man3/strlen.3:55 build/C/man3/strnlen.3:62 build/C/man3/strpbrk.3:63 build/C/man3/strsep.3:98 build/C/man3/strsignal.3:88 build/C/man3/strspn.3:79 build/C/man3/strstr.3:88 build/C/man3/strtok.3:214 build/C/man3/strverscmp.3:95 build/C/man3/strxfrm.3:80
133 #: build/C/man3/bcmp.3:82 build/C/man3/bcopy.3:81 build/C/man3/bstring.3:101 build/C/man3/bzero.3:67 build/C/man3/ffs.3:112 build/C/man3/index.3:90 build/C/man3/memccpy.3:68 build/C/man3/memchr.3:154 build/C/man3/memcmp.3:77 build/C/man3/memcpy.3:69 build/C/man3/memfrob.3:72 build/C/man3/memmem.3:74 build/C/man3/memmove.3:73 build/C/man3/mempcpy.3:83 build/C/man3/memset.3:62 build/C/man3/stpcpy.3:115 build/C/man3/stpncpy.3:78 build/C/man3/strcasecmp.3:81 build/C/man3/strcat.3:158 build/C/man3/strchr.3:131 build/C/man3/strcmp.3:84 build/C/man3/strcoll.3:80 build/C/man3/strcpy.3:212 build/C/man3/strdup.3:138 build/C/man3/strerror.3:217 build/C/man3/strfry.3:69 build/C/man3/string.3:126 build/C/man3/strlen.3:62 build/C/man3/strnlen.3:69 build/C/man3/strpbrk.3:70 build/C/man3/strsep.3:105 build/C/man3/strsignal.3:95 build/C/man3/strspn.3:86 build/C/man3/strstr.3:95 build/C/man3/strtok.3:221 build/C/man3/strverscmp.3:102 build/C/man3/strxfrm.3:87
135 "This page is part of release 3.50 of the Linux I<man-pages> project. A "
136 "description of the project, and information about reporting bugs, can be "
137 "found at http://www.kernel.org/doc/man-pages/."
141 #: build/C/man3/bcopy.3:33
147 #: build/C/man3/bcopy.3:33
153 #: build/C/man3/bcopy.3:36
154 msgid "bcopy - copy byte sequence"
158 #: build/C/man3/bcopy.3:41
160 msgid "B<void bcopy(const void *>I<src>B<, void *>I<dest>B<, size_t >I<n>B<);>\n"
164 #: build/C/man3/bcopy.3:52
166 "The B<bcopy>() function copies I<n> bytes from I<src> to I<dest>. The "
167 "result is correct, even when both areas overlap."
171 #: build/C/man3/bcopy.3:54 build/C/man3/bzero.3:50
176 #: build/C/man3/bcopy.3:68
178 "4.3BSD. This function is deprecated (marked as LEGACY in POSIX.1-2001): use "
179 "B<memcpy>(3) or B<memmove>(3) in new programs. Note that the first two "
180 "arguments are interchanged for B<memcpy>(3) and B<memmove>(3). "
181 "POSIX.1-2008 removes the specification of B<bcopy>()."
185 #: build/C/man3/bcopy.3:74
186 msgid "B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<strcpy>(3), B<strncpy>(3)"
190 #: build/C/man3/bstring.3:32
196 #: build/C/man3/bstring.3:32
202 #: build/C/man3/bstring.3:36
204 "bcmp, bcopy, bzero, memccpy, memchr, memcmp, memcpy, memfrob, memmem, "
205 "memmove, memset - byte string operations"
209 #: 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/string.3:49 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:36 build/C/man3/strverscmp.3:33 build/C/man3/strxfrm.3:36
211 msgid "B<#include E<lt>string.hE<gt>>\n"
215 #: build/C/man3/bstring.3:41
217 msgid "B<int bcmp(const void *>I<s1>B<, const void *>I<s2>B<, int >I<n>B<);>\n"
221 #: build/C/man3/bstring.3:43
223 msgid "B<void bcopy(const void *>I<src>B<, void *>I<dest>B<, int >I<n>B<);>\n"
227 #: build/C/man3/bstring.3:45
229 msgid "B<void bzero(void *>I<s>B<, int >I<n>B<);>\n"
233 #: build/C/man3/bstring.3:47 build/C/man3/memccpy.3:38
236 "B<void *memccpy(void *>I<dest>B<, const void *>I<src>B<, int >I<c>B<, size_t "
241 #: build/C/man3/bstring.3:49 build/C/man3/memchr.3:40
243 msgid "B<void *memchr(const void *>I<s>B<, int >I<c>B<, size_t >I<n>B<);>\n"
247 #: build/C/man3/bstring.3:51 build/C/man3/memcmp.3:38
249 msgid "B<int memcmp(const void *>I<s1>B<, const void *>I<s2>B<, size_t >I<n>B<);>\n"
253 #: build/C/man3/bstring.3:53 build/C/man3/memcpy.3:38
255 msgid "B<void *memcpy(void *>I<dest>B<, const void *>I<src>B<, size_t >I<n>B<);>\n"
259 #: build/C/man3/bstring.3:55 build/C/man3/memfrob.3:39
261 msgid "B<void *memfrob(void *>I<s>B<, size_t >I<n>B<);>\n"
265 #: build/C/man3/bstring.3:58
268 "B<void *memmem(const void *>I<needle>B<, size_t >I<needlelen>B<,>\n"
269 "B< const void *>I<haystack>B<, size_t >I<haystacklen>B<);>\n"
273 #: build/C/man3/bstring.3:60 build/C/man3/memmove.3:38
275 msgid "B<void *memmove(void *>I<dest>B<, const void *>I<src>B<, size_t >I<n>B<);>\n"
279 #: build/C/man3/bstring.3:62 build/C/man3/memset.3:38
281 msgid "B<void *memset(void *>I<s>B<, int >I<c>B<, size_t >I<n>B<);>\n"
285 #: build/C/man3/bstring.3:68
287 "The byte string functions perform operations on strings (byte arrays) that "
288 "are not necessarily null-terminated. See the individual man pages for "
289 "descriptions of each function."
293 #: build/C/man3/bstring.3:68 build/C/man3/ffs.3:100 build/C/man3/strcat.3:105 build/C/man3/strcoll.3:60 build/C/man3/strcpy.3:106 build/C/man3/strsep.3:70 build/C/man3/strxfrm.3:66
298 #. The old functions are not even available on some non-GNU/Linux systems.
300 #: build/C/man3/bstring.3:82
302 "The functions B<bcmp>(), B<bcopy>() and B<bzero>() are obsolete. Use "
303 "B<memcmp>(), B<memcpy>() and B<memset>() instead."
307 #: build/C/man3/bstring.3:94
309 "B<bcmp>(3), B<bcopy>(3), B<bzero>(3), B<memccpy>(3), B<memchr>(3), "
310 "B<memcmp>(3), B<memcpy>(3), B<memfrob>(3), B<memmem>(3), B<memmove>(3), "
315 #: build/C/man3/bzero.3:31
321 #: build/C/man3/bzero.3:34
322 msgid "bzero - write zero-valued bytes"
326 #: build/C/man3/bzero.3:39
328 msgid "B<void bzero(void *>I<s>B<, size_t >I<n>B<);>\n"
332 #: build/C/man3/bzero.3:48
334 "The B<bzero>() function sets the first I<n> bytes of the area starting at "
335 "I<s> to zero (bytes containing \\(aq\\e0\\(aq)."
339 #: build/C/man3/bzero.3:57
341 "4.3BSD. This function is deprecated (marked as LEGACY in POSIX.1-2001): use "
342 "B<memset>(3) in new programs. POSIX.1-2008 removes the specification of "
347 #: build/C/man3/bzero.3:60
348 msgid "B<memset>(3), B<swab>(3)"
352 #: build/C/man3/ffs.3:33
358 #: build/C/man3/ffs.3:33 build/C/man3/strcoll.3:30 build/C/man3/strfry.3:30
364 #: 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:30 build/C/man3/strverscmp.3:25 build/C/man3/strxfrm.3:30
370 #: build/C/man3/ffs.3:36
371 msgid "ffs, ffsl, ffsll - find first bit set in a word"
375 #: build/C/man3/ffs.3:41
377 msgid "B<int ffs(int >I<i>B<);>\n"
381 #: build/C/man3/ffs.3:45
383 msgid "B<int ffsl(long int >I<i>B<);>\n"
387 #: build/C/man3/ffs.3:47
389 msgid "B<int ffsll(long long int >I<i>B<);>\n"
393 #: 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:58 build/C/man3/strnlen.3:26 build/C/man3/strsep.3:46 build/C/man3/strsignal.3:45 build/C/man3/strtok.3:45
394 msgid "Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
398 #: build/C/man3/ffs.3:57
403 #: build/C/man3/ffs.3:58
405 msgid "Since glibc 2.12:"
409 #: build/C/man3/ffs.3:62
411 "_SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L || "
412 "_XOPEN_SOURCE\\ E<gt>=\\ 700 ||"
416 #: build/C/man3/ffs.3:62
418 msgid "Before glibc 2.12:"
422 #: build/C/man3/ffs.3:65
427 #: build/C/man3/ffs.3:69
428 msgid "B<ffsl>(), B<ffsll>():"
432 #: 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
437 #: build/C/man3/ffs.3:87
439 "The B<ffs>() function returns the position of the first (least significant) "
440 "bit set in the word I<i>. The least significant bit is position 1 and the "
441 "most significant position is, for example, 32 or 64. The functions "
442 "B<ffsll>() and B<ffsl>() do the same but take arguments of possibly "
447 #: build/C/man3/ffs.3:91
449 "These functions return the position of the first bit set, or 0 if no bits "
454 #: build/C/man3/ffs.3:94
455 msgid "B<ffs>(): 4.3BSD, POSIX.1-2001."
459 #: build/C/man3/ffs.3:100
460 msgid "The B<ffsl>() and B<ffsll>() functions are glibc extensions."
464 #: build/C/man3/ffs.3:103
465 msgid "BSD systems have a prototype in I<E<lt>string.hE<gt>>."
469 #: build/C/man3/ffs.3:105
474 #: build/C/man3/index.3:31
480 #: build/C/man3/index.3:31
486 #: build/C/man3/index.3:34
487 msgid "index, rindex - locate character in string"
491 #: build/C/man3/index.3:39 build/C/man3/string.3:45
493 msgid "B<char *index(const char *>I<s>B<, int >I<c>B<);>\n"
497 #: build/C/man3/index.3:41 build/C/man3/string.3:47
499 msgid "B<char *rindex(const char *>I<s>B<, int >I<c>B<);>\n"
503 #: build/C/man3/index.3:47
505 "The B<index>() function returns a pointer to the first occurrence of the "
506 "character I<c> in the string I<s>."
510 #: build/C/man3/index.3:52
512 "The B<rindex>() function returns a pointer to the last occurrence of the "
513 "character I<c> in the string I<s>."
517 #: build/C/man3/index.3:55
519 "The terminating null byte (\\(aq\\e0\\(aq) is considered to be a part of the "
524 #: build/C/man3/index.3:62
526 "The B<index>() and B<rindex>() functions return a pointer to the matched "
527 "character or NULL if the character is not found."
531 #: build/C/man3/index.3:73
533 "4.3BSD; marked as LEGACY in POSIX.1-2001. POSIX.1-2008 removes the "
534 "specifications of B<index>() and B<rindex>(), recommending B<strchr>(3) "
535 "and B<strrchr>(3) instead."
539 #: build/C/man3/index.3:83
541 "B<memchr>(3), B<strchr>(3), B<string>(3), B<strpbrk>(3), B<strrchr>(3), "
542 "B<strsep>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3)"
546 #: build/C/man3/memccpy.3:30
552 #: build/C/man3/memccpy.3:30
558 #: build/C/man3/memccpy.3:33
559 msgid "memccpy - copy memory area"
563 #: build/C/man3/memccpy.3:45
565 "The B<memccpy>() function copies no more than I<n> bytes from memory area "
566 "I<src> to memory area I<dest>, stopping when the character I<c> is found."
570 #: build/C/man3/memccpy.3:47
571 msgid "If the memory areas overlap, the results are undefined."
575 #: build/C/man3/memccpy.3:53
577 "The B<memccpy>() function returns a pointer to the next character in "
578 "I<dest> after I<c>, or NULL if I<c> was not found in the first I<n> "
579 "characters of I<src>."
583 #: build/C/man3/memccpy.3:55
584 msgid "SVr4, 4.3BSD, POSIX.1-2001."
588 #: build/C/man3/memccpy.3:61
589 msgid "B<bcopy>(3), B<memcpy>(3), B<memmove>(3), B<strcpy>(3), B<strncpy>(3)"
593 #: build/C/man3/memchr.3:32
599 #: build/C/man3/memchr.3:32
605 #: build/C/man3/memchr.3:35
606 msgid "memchr, memrchr, rawmemchr - scan memory for a character"
610 #: build/C/man3/memchr.3:42
612 msgid "B<void *memrchr(const void *>I<s>B<, int >I<c>B<, size_t >I<n>B<);>\n"
616 #: build/C/man3/memchr.3:44
618 msgid "B<void *rawmemchr(const void *>I<s>B<, int >I<c>B<);>\n"
622 #: build/C/man3/memchr.3:54
623 msgid "B<memrchr>(), B<rawmemchr>(): _GNU_SOURCE"
627 #: build/C/man3/memchr.3:70
629 "The B<memchr>() function scans the initial I<n> bytes of the memory area "
630 "pointed to by I<s> for the first instance of I<c>. Both I<c> and the bytes "
631 "of the memory area pointed to by I<s> are interpreted as I<unsigned char>."
635 #: build/C/man3/memchr.3:81
637 "The B<memrchr>() function is like the B<memchr>() function, except that it "
638 "searches backward from the end of the I<n> bytes pointed to by I<s> instead "
639 "of forward from the beginning."
643 #: build/C/man3/memchr.3:99
645 "The B<rawmemchr>() function is similar to B<memchr>(): it assumes (i.e., "
646 "the programmer knows for certain) that an instance of I<c> lies somewhere "
647 "in the memory area starting at the location pointed to by I<s>, and so "
648 "performs an optimized search for I<c> (i.e., no use of a count argument to "
649 "limit the range of the search). If an instance of I<c> is not found, the "
650 "results are unpredictable. The following call is a fast means of locating a "
651 "string's terminating null byte:"
655 #: build/C/man3/memchr.3:103
657 msgid "char *p = rawmemchr(s,\\ \\(aq\\e0\\(aq);\n"
661 #: build/C/man3/memchr.3:113
663 "The B<memchr>() and B<memrchr>() functions return a pointer to the "
664 "matching byte or NULL if the character does not occur in the given memory "
669 #: build/C/man3/memchr.3:118
671 "The B<rawmemchr>() function returns a pointer to the matching byte, if one "
672 "is found. If no matching byte is found, the result is unspecified."
676 #: build/C/man3/memchr.3:118 build/C/man3/mempcpy.3:55 build/C/man3/strchr.3:101
682 #: build/C/man3/memchr.3:121
683 msgid "B<rawmemchr>() first appeared in glibc in version 2.1."
687 #: build/C/man3/memchr.3:124
688 msgid "B<memrchr>() first appeared in glibc in version 2.2."
692 #: build/C/man3/memchr.3:128
693 msgid "The B<memchr>() function conforms to SVr4, 4.3BSD, C89, C99, POSIX.1-2001."
697 #: build/C/man3/memchr.3:132
698 msgid "The B<memrchr>() function is a GNU extension, available since glibc 2.1.91."
702 #: build/C/man3/memchr.3:136
703 msgid "The B<rawmemchr>() function is a GNU extension, available since glibc 2.1."
707 #: build/C/man3/memchr.3:147
709 "B<ffs>(3), B<index>(3), B<rindex>(3), B<strchr>(3), B<strpbrk>(3), "
710 "B<strrchr>(3), B<strsep>(3), B<strspn>(3), B<strstr>(3), B<wmemchr>(3)"
714 #: build/C/man3/memcmp.3:30
720 #: build/C/man3/memcmp.3:30 build/C/man3/strcmp.3:32
726 #: build/C/man3/memcmp.3:33
727 msgid "memcmp - compare memory areas"
731 #: build/C/man3/memcmp.3:45
733 "The B<memcmp>() function compares the first I<n> bytes (each interpreted as "
734 "I<unsigned char>) of the memory areas I<s1> and I<s2>."
738 #: build/C/man3/memcmp.3:52
740 "The B<memcmp>() function returns an integer less than, equal to, or greater "
741 "than zero if the first I<n> bytes of I<s1> is found, respectively, to be "
742 "less than, to match, or be greater than the first I<n> bytes of I<s2>."
746 #: build/C/man3/memcmp.3:60
748 "For a nonzero return value, the sign is determined by the sign of the "
749 "difference between the first pair of bytes (interpreted as I<unsigned char>) "
750 "that differ in I<s1> and I<s2>."
754 #: build/C/man3/memcmp.3:62 build/C/man3/memcpy.3:54 build/C/man3/memmove.3:59 build/C/man3/memset.3:51
755 msgid "SVr4, 4.3BSD, C89, C99, POSIX.1-2001."
759 #: build/C/man3/memcmp.3:70
761 "B<bcmp>(3), B<strcasecmp>(3), B<strcmp>(3), B<strcoll>(3), "
762 "B<strncasecmp>(3), B<strncmp>(3), B<wmemcmp>(3)"
766 #: build/C/man3/memcpy.3:30
772 #: build/C/man3/memcpy.3:30
778 #: build/C/man3/memcpy.3:33
779 msgid "memcpy - copy memory area"
783 #: build/C/man3/memcpy.3:48
785 "The B<memcpy>() function copies I<n> bytes from memory area I<src> to "
786 "memory area I<dest>. The memory areas must not overlap. Use B<memmove>(3) "
787 "if the memory areas do overlap."
791 #: build/C/man3/memcpy.3:52
792 msgid "The B<memcpy>() function returns a pointer to I<dest>."
796 #: build/C/man3/memcpy.3:62
798 "B<bcopy>(3), B<memccpy>(3), B<memmove>(3), B<mempcpy>(3), B<strcpy>(3), "
799 "B<strncpy>(3), B<wmemcpy>(3)"
803 #: build/C/man3/memfrob.3:30
809 #: build/C/man3/memfrob.3:30
815 #: build/C/man3/memfrob.3:33
816 msgid "memfrob - frobnicate (encrypt) a memory area"
820 #: build/C/man3/memfrob.3:37
823 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
824 "B<#include E<lt>string.hE<gt>>\n"
828 #: build/C/man3/memfrob.3:50
830 "The B<memfrob>() function encrypts the first I<n> bytes of the memory area "
831 "I<s> by exclusive-ORing each character with the number 42. The effect can "
832 "be reversed by using B<memfrob>() on the encrypted memory area."
836 #: build/C/man3/memfrob.3:53
838 "Note that this function is not a proper encryption routine as the XOR "
839 "constant is fixed, and is only suitable for hiding strings."
843 #: build/C/man3/memfrob.3:58
844 msgid "The B<memfrob>() function returns a pointer to the encrypted memory area."
848 #: build/C/man3/memfrob.3:63
849 msgid "The B<memfrob>() function is unique to the GNU C Library."
853 #: build/C/man3/memfrob.3:65
858 #: build/C/man3/memmem.3:30
864 #: build/C/man3/memmem.3:30
870 #: build/C/man3/memmem.3:33
871 msgid "memmem - locate a substring"
875 #: build/C/man3/memmem.3:37 build/C/man3/strchr.3:46
878 "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
879 "B<#include E<lt>string.hE<gt>>\n"
883 #: build/C/man3/memmem.3:40
886 "B<void *memmem(const void *>I<haystack>B<, size_t >I<haystacklen>B<,>\n"
887 "B< const void *>I<needle>B<, size_t >I<needlelen>B<);>\n"
891 #: build/C/man3/memmem.3:47
893 "The B<memmem>() function finds the start of the first occurrence of the "
894 "substring I<needle> of length I<needlelen> in the memory area I<haystack> of "
895 "length I<haystacklen>."
899 #: build/C/man3/memmem.3:52
901 "The B<memmem>() function returns a pointer to the beginning of the "
902 "substring, or NULL if the substring is not found."
906 #: build/C/man3/memmem.3:54 build/C/man3/mempcpy.3:60 build/C/man3/strverscmp.3:90
907 msgid "This function is a GNU extension."
911 #: build/C/man3/memmem.3:54 build/C/man3/stpcpy.3:72 build/C/man3/strcpy.3:183 build/C/man3/strsep.3:79 build/C/man3/strstr.3:70 build/C/man3/strtok.3:120
917 #: build/C/man3/memmem.3:59
919 "This function was broken in Linux libraries up to and including libc 5.0.9; "
920 "there the I<needle> and I<haystack> arguments were interchanged, and a "
921 "pointer to the end of the first occurrence of I<needle> was returned."
925 #: build/C/man3/memmem.3:65
927 "Both old and new libc's have the bug that if I<needle> is empty, "
928 "I<haystack-1> (instead of I<haystack>) is returned. And glibc 2.0 makes it "
929 "worse, returning a pointer to the last byte of I<haystack>. This is fixed "
934 #: build/C/man3/memmem.3:67
939 #: build/C/man3/memmove.3:30
945 #: build/C/man3/memmove.3:30
951 #: build/C/man3/memmove.3:33
952 msgid "memmove - copy memory area"
956 #: build/C/man3/memmove.3:53
958 "The B<memmove>() function copies I<n> bytes from memory area I<src> to "
959 "memory area I<dest>. The memory areas may overlap: copying takes place as "
960 "though the bytes in I<src> are first copied into a temporary array that does "
961 "not overlap I<src> or I<dest>, and the bytes are then copied from the "
962 "temporary array to I<dest>."
966 #: build/C/man3/memmove.3:57
967 msgid "The B<memmove>() function returns a pointer to I<dest>."
971 #: build/C/man3/memmove.3:66
973 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<strcpy>(3), B<strncpy>(3), "
978 #: build/C/man3/mempcpy.3:10
984 #: build/C/man3/mempcpy.3:10
990 #: build/C/man3/mempcpy.3:13
991 msgid "mempcpy, wmempcpy - copy memory area"
995 #: 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
997 msgid "B<#define _GNU_SOURCE> /* See feature_test_macros(7) */\n"
1001 #: build/C/man3/mempcpy.3:20
1003 msgid "B<void *mempcpy(void *>I<dest>B<, const void *>I<src>B<, size_t >I<n>B<);>\n"
1007 #: build/C/man3/mempcpy.3:24
1009 msgid "B<#include E<lt>wchar.hE<gt>>\n"
1013 #: build/C/man3/mempcpy.3:26
1016 "B<wchar_t *wmempcpy(wchar_t *>I<dest>B<, const wchar_t *>I<src>B<, size_t "
1021 #: build/C/man3/mempcpy.3:42
1023 "The B<mempcpy>() function is nearly identical to the B<memcpy>(3) "
1024 "function. It copies I<n> bytes from the object beginning at I<src> into the "
1025 "object pointed to by I<dest>. But instead of returning the value of I<dest> "
1026 "it returns a pointer to the byte following the last written byte."
1030 #: build/C/man3/mempcpy.3:45
1032 "This function is useful in situations where a number of objects shall be "
1033 "copied to consecutive memory positions."
1037 #: build/C/man3/mempcpy.3:53
1039 "The B<wmempcpy>() function is identical but takes I<wchar_t> type arguments "
1040 "and copies I<n> wide characters."
1044 #: build/C/man3/mempcpy.3:55
1045 msgid "I<dest> + I<n>."
1049 #: build/C/man3/mempcpy.3:58
1050 msgid "B<mempcpy>() first appeared in glibc in version 2.1."
1054 #: build/C/man3/mempcpy.3:60 build/C/man3/stpcpy.3:75 build/C/man3/strtok.3:136
1060 #: build/C/man3/mempcpy.3:70
1064 "combine(void *o1, size_t s1, void *o2, size_t s2)\n"
1066 " void *result = malloc(s1 + s2);\n"
1067 " if (result != NULL)\n"
1068 " mempcpy(mempcpy(result, o1, s1), o2, s2);\n"
1074 #: build/C/man3/mempcpy.3:76
1075 msgid "B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<wmemcpy>(3)"
1079 #: build/C/man3/memset.3:30
1085 #: build/C/man3/memset.3:30
1091 #: build/C/man3/memset.3:33
1092 msgid "memset - fill memory with a constant byte"
1096 #: build/C/man3/memset.3:44
1098 "The B<memset>() function fills the first I<n> bytes of the memory area "
1099 "pointed to by I<s> with the constant byte I<c>."
1103 #: build/C/man3/memset.3:49
1104 msgid "The B<memset>() function returns a pointer to the memory area I<s>."
1108 #: build/C/man3/memset.3:55
1109 msgid "B<bzero>(3), B<swab>(3), B<wmemset>(3)"
1113 #: build/C/man3/stpcpy.3:25
1119 #: build/C/man3/stpcpy.3:25
1125 #: build/C/man3/stpcpy.3:28
1126 msgid "stpcpy - copy a string returning a pointer to its end"
1130 #: build/C/man3/stpcpy.3:33 build/C/man3/string.3:51
1132 msgid "B<char *stpcpy(char *>I<dest>B<, const char *>I<src>B<);>\n"
1136 #: build/C/man3/stpcpy.3:41
1137 msgid "B<stpcpy>():"
1141 #: 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
1143 msgid "Since glibc 2.10:"
1147 #: build/C/man3/stpcpy.3:47 build/C/man3/stpncpy.3:36 build/C/man3/strnlen.3:35 build/C/man3/strsignal.3:54
1148 msgid "_XOPEN_SOURCE\\ E<gt>=\\ 700 || _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
1152 #: 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
1154 msgid "Before glibc 2.10:"
1158 #: build/C/man3/stpcpy.3:61
1160 "The B<stpcpy>() function copies the string pointed to by I<src> (including "
1161 "the terminating null byte (\\(aq\\e0\\(aq)) to the array pointed to by "
1162 "I<dest>. The strings may not overlap, and the destination string I<dest> "
1163 "must be large enough to receive the copy."
1167 #: build/C/man3/stpcpy.3:66
1169 "B<stpcpy>() returns a pointer to the B<end> of the string I<dest> (that is, "
1170 "the address of the terminating null byte) rather than the beginning."
1174 #: build/C/man3/stpcpy.3:72
1176 "This function was added to POSIX.1-2008. Before that, it was not part of the "
1177 "C or POSIX.1 standards, nor customary on UNIX systems, but was not a GNU "
1178 "invention either. Perhaps it came from MS-DOS. It is also present on the "
1183 #: build/C/man3/stpcpy.3:75
1184 msgid "This function may overrun the buffer I<dest>."
1188 #: build/C/man3/stpcpy.3:80
1190 "For example, this program uses B<stpcpy>() to concatenate B<foo> and B<bar> "
1191 "to produce B<foobar>, which it then prints."
1195 #: build/C/man3/stpcpy.3:86
1198 "#define _GNU_SOURCE\n"
1199 "#include E<lt>string.hE<gt>\n"
1200 "#include E<lt>stdio.hE<gt>\n"
1204 #: build/C/man3/stpcpy.3:92
1210 " char buffer[20];\n"
1211 " char *to = buffer;\n"
1215 #: build/C/man3/stpcpy.3:97
1218 " to = stpcpy(to, \"foo\");\n"
1219 " to = stpcpy(to, \"bar\");\n"
1220 " printf(\"%s\\en\", buffer);\n"
1225 #: build/C/man3/stpcpy.3:108
1227 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<stpncpy>(3), "
1228 "B<strcpy>(3), B<string>(3), B<wcpcpy>(3)"
1232 #: build/C/man3/stpncpy.3:14
1238 #: build/C/man3/stpncpy.3:14 build/C/man3/strsep.3:33 build/C/man3/strstr.3:33
1244 #: build/C/man3/stpncpy.3:17
1245 msgid "stpncpy - copy a fixed-size string, returning a pointer to its end"
1249 #: build/C/man3/stpncpy.3:22
1251 msgid "B<char *stpncpy(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
1255 #: build/C/man3/stpncpy.3:30
1256 msgid "B<stpncpy>():"
1260 #: build/C/man3/stpncpy.3:56
1262 "The B<stpncpy>() function copies at most I<n> characters from the string "
1263 "pointed to by I<src>, including the terminating null byte (\\(aq\\e0\\(aq), "
1264 "to the array pointed to by I<dest>. Exactly I<n> characters are written at "
1265 "I<dest>. If the length I<strlen(src)> is smaller than I<n>, the remaining "
1266 "characters in the array pointed to by I<dest> are filled with null bytes "
1267 "(\\(aq\\e0\\(aq), If the length I<strlen(src)> is greater or equal to I<n>, "
1268 "the string pointed to by I<dest> will not be null-terminated."
1272 #: build/C/man3/stpncpy.3:58
1273 msgid "The strings may not overlap."
1277 #: build/C/man3/stpncpy.3:61
1279 "The programmer must ensure that there is room for at least I<n> characters "
1284 #: build/C/man3/stpncpy.3:66
1286 "B<stpncpy>() returns a pointer to the terminating null byte in I<dest>, or, "
1287 "if I<dest> is not null-terminated, I<dest + n>."
1291 #: build/C/man3/stpncpy.3:68
1293 "This function was added to POSIX.1-2008. Before that, it was a GNU "
1298 #: build/C/man3/stpncpy.3:71
1299 msgid "B<strncpy>(3), B<wcpncpy>(3)"
1303 #: build/C/man3/strcasecmp.3:30
1309 #: build/C/man3/strcasecmp.3:30 build/C/man3/strdup.3:31 build/C/man3/strnlen.3:13 build/C/man3/strpbrk.3:30 build/C/man3/strspn.3:30 build/C/man3/strtok.3:30 build/C/man3/strxfrm.3:30
1315 #: build/C/man3/strcasecmp.3:33
1316 msgid "strcasecmp, strncasecmp - compare two strings ignoring case"
1320 #: build/C/man3/strcasecmp.3:38 build/C/man3/string.3:41
1322 msgid "B<int strcasecmp(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
1326 #: build/C/man3/strcasecmp.3:40 build/C/man3/string.3:43
1329 "B<int strncasecmp(const char *>I<s1>B<, const char *>I<s2>B<, size_t "
1334 #: build/C/man3/strcasecmp.3:49
1336 "The B<strcasecmp>() function compares the two strings I<s1> and I<s2>, "
1337 "ignoring the case of the characters. It returns an integer less than, equal "
1338 "to, or greater than zero if I<s1> is found, respectively, to be less than, "
1339 "to match, or be greater than I<s2>."
1343 #: build/C/man3/strcasecmp.3:54
1345 "The B<strncasecmp>() function is similar, except it only compares the first "
1346 "I<n> bytes of I<s1>."
1350 #: build/C/man3/strcasecmp.3:63
1352 "The B<strcasecmp>() and B<strncasecmp>() functions return an integer less "
1353 "than, equal to, or greater than zero if I<s1> (or the first I<n> bytes "
1354 "thereof) is found, respectively, to be less than, to match, or be greater "
1359 #: build/C/man3/strcasecmp.3:65
1360 msgid "4.4BSD, POSIX.1-2001."
1364 #: build/C/man3/strcasecmp.3:74
1366 "B<bcmp>(3), B<memcmp>(3), B<strcmp>(3), B<strcoll>(3), B<string>(3), "
1367 "B<strncmp>(3), B<wcscasecmp>(3), B<wcsncasecmp>(3)"
1371 #: build/C/man3/strcat.3:32
1377 #: build/C/man3/strcat.3:32 build/C/man3/strcpy.3:35
1383 #: build/C/man3/strcat.3:35
1384 msgid "strcat, strncat - concatenate two strings"
1388 #: build/C/man3/strcat.3:40 build/C/man3/string.3:53
1390 msgid "B<char *strcat(char *>I<dest>B<, const char *>I<src>B<);>\n"
1394 #: build/C/man3/strcat.3:42 build/C/man3/string.3:71
1396 msgid "B<char *strncat(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
1400 #: build/C/man3/strcat.3:56
1402 "The B<strcat>() function appends the I<src> string to the I<dest> string, "
1403 "overwriting the terminating null byte (\\(aq\\e0\\(aq) at the end of "
1404 "I<dest>, and then adds a terminating null byte. The strings may not "
1405 "overlap, and the I<dest> string must have enough space for the result. If "
1406 "I<dest> is not large enough, program behavior is unpredictable; I<buffer "
1407 "overruns are a favorite avenue for attacking secure programs>."
1411 #: build/C/man3/strcat.3:60
1412 msgid "The B<strncat>() function is similar, except that"
1416 #: build/C/man3/strcat.3:60 build/C/man3/strcat.3:62 build/C/man3/strsep.3:82 build/C/man3/strsep.3:84 build/C/man3/strsep.3:86 build/C/man3/strtok.3:123 build/C/man3/strtok.3:125 build/C/man3/strtok.3:127 build/C/man3/strtok.3:129
1422 #: build/C/man3/strcat.3:62
1423 msgid "it will use at most I<n> bytes from I<src>; and"
1427 #: build/C/man3/strcat.3:65
1429 "I<src> does not need to be null-terminated if it contains I<n> or more "
1434 #: build/C/man3/strcat.3:69
1436 "As with B<strcat>(), the resulting string in I<dest> is always "
1441 #: build/C/man3/strcat.3:76
1443 "If I<src> contains I<n> or more bytes, B<strncat>() writes I<n+1> bytes to "
1444 "I<dest> (I<n> from I<src> plus the terminating null byte). Therefore, the "
1445 "size of I<dest> must be at least I<strlen(dest)+n+1>."
1449 #: build/C/man3/strcat.3:80
1450 msgid "A simple implementation of B<strncat>() might be:"
1454 #: build/C/man3/strcat.3:88
1458 "strncat(char *dest, const char *src, size_t n)\n"
1460 " size_t dest_len = strlen(dest);\n"
1465 #: build/C/man3/strcat.3:92
1468 " for (i = 0 ; i E<lt> n && src[i] != \\(aq\\e0\\(aq ; i++)\n"
1469 " dest[dest_len + i] = src[i];\n"
1470 " dest[dest_len + i] = \\(aq\\e0\\(aq;\n"
1474 #: build/C/man3/strcat.3:95 build/C/man3/strcpy.3:95
1482 #: build/C/man3/strcat.3:103
1484 "The B<strcat>() and B<strncat>() functions return a pointer to the "
1485 "resulting string I<dest>."
1489 #: build/C/man3/strcat.3:105 build/C/man3/strcmp.3:67 build/C/man3/strcoll.3:60 build/C/man3/strcpy.3:106 build/C/man3/strlen.3:50 build/C/man3/strpbrk.3:52 build/C/man3/strspn.3:67 build/C/man3/strxfrm.3:66
1490 msgid "SVr4, 4.3BSD, C89, C99."
1494 #: build/C/man3/strcat.3:107 build/C/man3/strcpy.3:146
1495 msgid "Some systems (the BSDs, Solaris, and others) provide the following function:"
1499 #: build/C/man3/strcat.3:109
1501 msgid " size_t strlcat(char *dest, const char *src, size_t size);\n"
1504 #. https://lwn.net/Articles/506530/
1506 #: build/C/man3/strcat.3:142
1508 "This function appends the null-terminated string I<src> to the string "
1509 "I<dest>, copying at most I<size-strlen(dest)-1> from I<src>, and adds a null "
1510 "terminator to the result, I<unless> I<size> is less than I<strlen(dest)>. "
1511 "This function fixes the buffer overrun problem of B<strcat>(), but the "
1512 "caller must still handle the possibility of data loss if I<size> is too "
1513 "small. The function returns the length of the string B<strlcat>() tried to "
1514 "create; if the return value is greater than or equal to I<size>, data loss "
1515 "occurred. If data loss matters, the caller I<must> either check the "
1516 "arguments before the call, or test the function return value. B<strlcat>() "
1517 "is not present in glibc and is not standardized by POSIX, but is available "
1518 "on Linux via the I<libbsd> library."
1522 #: build/C/man3/strcat.3:151
1524 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<strcpy>(3), B<string>(3), "
1525 "B<strncpy>(3), B<wcscat>(3), B<wcsncat>(3)"
1529 #: build/C/man3/strchr.3:33
1535 #: build/C/man3/strchr.3:33
1541 #: build/C/man3/strchr.3:36
1542 msgid "strchr, strrchr, strchrnul - locate character in string"
1546 #: build/C/man3/strchr.3:41 build/C/man3/string.3:55
1548 msgid "B<char *strchr(const char *>I<s>B<, int >I<c>B<);>\n"
1552 #: build/C/man3/strchr.3:43 build/C/man3/string.3:79
1554 msgid "B<char *strrchr(const char *>I<s>B<, int >I<c>B<);>\n"
1558 #: build/C/man3/strchr.3:48
1560 msgid "B<char *strchrnul(const char *>I<s>B<, int >I<c>B<);>\n"
1564 #: build/C/man3/strchr.3:57
1566 "The B<strchr>() function returns a pointer to the first occurrence of the "
1567 "character I<c> in the string I<s>."
1571 #: build/C/man3/strchr.3:65
1573 "The B<strrchr>() function returns a pointer to the last occurrence of the "
1574 "character I<c> in the string I<s>."
1578 #: build/C/man3/strchr.3:78
1580 "The B<strchrnul>() function is like B<strchr>() except that if I<c> is not "
1581 "found in I<s>, then it returns a pointer to the null byte at the end of "
1582 "I<s>, rather than NULL."
1586 #: build/C/man3/strchr.3:81
1588 "Here \"character\" means \"byte\"; these functions do not work with wide or "
1589 "multibyte characters."
1593 #: build/C/man3/strchr.3:93
1595 "The B<strchr>() and B<strrchr>() functions return a pointer to the matched "
1596 "character or NULL if the character is not found. The terminating null byte "
1597 "is considered part of the string, so that if I<c> is specified as "
1598 "\\(aq\\e0\\(aq, these functions return a pointer to the terminator."
1602 #: build/C/man3/strchr.3:101
1604 "The B<strchrnul>() function returns a pointer to the matched character, or "
1605 "a pointer to the null byte at the end of I<s> (i.e., I<s+strlen(s)>) if the "
1606 "character is not found."
1610 #: build/C/man3/strchr.3:104
1611 msgid "B<strchrnul>() first appeared in glibc in version 2.1.1."
1615 #: build/C/man3/strchr.3:111
1617 "B<strchr>() and B<strrchr>() are in SVr4, 4.3BSD, C89, C99. "
1618 "B<strchrnul>() is a GNU extension."
1622 #: build/C/man3/strchr.3:124
1624 "B<index>(3), B<memchr>(3), B<rindex>(3), B<string>(3), B<strlen>(3), "
1625 "B<strpbrk>(3), B<strsep>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3), "
1626 "B<wcschr>(3), B<wcsrchr>(3)"
1630 #: build/C/man3/strcmp.3:32
1636 #: build/C/man3/strcmp.3:35
1637 msgid "strcmp, strncmp - compare two strings"
1641 #: build/C/man3/strcmp.3:40 build/C/man3/string.3:57
1643 msgid "B<int strcmp(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
1647 #: build/C/man3/strcmp.3:42 build/C/man3/string.3:73
1650 "B<int strncmp(const char *>I<s1>B<, const char *>I<s2>B<, size_t "
1655 #: build/C/man3/strcmp.3:51
1657 "The B<strcmp>() function compares the two strings I<s1> and I<s2>. It "
1658 "returns an integer less than, equal to, or greater than zero if I<s1> is "
1659 "found, respectively, to be less than, to match, or be greater than I<s2>."
1663 #: build/C/man3/strcmp.3:56
1665 "The B<strncmp>() function is similar, except it only compares the first (at "
1666 "most) I<n> bytes of I<s1> and I<s2>."
1670 #: build/C/man3/strcmp.3:65
1672 "The B<strcmp>() and B<strncmp>() functions return an integer less than, "
1673 "equal to, or greater than zero if I<s1> (or the first I<n> bytes thereof) is "
1674 "found, respectively, to be less than, to match, or be greater than I<s2>."
1678 #: build/C/man3/strcmp.3:77
1680 "B<bcmp>(3), B<memcmp>(3), B<strcasecmp>(3), B<strcoll>(3), B<string>(3), "
1681 "B<strncasecmp>(3), B<strverscmp>(3), B<wcscmp>(3), B<wcsncmp>(3)"
1685 #: build/C/man3/strcoll.3:30
1691 #: build/C/man3/strcoll.3:33
1692 msgid "strcoll - compare two strings using the current locale"
1696 #: build/C/man3/strcoll.3:38 build/C/man3/string.3:59
1698 msgid "B<int strcoll(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
1702 #: build/C/man3/strcoll.3:51
1704 "The B<strcoll>() function compares the two strings I<s1> and I<s2>. It "
1705 "returns an integer less than, equal to, or greater than zero if I<s1> is "
1706 "found, respectively, to be less than, to match, or be greater than I<s2>. "
1707 "The comparison is based on strings interpreted as appropriate for the "
1708 "program's current locale for category B<LC_COLLATE>. (See B<setlocale>(3).)"
1712 #: build/C/man3/strcoll.3:58
1714 "The B<strcoll>() function returns an integer less than, equal to, or "
1715 "greater than zero if I<s1> is found, respectively, to be less than, to "
1716 "match, or be greater than I<s2>, when both are interpreted as appropriate "
1717 "for the current locale."
1721 #: build/C/man3/strcoll.3:65
1723 "In the I<\"POSIX\"> or I<\"C\"> locales B<strcoll>() is equivalent to "
1728 #: build/C/man3/strcoll.3:73
1730 "B<bcmp>(3), B<memcmp>(3), B<setlocale>(3), B<strcasecmp>(3), B<strcmp>(3), "
1731 "B<string>(3), B<strxfrm>(3)"
1735 #: build/C/man3/strcpy.3:35
1741 #: build/C/man3/strcpy.3:38
1742 msgid "strcpy, strncpy - copy a string"
1746 #: build/C/man3/strcpy.3:43 build/C/man3/string.3:61
1748 msgid "B<char *strcpy(char *>I<dest>B<, const char *>I<src>B<);>\n"
1752 #: build/C/man3/strcpy.3:45 build/C/man3/string.3:75
1754 msgid "B<char *strncpy(char *>I<dest>B<, const char *>I<src>B<, size_t >I<n>B<);>\n"
1758 #: build/C/man3/strcpy.3:56
1760 "The B<strcpy>() function copies the string pointed to by I<src>, including "
1761 "the terminating null byte (\\(aq\\e0\\(aq), to the buffer pointed to by "
1762 "I<dest>. The strings may not overlap, and the destination string I<dest> "
1763 "must be large enough to receive the copy. I<Beware of buffer overruns!> "
1768 #: build/C/man3/strcpy.3:65
1770 "The B<strncpy>() function is similar, except that at most I<n> bytes of "
1771 "I<src> are copied. B<Warning>: If there is no null byte among the first "
1772 "I<n> bytes of I<src>, the string placed in I<dest> will not be "
1777 #: build/C/man3/strcpy.3:76
1779 "If the length of I<src> is less than I<n>, B<strncpy>() writes additional "
1780 "null bytes to I<dest> to ensure that a total of I<n> bytes are written."
1784 #: build/C/man3/strcpy.3:80
1785 msgid "A simple implementation of B<strncpy>() might be:"
1789 #: build/C/man3/strcpy.3:87
1793 "strncpy(char *dest, const char *src, size_t n)\n"
1799 #: build/C/man3/strcpy.3:92
1802 " for (i = 0; i E<lt> n && src[i] != \\(aq\\e0\\(aq; i++)\n"
1803 " dest[i] = src[i];\n"
1804 " for ( ; i E<lt> n; i++)\n"
1805 " dest[i] = \\(aq\\e0\\(aq;\n"
1809 #: build/C/man3/strcpy.3:104
1811 "The B<strcpy>() and B<strncpy>() functions return a pointer to the "
1812 "destination string I<dest>."
1816 #: build/C/man3/strcpy.3:115
1818 "Some programmers consider B<strncpy>() to be inefficient and error prone. "
1819 "If the programmer knows (i.e., includes code to test!) that the size of "
1820 "I<dest> is greater than the length of I<src>, then B<strcpy>() can be used."
1824 #: build/C/man3/strcpy.3:124
1826 "One valid (and intended) use of B<strncpy>() is to copy a C string to a "
1827 "fixed-length buffer while ensuring both that the buffer is not overflowed "
1828 "and that unused bytes in the target buffer are zeroed out (perhaps to "
1829 "prevent information leaks if the buffer is to be written to media or "
1830 "transmitted to another process via an interprocess communication technique)."
1834 #: build/C/man3/strcpy.3:130
1836 "If there is no terminating null byte in the first I<n> bytes of I<src>, "
1837 "B<strncpy>() produces an unterminated string in I<dest>. You can force "
1838 "termination using something like the following:"
1842 #: build/C/man3/strcpy.3:136
1845 "strncpy(buf, str, n);\n"
1847 " buf[n - 1]= \\(aq\\e0\\(aq;\n"
1851 #: build/C/man3/strcpy.3:144
1853 "(Of course, the above technique ignores the fact that information contained "
1854 "in I<src> is lost in the copying to I<dest>.)"
1858 #: build/C/man3/strcpy.3:148
1860 msgid " size_t strlcpy(char *dest, const char *src, size_t size);\n"
1863 #. http://static.usenix.org/event/usenix99/full_papers/millert/millert_html/index.html
1864 #. "strlcpy and strlcat - consistent, safe, string copy and concatenation"
1865 #. 1999 USENIX Annual Technical Conference
1866 #. https://lwn.net/Articles/506530/
1868 #: build/C/man3/strcpy.3:183
1870 "This function is similar to B<strncpy>(), but it copies at most I<size-1> "
1871 "bytes to I<dest>, always adds a terminating null byte, and does not pad the "
1872 "target with (further) null bytes. This function fixes some of the problems "
1873 "of B<strcpy>() and B<strncpy>(), but the caller must still handle the "
1874 "possibility of data loss if I<size> is too small. The return value of the "
1875 "function is the length of I<src>, which allows truncation to be easily "
1876 "detected: if the return value is greater than or equal to I<size>, "
1877 "truncation occurred. If loss of data matters, the caller I<must> either "
1878 "check the arguments before the call, or test the function return value. "
1879 "B<strlcpy>() is not present in glibc and is not standardized by POSIX, but "
1880 "is available on Linux via the I<libbsd> library."
1884 #: build/C/man3/strcpy.3:194
1886 "If the destination string of a B<strcpy>() is not large enough, then "
1887 "anything might happen. Overflowing fixed-length string buffers is a "
1888 "favorite cracker technique for taking complete control of the machine. Any "
1889 "time a program reads or copies data into a buffer, the program first needs "
1890 "to check that there's enough space. This may be unnecessary if you can show "
1891 "that overflow is impossible, but be careful: programs can get changed over "
1892 "time, in ways that may make the impossible possible."
1896 #: build/C/man3/strcpy.3:205
1898 "B<bcopy>(3), B<memccpy>(3), B<memcpy>(3), B<memmove>(3), B<stpcpy>(3), "
1899 "B<stpncpy>(3), B<strdup>(3), B<string>(3), B<wcscpy>(3), B<wcsncpy>(3)"
1903 #: build/C/man3/strdup.3:31
1909 #: build/C/man3/strdup.3:34
1910 msgid "strdup, strndup, strdupa, strndupa - duplicate a string"
1914 #: build/C/man3/strdup.3:39 build/C/man3/string.3:65
1916 msgid "B<char *strdup(const char *>I<s>B<);>\n"
1920 #: build/C/man3/strdup.3:41
1922 msgid "B<char *strndup(const char *>I<s>B<, size_t >I<n>B<);>\n"
1926 #: build/C/man3/strdup.3:43
1928 msgid "B<char *strdupa(const char *>I<s>B<);>\n"
1932 #: build/C/man3/strdup.3:45
1934 msgid "B<char *strndupa(const char *>I<s>B<, size_t >I<n>B<);>\n"
1938 #: build/C/man3/strdup.3:55
1939 msgid "B<strdup>():"
1943 #: build/C/man3/strdup.3:58
1945 "_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE\\ E<gt>=\\ 500 || "
1946 "_XOPEN_SOURCE\\ &&\\ _XOPEN_SOURCE_EXTENDED"
1950 #: build/C/man3/strdup.3:60
1951 msgid "|| /* Since glibc 2.12: */ _POSIX_C_SOURCE\\ E<gt>=\\ 200809L"
1955 #: build/C/man3/strdup.3:63
1956 msgid "B<strndup>():"
1960 #: build/C/man3/strdup.3:67
1961 msgid "POSIX_C_SOURCE\\ E<gt>=\\ 200809L || _XOPEN_SOURCE\\ E<gt>=\\ 700"
1965 #: build/C/man3/strdup.3:75
1966 msgid "B<strdupa>(), B<strndupa>(): _GNU_SOURCE"
1970 #: build/C/man3/strdup.3:87
1972 "The B<strdup>() function returns a pointer to a new string which is a "
1973 "duplicate of the string I<s>. Memory for the new string is obtained with "
1974 "B<malloc>(3), and can be freed with B<free>(3)."
1978 #: build/C/man3/strdup.3:94
1980 "The B<strndup>() function is similar, but only copies at most I<n> bytes. "
1981 "If I<s> is longer than I<n>, only I<n> bytes are copied, and a terminating "
1982 "null byte (\\(aq\\e0\\(aq) is added."
1986 #: build/C/man3/strdup.3:104
1988 "B<strdupa>() and B<strndupa>() are similar, but use B<alloca>(3) to "
1989 "allocate the buffer. They are only available when using the GNU GCC suite, "
1990 "and suffer from the same limitations described in B<alloca>(3)."
1994 #: build/C/man3/strdup.3:109
1996 "The B<strdup>() function returns a pointer to the duplicated string, or "
1997 "NULL if insufficient memory was available."
2001 #: build/C/man3/strdup.3:109 build/C/man3/strerror.3:166
2007 #: build/C/man3/strdup.3:110
2013 #: build/C/man3/strdup.3:113
2014 msgid "Insufficient memory available to allocate duplicate string."
2017 #. 4.3BSD-Reno, not (first) 4.3BSD.
2019 #: build/C/man3/strdup.3:123
2021 "B<strdup>() conforms to SVr4, 4.3BSD, POSIX.1-2001. B<strndup>() conforms "
2022 "to POSIX.1-2008. B<strdupa>() and B<strndupa>() are GNU extensions."
2026 #: build/C/man3/strdup.3:131
2028 "B<alloca>(3), B<calloc>(3), B<free>(3), B<malloc>(3), B<realloc>(3), "
2029 "B<string>(3), B<wcsdup>(3)"
2033 #: build/C/man3/strerror.3:39
2039 #: build/C/man3/strerror.3:39
2045 #: build/C/man3/strerror.3:42
2046 msgid "strerror, strerror_r - return string describing error number"
2050 #: build/C/man3/strerror.3:47
2052 msgid "B<char *strerror(int >I<errnum>B<);>\n"
2056 #: build/C/man3/strerror.3:50
2059 "B<int strerror_r(int >I<errnum>B<, char *>I<buf>B<, size_t >I<buflen>B<);>\n"
2060 " /* XSI-compliant */\n"
2064 #: build/C/man3/strerror.3:53
2067 "B<char *strerror_r(int >I<errnum>B<, char *>I<buf>B<, size_t "
2069 " /* GNU-specific */\n"
2073 #: build/C/man3/strerror.3:63
2074 msgid "The XSI-compliant version of B<strerror_r>() is provided if:"
2078 #: build/C/man3/strerror.3:65
2080 "(_POSIX_C_SOURCE\\ E<gt>=\\ 200112L || _XOPEN_SOURCE\\ E<gt>=\\ 600) && !\\ "
2085 #: build/C/man3/strerror.3:67
2086 msgid "Otherwise, the GNU-specific version is provided."
2090 #: build/C/man3/strerror.3:87
2092 "The B<strerror>() function returns a pointer to a string that describes the "
2093 "error code passed in the argument I<errnum>, possibly using the "
2094 "B<LC_MESSAGES> part of the current locale to select the appropriate "
2095 "language. (For example, if I<errnum> is B<EINVAL>, the returned description "
2096 "will \"Invalid argument\".) This string must not be modified by the "
2097 "application, but may be modified by a subsequent call to B<strerror>(). No "
2098 "library function, including B<perror>(3), will modify this string."
2102 #: build/C/man3/strerror.3:108
2104 "The B<strerror_r>() function is similar to B<strerror>(), but is thread "
2105 "safe. This function is available in two versions: an XSI-compliant version "
2106 "specified in POSIX.1-2001 (available since glibc 2.3.4, but not "
2107 "POSIX-compliant until glibc 2.13), and a GNU-specific version (available "
2108 "since glibc 2.0). The XSI-compliant version is provided with the feature "
2109 "test macros settings shown in the SYNOPSIS; otherwise the GNU-specific "
2110 "version is provided. If no feature test macros are explicitly defined, then "
2111 "(since glibc 2.4) B<_POSIX_SOURCE> is defined by default with the value "
2112 "200112L, so that the XSI-compliant version of B<strerror_r>() is provided "
2117 #: build/C/man3/strerror.3:116
2119 "The XSI-compliant B<strerror_r>() is preferred for portable applications. "
2120 "It returns the error string in the user-supplied buffer I<buf> of length "
2125 #: build/C/man3/strerror.3:136
2127 "The GNU-specific B<strerror_r>() returns a pointer to a string containing "
2128 "the error message. This may be either a pointer to a string that the "
2129 "function stores in I<buf>, or a pointer to some (immutable) static string "
2130 "(in which case I<buf> is unused). If the function stores a string in "
2131 "I<buf>, then at most I<buflen> bytes are stored (the string may be truncated "
2132 "if I<buflen> is too small and I<errnum> is unknown). The string always "
2133 "includes a terminating null byte."
2137 #: build/C/man3/strerror.3:144
2139 "The B<strerror>() and the GNU-specific B<strerror_r>() functions return "
2140 "the appropriate error description string, or an \"Unknown error nnn\" "
2141 "message if the error number is unknown."
2145 #: build/C/man3/strerror.3:157
2147 "POSIX.1-2001 and POSIX.1-2008 require that a successful call to "
2148 "B<strerror>() shall leave I<errno> unchanged, and note that, since no "
2149 "function return value is reserved to indicate an error, an application that "
2150 "wishes to check for errors should initialize I<errno> to zero before the "
2151 "call, and then check I<errno> after the call."
2155 #: build/C/man3/strerror.3:166
2157 "The XSI-compliant B<strerror_r>() function returns 0 on success. On error, "
2158 "a (positive) error number is returned (since glibc 2.13), or -1 is returned "
2159 "and I<errno> is set to indicate the error (glibc versions before 2.13)."
2163 #: build/C/man3/strerror.3:167
2169 #: build/C/man3/strerror.3:172
2170 msgid "The value of I<errnum> is not a valid error number."
2174 #: build/C/man3/strerror.3:172
2180 #: build/C/man3/strerror.3:175
2181 msgid "Insufficient storage was supplied to contain the error description string."
2185 #: build/C/man3/strerror.3:180
2187 "B<strerror>() is specified by POSIX.1-2001, C89, C99. B<strerror_r>() is "
2188 "specified by POSIX.1-2001."
2192 #: build/C/man3/strerror.3:184
2193 msgid "The GNU-specific B<strerror_r>() function is a nonstandard extension."
2196 #. e.g., Solaris 8, HP-UX 11
2197 #. e.g., FreeBSD 5.4, Tru64 5.1B
2199 #: build/C/man3/strerror.3:204
2201 "POSIX.1-2001 permits B<strerror>() to set I<errno> if the call encounters "
2202 "an error, but does not specify what value should be returned as the function "
2203 "result in the event of an error. On some systems, B<strerror>() returns "
2204 "NULL if the error number is unknown. On other systems, B<strerror>() "
2205 "returns a string something like \"Error nnn occurred\" and sets I<errno> to "
2206 "B<EINVAL> if the error number is unknown. C99 and POSIX.1-2008 require the "
2207 "return value to be non-NULL."
2211 #: build/C/man3/strerror.3:210
2212 msgid "B<err>(3), B<errno>(3), B<error>(3), B<perror>(3), B<strsignal>(3)"
2216 #: build/C/man3/strfry.3:30
2222 #: build/C/man3/strfry.3:33
2223 msgid "strfry - randomize a string"
2227 #: build/C/man3/strfry.3:40 build/C/man3/string.3:67
2229 msgid "B<char *strfry(char *>I<string>B<);>\n"
2233 #: build/C/man3/strfry.3:49
2235 "The B<strfry>() function randomizes the contents of I<string> by using "
2236 "B<rand>(3) to randomly swap characters in the string. The result is an "
2237 "anagram of I<string>."
2241 #: build/C/man3/strfry.3:54
2242 msgid "The B<strfry>() functions returns a pointer to the randomized string."
2246 #: build/C/man3/strfry.3:59
2247 msgid "The B<strfry>() function is unique to the GNU C Library."
2251 #: build/C/man3/strfry.3:62
2252 msgid "B<memfrob>(3), B<string>(3)"
2256 #: build/C/man3/string.3:30
2262 #: build/C/man3/string.3:30
2268 #: build/C/man3/string.3:36
2270 "stpcpy, strcasecmp, strcat, strchr, strcmp, strcoll, strcpy, strcspn, "
2271 "strdup, strfry, strlen, strncat, strncmp, strncpy, strncasecmp, strpbrk, "
2272 "strrchr, strsep, strspn, strstr, strtok, strxfrm, index, rindex - string "
2277 #: build/C/man3/string.3:63 build/C/man3/strspn.3:40
2279 msgid "B<size_t strcspn(const char *>I<s>B<, const char *>I<reject>B<);>\n"
2283 #: build/C/man3/string.3:69 build/C/man3/strlen.3:38
2285 msgid "B<size_t strlen(const char *>I<s>B<);>\n"
2289 #: build/C/man3/string.3:77 build/C/man3/strpbrk.3:38
2291 msgid "B<char *strpbrk(const char *>I<s>B<, const char *>I<accept>B<);>\n"
2295 #: build/C/man3/string.3:81 build/C/man3/strsep.3:41
2297 msgid "B<char *strsep(char **>I<stringp>B<, const char *>I<delim>B<);>\n"
2301 #: build/C/man3/string.3:83 build/C/man3/strspn.3:38
2303 msgid "B<size_t strspn(const char *>I<s>B<, const char *>I<accept>B<);>\n"
2307 #: build/C/man3/string.3:85 build/C/man3/strstr.3:41
2309 msgid "B<char *strstr(const char *>I<haystack>B<, const char *>I<needle>B<);>\n"
2313 #: build/C/man3/string.3:87
2315 msgid "B<char *strtok(char *>I<s>B<, const char *>I<delim>B<);>\n"
2319 #: build/C/man3/string.3:89 build/C/man3/strxfrm.3:38
2322 "B<size_t strxfrm(char *>I<dest>B<, const char *>I<src>B<, size_t "
2327 #: build/C/man3/string.3:94
2329 "The string functions perform string operations on null-terminated strings. "
2330 "See the individual man pages for descriptions of each function."
2334 #: build/C/man3/string.3:119
2336 "B<index>(3), B<rindex>(3), B<stpcpy>(3), B<strcasecmp>(3), B<strcat>(3), "
2337 "B<strchr>(3), B<strcmp>(3), B<strcoll>(3), B<strcpy>(3), B<strcspn>(3), "
2338 "B<strdup>(3), B<strfry>(3), B<strlen>(3), B<strncasecmp>(3), B<strncat>(3), "
2339 "B<strncmp>(3), B<strncpy>(3), B<strpbrk>(3), B<strrchr>(3), B<strsep>(3), "
2340 "B<strspn>(3), B<strstr>(3), B<strtok>(3), B<strxfrm>(3)"
2344 #: build/C/man3/strlen.3:30
2350 #: build/C/man3/strlen.3:30
2356 #: build/C/man3/strlen.3:33
2357 msgid "strlen - calculate the length of a string"
2361 #: build/C/man3/strlen.3:44
2363 "The B<strlen>() function calculates the length of the string I<s>, "
2364 "excluding the terminating null byte (\\(aq\\e0\\(aq)."
2368 #: build/C/man3/strlen.3:48
2369 msgid "The B<strlen>() function returns the number of bytes in the string I<s>."
2373 #: build/C/man3/strlen.3:55
2374 msgid "B<string>(3), B<strnlen>(3), B<wcslen>(3), B<wcsnlen>(3)"
2378 #: build/C/man3/strnlen.3:13
2384 #: build/C/man3/strnlen.3:16
2385 msgid "strnlen - determine the length of a fixed-size string"
2389 #: build/C/man3/strnlen.3:21
2391 msgid "B<size_t strnlen(const char *>I<s>B<, size_t >I<maxlen>B<);>\n"
2395 #: build/C/man3/strnlen.3:29
2396 msgid "B<strnlen>():"
2400 #: build/C/man3/strnlen.3:51
2402 "The B<strnlen>() function returns the number of bytes in the string pointed "
2403 "to by I<s>, excluding the terminating null bye (\\(aq\\e0\\(aq), but at most "
2404 "I<maxlen>. In doing this, B<strnlen>() looks only at the first I<maxlen> "
2405 "bytes at I<s> and never beyond I<s+maxlen>."
2409 #: build/C/man3/strnlen.3:58
2411 "The B<strnlen>() function returns I<strlen(s)>, if that is less than "
2412 "I<maxlen>, or I<maxlen> if there is no null byte (\\(aq\\e0\\(aq) among the "
2413 "first I<maxlen> bytes pointed to by I<s>."
2417 #: build/C/man3/strnlen.3:60
2418 msgid "POSIX.1-2008."
2422 #: build/C/man3/strnlen.3:62
2423 msgid "B<strlen>(3)"
2427 #: build/C/man3/strpbrk.3:30
2433 #: build/C/man3/strpbrk.3:33
2434 msgid "strpbrk - search a string for any of a set of bytes"
2438 #: build/C/man3/strpbrk.3:44
2440 "The B<strpbrk>() function locates the first occurrence in the string I<s> "
2441 "of any of the bytes in the string I<accept>."
2445 #: build/C/man3/strpbrk.3:50
2447 "The B<strpbrk>() function returns a pointer to the byte in I<s> that "
2448 "matches one of the bytes in I<accept>, or NULL if no such byte is found."
2452 #: build/C/man3/strpbrk.3:63
2454 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
2455 "B<strsep>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3), B<wcspbrk>(3)"
2459 #: build/C/man3/strsep.3:33
2465 #: build/C/man3/strsep.3:36
2466 msgid "strsep - extract token from string"
2470 #: build/C/man3/strsep.3:50
2471 msgid "B<strsep>(): _BSD_SOURCE"
2475 #: build/C/man3/strsep.3:63
2477 "If I<*stringp> is NULL, the B<strsep>() function returns NULL and does "
2478 "nothing else. Otherwise, this function finds the first token in the string "
2479 "I<*stringp>, where tokens are delimited by symbols in the string I<delim>. "
2480 "This token is terminated by overwriting the delimiter with a null byte "
2481 "(\\(aq\\e0\\(aq) and I<*stringp> is updated to point past the token. In "
2482 "case no delimiter was found, the token is taken to be the entire string "
2483 "I<*stringp>, and I<*stringp> is made NULL."
2487 #: build/C/man3/strsep.3:68
2489 "The B<strsep>() function returns a pointer to the token, that is, it "
2490 "returns the original value of I<*stringp>."
2494 #: build/C/man3/strsep.3:70
2499 #: build/C/man3/strsep.3:79
2501 "The B<strsep>() function was introduced as a replacement for B<strtok>(3), "
2502 "since the latter cannot handle empty fields. However, B<strtok>(3) "
2503 "conforms to C89/C99 and hence is more portable."
2507 #: build/C/man3/strsep.3:82
2508 msgid "Be cautious when using this function. If you do use it, note that:"
2512 #: build/C/man3/strsep.3:84
2513 msgid "This function modifies its first argument."
2517 #: build/C/man3/strsep.3:86
2518 msgid "This function cannot be used on constant strings."
2522 #: build/C/man3/strsep.3:88
2523 msgid "The identity of the delimiting character is lost."
2527 #: build/C/man3/strsep.3:98
2529 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
2530 "B<strpbrk>(3), B<strspn>(3), B<strstr>(3), B<strtok>(3)"
2534 #: build/C/man3/strsignal.3:30
2540 #: build/C/man3/strsignal.3:30
2546 #: build/C/man3/strsignal.3:33
2547 msgid "strsignal - return string describing signal"
2551 #: build/C/man3/strsignal.3:38
2553 msgid "B<char *strsignal(int >I<sig>B<);>\n"
2557 #: build/C/man3/strsignal.3:40
2559 msgid "B<extern const char * const >I<sys_siglist>B<[];>\n"
2563 #: build/C/man3/strsignal.3:48
2564 msgid "B<strsignal>():"
2568 #: build/C/man3/strsignal.3:68
2570 "The B<strsignal>() function returns a string describing the signal number "
2571 "passed in the argument I<sig>. The string can only be used until the next "
2572 "call to B<strsignal>()."
2576 #: build/C/man3/strsignal.3:75
2578 "The array I<sys_siglist> holds the signal description strings indexed by "
2579 "signal number. The B<strsignal>() function should be used if possible "
2580 "instead of this array."
2584 #: build/C/man3/strsignal.3:82
2586 "The B<strsignal>() function returns the appropriate description string, or "
2587 "an unknown signal message if the signal number is invalid. On some systems "
2588 "(but not on Linux), a NULL pointer may be returned instead for an invalid "
2593 #: build/C/man3/strsignal.3:85
2594 msgid "POSIX.1-2008. Present on Solaris and the BSDs."
2598 #: build/C/man3/strsignal.3:88
2599 msgid "B<psignal>(3), B<strerror>(3)"
2603 #: build/C/man3/strspn.3:30
2609 #: build/C/man3/strspn.3:33
2610 msgid "strspn, strcspn - search a string for a set of bytes"
2614 #: build/C/man3/strspn.3:47
2616 "The B<strspn>() function calculates the length (in bytes) of the initial "
2617 "segment of I<s> which consists entirely of bytes in I<accept>."
2621 #: build/C/man3/strspn.3:53
2623 "The B<strcspn>() function calculates the length of the initial segment of "
2624 "I<s> which consists entirely of bytes not in I<reject>."
2628 #: build/C/man3/strspn.3:59
2630 "The B<strspn>() function returns the number of bytes in the initial segment "
2631 "of I<s> which consist only of bytes from I<accept>."
2635 #: build/C/man3/strspn.3:65
2637 "The B<strcspn>() function returns the number of bytes in the initial "
2638 "segment of I<s> which are not in the string I<reject>."
2642 #: build/C/man3/strspn.3:79
2644 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
2645 "B<strpbrk>(3), B<strsep>(3), B<strstr>(3), B<strtok>(3), B<wcscspn>(3), "
2650 #: build/C/man3/strstr.3:33
2656 #: build/C/man3/strstr.3:36
2657 msgid "strstr, strcasestr - locate a substring"
2661 #: build/C/man3/strstr.3:47
2663 msgid "B<char *strcasestr(const char *>I<haystack>B<, const char *>I<needle>B<);>\n"
2667 #: build/C/man3/strstr.3:54
2669 "The B<strstr>() function finds the first occurrence of the substring "
2670 "I<needle> in the string I<haystack>. The terminating null bytes "
2671 "(\\(aq\\e0\\(aq) are not compared."
2675 #: build/C/man3/strstr.3:60
2677 "The B<strcasestr>() function is like B<strstr>(), but ignores the case of "
2682 #: build/C/man3/strstr.3:63
2684 "These functions return a pointer to the beginning of the substring, or NULL "
2685 "if the substring is not found."
2689 #: build/C/man3/strstr.3:70
2691 "The B<strstr>() function conforms to C89 and C99. The B<strcasestr>() "
2692 "function is a nonstandard extension."
2696 #: build/C/man3/strstr.3:76
2698 "Early versions of Linux libc (like 4.5.26) would not allow an empty "
2699 "I<needle> argument for B<strstr>(). Later versions (like 4.6.27) work "
2700 "correctly, and return I<haystack> when I<needle> is empty."
2704 #: build/C/man3/strstr.3:88
2706 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strcasecmp>(3), B<strchr>(3), "
2707 "B<string>(3), B<strpbrk>(3), B<strsep>(3), B<strspn>(3), B<strtok>(3), "
2712 #: build/C/man3/strtok.3:30
2718 #: build/C/man3/strtok.3:33
2719 msgid "strtok, strtok_r - extract tokens from strings"
2723 #: build/C/man3/strtok.3:38
2725 msgid "B<char *strtok(char *>I<str>B<, const char *>I<delim>B<);>\n"
2729 #: build/C/man3/strtok.3:40
2732 "B<char *strtok_r(char *>I<str>B<, const char *>I<delim>B<, char "
2733 "**>I<saveptr>B<);>\n"
2737 #: build/C/man3/strtok.3:51
2739 "B<strtok_r>(): _SVID_SOURCE || _BSD_SOURCE || _POSIX_C_SOURCE\\ E<gt>=\\ 1 "
2740 "|| _XOPEN_SOURCE || _POSIX_SOURCE"
2744 #: build/C/man3/strtok.3:62
2746 "The B<strtok>() function parses a string into a sequence of tokens. On the "
2747 "first call to B<strtok>() the string to be parsed should be specified in "
2748 "I<str>. In each subsequent call that should parse the same string, I<str> "
2753 #: build/C/man3/strtok.3:67
2755 "The I<delim> argument specifies a set of bytes that delimit the tokens in "
2756 "the parsed string. The caller may specify different strings in I<delim> in "
2757 "successive calls that parse the same string."
2761 #: build/C/man3/strtok.3:76
2763 "Each call to B<strtok>() returns a pointer to a null-terminated string "
2764 "containing the next token. This string does not include the delimiting "
2765 "byte. If no more tokens are found, B<strtok>() returns NULL."
2769 #: build/C/man3/strtok.3:83
2771 "A sequence of two or more contiguous delimiter bytes in the parsed string is "
2772 "considered to be a single delimiter. Delimiter bytes at the start or end of "
2773 "the string are ignored. Put another way: the tokens returned by B<strtok>() "
2774 "are always nonempty strings."
2778 #: build/C/man3/strtok.3:93
2780 "The B<strtok_r>() function is a reentrant version B<strtok>(). The "
2781 "I<saveptr> argument is a pointer to a I<char *> variable that is used "
2782 "internally by B<strtok_r>() in order to maintain context between successive "
2783 "calls that parse the same string."
2787 #: build/C/man3/strtok.3:102
2789 "On the first call to B<strtok_r>(), I<str> should point to the string to be "
2790 "parsed, and the value of I<saveptr> is ignored. In subsequent calls, I<str> "
2791 "should be NULL, and I<saveptr> should be unchanged since the previous call."
2795 #: build/C/man3/strtok.3:106
2797 "Different strings may be parsed concurrently using sequences of calls to "
2798 "B<strtok_r>() that specify different I<saveptr> arguments."
2802 #: build/C/man3/strtok.3:113
2804 "The B<strtok>() and B<strtok_r>() functions return a pointer to the next "
2805 "token, or NULL if there are no more tokens."
2809 #: build/C/man3/strtok.3:114
2815 #: build/C/man3/strtok.3:117
2816 msgid "SVr4, POSIX.1-2001, 4.3BSD, C89, C99."
2820 #: build/C/man3/strtok.3:117
2822 msgid "B<strtok_r>()"
2826 #: build/C/man3/strtok.3:120
2827 msgid "POSIX.1-2001."
2831 #: build/C/man3/strtok.3:123
2832 msgid "Be cautious when using these functions. If you do use them, note that:"
2836 #: build/C/man3/strtok.3:125
2837 msgid "These functions modify their first argument."
2841 #: build/C/man3/strtok.3:127
2842 msgid "These functions cannot be used on constant strings."
2846 #: build/C/man3/strtok.3:129
2847 msgid "The identity of the delimiting byte is lost."
2851 #: build/C/man3/strtok.3:136
2853 "The B<strtok>() function uses a static buffer while parsing, so it's not "
2854 "thread safe. Use B<strtok_r>() if this matters to you."
2858 #: build/C/man3/strtok.3:145
2860 "The program below uses nested loops that employ B<strtok_r>() to break a "
2861 "string into a two-level hierarchy of tokens. The first command-line "
2862 "argument specifies the string to be parsed. The second argument specifies "
2863 "the delimiter byte(s) to be used to separate that string into \"major\" "
2864 "tokens. The third argument specifies the delimiter byte(s) to be used to "
2865 "separate the \"major\" tokens into subtokens."
2869 #: build/C/man3/strtok.3:147
2870 msgid "An example of the output produced by this program is the following:"
2874 #: build/C/man3/strtok.3:159
2877 "$B< ./a.out \\(aqa/bbb///cc;xxx:yyy:\\(aq \\(aq:;\\(aq \\(aq/\\(aq>\n"
2889 #: build/C/man3/strtok.3:161
2891 msgid "Program source"
2895 #: build/C/man3/strtok.3:167
2898 "#include E<lt>stdio.hE<gt>\n"
2899 "#include E<lt>stdlib.hE<gt>\n"
2900 "#include E<lt>string.hE<gt>\n"
2904 #: build/C/man3/strtok.3:174
2908 "main(int argc, char *argv[])\n"
2910 " char *str1, *str2, *token, *subtoken;\n"
2911 " char *saveptr1, *saveptr2;\n"
2916 #: build/C/man3/strtok.3:180
2919 " if (argc != 4) {\n"
2920 " fprintf(stderr, \"Usage: %s string delim subdelim\\en\",\n"
2922 " exit(EXIT_FAILURE);\n"
2927 #: build/C/man3/strtok.3:186
2930 " for (j = 1, str1 = argv[1]; ; j++, str1 = NULL) {\n"
2931 " token = strtok_r(str1, argv[2], &saveptr1);\n"
2932 " if (token == NULL)\n"
2934 " printf(\"%d: %s\\en\", j, token);\n"
2938 #: build/C/man3/strtok.3:194
2941 " for (str2 = token; ; str2 = NULL) {\n"
2942 " subtoken = strtok_r(str2, argv[3], &saveptr2);\n"
2943 " if (subtoken == NULL)\n"
2945 " printf(\"\\t --E<gt> %s\\en\", subtoken);\n"
2951 #: build/C/man3/strtok.3:197
2954 " exit(EXIT_SUCCESS);\n"
2959 #: build/C/man3/strtok.3:203
2961 "Another example program using B<strtok>() can be found in "
2962 "B<getaddrinfo_a>(3)."
2966 #: build/C/man3/strtok.3:214
2968 "B<index>(3), B<memchr>(3), B<rindex>(3), B<strchr>(3), B<string>(3), "
2969 "B<strpbrk>(3), B<strsep>(3), B<strspn>(3), B<strstr>(3), B<wcstok>(3)"
2973 #: build/C/man3/strverscmp.3:25
2979 #: build/C/man3/strverscmp.3:25
2985 #: build/C/man3/strverscmp.3:28
2986 msgid "strverscmp - compare two version strings"
2990 #: build/C/man3/strverscmp.3:35
2992 msgid "B<int strverscmp(const char *>I<s1>B<, const char *>I<s2>B<);>\n"
2995 #. classical solution: "rename jan jan0 jan?"
2997 #: build/C/man3/strverscmp.3:52
2999 "Often one has files I<jan1>, I<jan2>, ..., I<jan9>, I<jan10>, ... and it "
3000 "feels wrong when B<ls>(1) orders them I<jan1>, I<jan10>, ..., I<jan2>, ..., "
3001 "I<jan9>. In order to rectify this, GNU introduced the I<-v> option to "
3002 "B<ls>(1), which is implemented using B<versionsort>(3), which again uses "
3007 #: build/C/man3/strverscmp.3:63
3009 "Thus, the task of B<strverscmp>() is to compare two strings and find the "
3010 "\"right\" order, while B<strcmp>(3) only finds the lexicographic order. "
3011 "This function does not use the locale category B<LC_COLLATE>, so is meant "
3012 "mostly for situations where the strings are expected to be in ASCII."
3016 #: build/C/man3/strverscmp.3:81
3018 "What this function does is the following. If both strings are equal, return "
3019 "0. Otherwise find the position between two bytes with the property that "
3020 "before it both strings are equal, while directly after it there is a "
3021 "difference. Find the largest consecutive digit strings containing (or "
3022 "starting at, or ending at) this position. If one or both of these is empty, "
3023 "then return what B<strcmp>(3) would have returned (numerical ordering of "
3024 "byte values). Otherwise, compare both digit strings numerically, where "
3025 "digit strings with one or more leading zeros are interpreted as if they have "
3026 "a decimal point in front (so that in particular digit strings with more "
3027 "leading zeros come before digit strings with fewer leading zeros). Thus, "
3028 "the ordering is I<000>, I<00>, I<01>, I<010>, I<09>, I<0>, I<1>, I<9>, "
3033 #: build/C/man3/strverscmp.3:88
3035 "The B<strverscmp>() function returns an integer less than, equal to, or "
3036 "greater than zero if I<s1> is found, respectively, to be earlier than, equal "
3037 "to, or later than I<s2>."
3041 #: build/C/man3/strverscmp.3:95
3042 msgid "B<rename>(1), B<strcasecmp>(3), B<strcmp>(3), B<strcoll>(3)"
3046 #: build/C/man3/strxfrm.3:30
3052 #: build/C/man3/strxfrm.3:33
3053 msgid "strxfrm - string transformation"
3057 #: build/C/man3/strxfrm.3:56
3059 "The B<strxfrm>() function transforms the I<src> string into a form such "
3060 "that the result of B<strcmp>(3) on two strings that have been transformed "
3061 "with B<strxfrm>() is the same as the result of B<strcoll>(3) on the two "
3062 "strings before their transformation. The first I<n> bytes of the "
3063 "transformed string are placed in I<dest>. The transformation is based on "
3064 "the program's current locale for category B<LC_COLLATE>. (See "
3069 #: build/C/man3/strxfrm.3:64
3071 "The B<strxfrm>() function returns the number of bytes required to store the "
3072 "transformed string in I<dest> excluding the terminating null byte "
3073 "(\\(aq\\e0\\(aq). If the value returned is I<n> or more, the contents of "
3074 "I<dest> are indeterminate."
3078 #: build/C/man3/strxfrm.3:72
3080 "In the I<\"POSIX\"> or I<\"C\"> locales B<strxfrm>() is equivalent to "
3081 "copying the string with B<strncpy>(3)."
3085 #: build/C/man3/strxfrm.3:80
3087 "B<bcmp>(3), B<memcmp>(3), B<setlocale>(3), B<strcasecmp>(3), B<strcmp>(3), "
3088 "B<strcoll>(3), B<string>(3)"