diff options
Diffstat (limited to 'man3/mbstowcs.3')
-rw-r--r-- | man3/mbstowcs.3 | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/man3/mbstowcs.3 b/man3/mbstowcs.3 index 44cc989c7..c66b9c2d1 100644 --- a/man3/mbstowcs.3 +++ b/man3/mbstowcs.3 @@ -10,7 +10,7 @@ .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html .\" ISO/IEC 9899:1999 .\" -.TH mbstowcs 3 2023-02-05 "Linux man-pages 6.03" +.TH mbstowcs 3 2023-07-20 "Linux man-pages 6.05.01" .SH NAME mbstowcs \- convert a multibyte string to a wide-character string .SH LIBRARY @@ -95,22 +95,27 @@ is returned. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). -.ad l -.nh .TS allbox; lbx lb lb l l l. Interface Attribute Value T{ +.na +.nh .BR mbstowcs () T} Thread safety MT-Safe .TE -.hy -.ad .sp 1 +.SH VERSIONS +The function +.BR mbsrtowcs (3) +provides a better interface to the same +functionality. .SH STANDARDS -POSIX.1-2001, POSIX.1-2008, C99. +C11, POSIX.1-2008. +.SH HISTORY +POSIX.1-2001, C99. .SH NOTES The behavior of .BR mbstowcs () @@ -118,11 +123,6 @@ depends on the .B LC_CTYPE category of the current locale. -.PP -The function -.BR mbsrtowcs (3) -provides a better interface to the same -functionality. .SH EXAMPLES The program below illustrates the use of .BR mbstowcs (), @@ -135,7 +135,7 @@ $ ./t_mbstowcs de_DE.UTF\-8 Grüße! Length of source string (excluding terminator): 8 bytes 6 multibyte characters - +\& Wide character string is: Grüße! (6 characters) G alpha upper r alpha lower @@ -155,81 +155,81 @@ Wide character string is: Grüße! (6 characters) #include <string.h> #include <wchar.h> #include <wctype.h> - +\& int main(int argc, char *argv[]) { size_t mbslen; /* Number of multibyte characters in source */ wchar_t *wcs; /* Pointer to converted wide character string */ - +\& if (argc < 3) { fprintf(stderr, "Usage: %s <locale> <string>\en", argv[0]); exit(EXIT_FAILURE); } - +\& /* Apply the specified locale. */ - +\& if (setlocale(LC_ALL, argv[1]) == NULL) { perror("setlocale"); exit(EXIT_FAILURE); } - +\& /* Calculate the length required to hold argv[2] converted to a wide character string. */ - +\& mbslen = mbstowcs(NULL, argv[2], 0); if (mbslen == (size_t) \-1) { perror("mbstowcs"); exit(EXIT_FAILURE); } - +\& /* Describe the source string to the user. */ - +\& printf("Length of source string (excluding terminator):\en"); printf(" %zu bytes\en", strlen(argv[2])); printf(" %zu multibyte characters\en\en", mbslen); - +\& /* Allocate wide character string of the desired size. Add 1 to allow for terminating null wide character (L\[aq]\e0\[aq]). */ - +\& wcs = calloc(mbslen + 1, sizeof(*wcs)); if (wcs == NULL) { perror("calloc"); exit(EXIT_FAILURE); } - +\& /* Convert the multibyte character string in argv[2] to a wide character string. */ - +\& if (mbstowcs(wcs, argv[2], mbslen + 1) == (size_t) \-1) { perror("mbstowcs"); exit(EXIT_FAILURE); } - +\& printf("Wide character string is: %ls (%zu characters)\en", wcs, mbslen); - +\& /* Now do some inspection of the classes of the characters in the wide character string. */ - +\& for (wchar_t *wp = wcs; *wp != 0; wp++) { printf(" %lc ", (wint_t) *wp); - +\& if (!iswalpha(*wp)) printf("!"); printf("alpha "); - +\& if (iswalpha(*wp)) { if (iswupper(*wp)) printf("upper "); - +\& if (iswlower(*wp)) printf("lower "); } - +\& putchar(\[aq]\en\[aq]); } - +\& exit(EXIT_SUCCESS); } .EE |