summaryrefslogtreecommitdiffstats
path: root/man3/mbstowcs.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/mbstowcs.3')
-rw-r--r--man3/mbstowcs.364
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