OSDN Git Service

e8684e4931e64ec6477ea1e35892a9ba9fc44521
[linuxjm/LDP_man-pages.git] / original / man3 / wctomb.3
1 .\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
2 .\"
3 .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
8 .\" %%%LICENSE_END
9 .\"
10 .\" References consulted:
11 .\"   GNU glibc-2 source code and manual
12 .\"   Dinkumware C library reference http://www.dinkumware.com/
13 .\"   OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
14 .\"   ISO/IEC 9899:1999
15 .\"
16 .TH WCTOMB 3  1999-07-25 "GNU" "Linux Programmer's Manual"
17 .SH NAME
18 wctomb \- convert a wide character to a multibyte sequence
19 .SH SYNOPSIS
20 .nf
21 .B #include <stdlib.h>
22 .sp
23 .BI "int wctomb(char *" s ", wchar_t " wc );
24 .fi
25 .SH DESCRIPTION
26 If
27 .I s
28 is not NULL,
29 the
30 .BR wctomb ()
31 function converts the wide character
32 .I wc
33 to its multibyte representation and stores it at the beginning of
34 the character array pointed to by
35 .IR s .
36 It updates the shift state, which
37 is stored in a static anonymous variable
38 known only to the
39 .BR wctomb ()
40 function,
41 and returns the length of said multibyte representation,
42 that is, the number of
43 bytes written at
44 .IR s .
45 .PP
46 The programmer must ensure that there is
47 room for at least
48 .B MB_CUR_MAX
49 bytes at
50 .IR s .
51 .PP
52 If
53 .I s
54 is NULL, the
55 .BR wctomb ()
56 function
57 .\" The Dinkumware doc and the Single UNIX specification say this, but
58 .\" glibc doesn't implement this.
59 resets the shift state, known only to this function,
60 to the initial state, and
61 returns nonzero if the encoding has nontrivial shift state,
62 or zero if the encoding is stateless.
63 .SH RETURN VALUE
64 If
65 .I s
66 is not NULL, the
67 .BR wctomb ()
68 function
69 returns the number of bytes
70 that have been written to the byte array at
71 .IR s .
72 If
73 .I wc
74 can not be
75 represented as a multibyte sequence (according
76 to the current locale), \-1 is returned.
77 .PP
78 If
79 .I s
80 is NULL, the
81 .BR wctomb ()
82 function returns nonzero if the
83 encoding has nontrivial shift state, or zero if the encoding is stateless.
84 .SH CONFORMING TO
85 C99.
86 .SH NOTES
87 The behavior of
88 .BR wctomb ()
89 depends on the
90 .B LC_CTYPE
91 category of the
92 current locale.
93 .PP
94 This function is not multithread safe.
95 The function
96 .BR wcrtomb (3)
97 provides
98 a better interface to the same functionality.
99 .SH SEE ALSO
100 .BR MB_CUR_MAX (3),
101 .BR wcrtomb (3),
102 .BR wcstombs (3)