diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-24 04:52:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-24 04:52:22 +0000 |
commit | 7f3caba522f4d24764f29d83aa2de9198bb7f01c (patch) | |
tree | 66b798ea74302325d6a5c11df044cbe4bb845af1 /man3/mbstowcs.3 | |
parent | Adding upstream version 6.7. (diff) | |
download | manpages-7f3caba522f4d24764f29d83aa2de9198bb7f01c.tar.xz manpages-7f3caba522f4d24764f29d83aa2de9198bb7f01c.zip |
Adding upstream version 6.8.upstream/6.8upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man3/mbstowcs.3')
-rw-r--r-- | man3/mbstowcs.3 | 237 |
1 files changed, 0 insertions, 237 deletions
diff --git a/man3/mbstowcs.3 b/man3/mbstowcs.3 deleted file mode 100644 index 6a0d655..0000000 --- a/man3/mbstowcs.3 +++ /dev/null @@ -1,237 +0,0 @@ -'\" t -.\" Copyright (c) Bruno Haible <haible@clisp.cons.org> -.\" and Copyright 2014 Michael Kerrisk <mtk.manpages@gmail.com> -.\" -.\" SPDX-License-Identifier: GPL-2.0-or-later -.\" -.\" References consulted: -.\" GNU glibc-2 source code and manual -.\" Dinkumware C library reference http://www.dinkumware.com/ -.\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html -.\" ISO/IEC 9899:1999 -.\" -.TH mbstowcs 3 2023-11-14 "Linux man-pages 6.7" -.SH NAME -mbstowcs \- convert a multibyte string to a wide-character string -.SH LIBRARY -Standard C library -.RI ( libc ", " \-lc ) -.SH SYNOPSIS -.nf -.B #include <stdlib.h> -.P -.BI "size_t mbstowcs(wchar_t " dest "[restrict ." dsize "], \ -const char *restrict " src , -.BI " size_t " dsize ); -.fi -.SH DESCRIPTION -If -.I dest -is not NULL, -convert the -multibyte string -.I src -to a wide-character string starting at -.IR dest . -At most -.I dsize -wide characters are written to -.IR dest . -The sequence of characters in the string -.I src -shall begin in the initial shift state. -The conversion can stop for three reasons: -.IP \[bu] 3 -An invalid multibyte sequence has been encountered. -In this case, -.I (size_t)\ \-1 -is returned. -.IP \[bu] -.I dsize -non-L\[aq]\e0\[aq] wide characters have been stored at -.IR dest . -In this case, the number of wide characters written to -.I dest -is returned, but the -shift state at this point is lost. -.IP \[bu] -The multibyte string has been completely converted, including the -terminating null character (\[aq]\e0\[aq]). -In this case, the number of wide characters written to -.IR dest , -excluding the terminating null wide character, is returned. -.P -If -.I dest -is NULL, -.I dsize -is ignored, and the conversion proceeds as -above, except that the converted wide characters are not written out to memory, -and that no length limit exists. -.P -In order to avoid the case 2 above, the programmer should make sure -.I dsize -is -greater than or equal to -.IR "mbstowcs(NULL,src,0)+1" . -.P -The programmer must ensure that there is room for at least -.I dsize -wide -characters at -.IR dest . -.SH RETURN VALUE -The number of wide characters that make -up the converted part of the wide-character string, not including the -terminating null wide character. -If an invalid multibyte sequence was -encountered, -.I (size_t)\ \-1 -is returned. -.SH ATTRIBUTES -For an explanation of the terms used in this section, see -.BR attributes (7). -.TS -allbox; -lbx lb lb -l l l. -Interface Attribute Value -T{ -.na -.nh -.BR mbstowcs () -T} Thread safety MT-Safe -.TE -.SH VERSIONS -The function -.BR mbsrtowcs (3) -provides a better interface to the same -functionality. -.SH STANDARDS -C11, POSIX.1-2008. -.SH HISTORY -POSIX.1-2001, C99. -.SH NOTES -The behavior of -.BR mbstowcs () -depends on the -.B LC_CTYPE -category of the -current locale. -.SH EXAMPLES -The program below illustrates the use of -.BR mbstowcs (), -as well as some of the wide character classification functions. -An example run is the following: -.P -.in +4n -.EX -$ ./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 - ü alpha lower - ß alpha lower - e alpha lower - ! !alpha -.EE -.in -.SS Program source -\& -.\" SRC BEGIN (mbstowcs.c) -.EX -#include <locale.h> -#include <stdio.h> -#include <stdlib.h> -#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 -.\" SRC END -.SH SEE ALSO -.BR mblen (3), -.BR mbsrtowcs (3), -.BR mbtowc (3), -.BR wcstombs (3), -.BR wctomb (3) |