Am 18.02.2016 14:12, schrieb Michael Kerrisk (man-pages): > Hello Alan, > > On 02/03/2016 06:25 PM, Alan Aversa wrote: >> Hello, >> >> The 2015-08-08 strlen man-page is incorrect. Here's a diff: >> >> --- a/man3/strlen.3 >> +++ b/man3/strlen.3 >> @@ -45,7 +45,7 @@ excluding the terminating null byte (\(aq\\0\(aq). >> .SH RETURN VALUE >> The >> .BR strlen () >> -function returns the number of bytes in the string >> +function returns the number of *characters* in the string that >> precede the terminating null character > > I went for a simpler change: s/bytes/characters/ For my understanding this is wrong. 1 character may be represented by 2 or more bytes (utf8). see this example, the string (test) is 3 characters long and takes 6 bytes space. did i miss something ? did the specification of character change ? re, wh #include <stdio.h> #include <string.h> int main() { char *test="ÖÄÜ"; int i; int len=strlen(test); printf("strlen=%d\n",len); for(i=0;i<len;i++) printf("%02x\n",(unsigned char)*(test+i)); return 0; } output: strlen=6 c3 96 c3 84 c3 9c > >> .IR s . >> .SH ATTRIBUTES >> For an explanation of the terms used in this section, see >> @@ -60,7 +60,7 @@ T{ >> T} Thread safety MT-Safe >> .TE >> .SH CONFORMING TO >> -POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD. >> +POSIX.1-2001, POSIX.1-2008, C89, C99, C11, SVr4, 4.3BSD. > > Fixed. > >> .SH SEE ALSO >> .BR string (3), >> .BR strnlen (3), >> >> Page 392 (PDF p. 390, §7.24.6.3) of the C11 standard >> <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf> says: >> >> The *strlen* function returns the number of characters that precede >> the terminating null character. > > Thanks for the report. Interesting, POSIX.1 still uses the term "bytes" > the spec. > > Cheers, > > Michael > > -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html