summaryrefslogtreecommitdiffstats
path: root/man3/wcstombs.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/wcstombs.3')
-rw-r--r--man3/wcstombs.364
1 files changed, 64 insertions, 0 deletions
diff --git a/man3/wcstombs.3 b/man3/wcstombs.3
new file mode 100644
index 000000000..17ce12ea2
--- /dev/null
+++ b/man3/wcstombs.3
@@ -0,0 +1,64 @@
+.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" 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 WCSTOMBS 3 1999-07-25 "GNU" "Linux Programmer's Manual"
+.SH NAME
+wcstombs \- convert a wide character string to a multibyte string
+.SH SYNOPSIS
+.nf
+.B #include <stdlib.h>
+.sp
+.BI "size_t wcstombs(char *" dest ", const wchar_t *" src ", size_t " n );
+.fi
+.SH DESCRIPTION
+If \fIdest\fP is not a NULL pointer, the \fBwcstombs\fP function converts
+the wide-character string \fIsrc\fP to a multibyte string starting at
+\fIdest\fP. At most \fIn\fP bytes are written to \fIdest\fP. The conversion
+starts in the initial state. The conversion can stop for three reasons:
+.PP
+1. A wide character has been encountered that can not be represented as a
+multibyte sequence (according to the current locale). In this case
+(size_t)(-1) is returned.
+.PP
+2. The length limit forces a stop. In this case the number of bytes written to
+\fIdest\fP is returned, but the shift state at this point is lost.
+.PP
+3. The wide-character string has been completely converted, including the
+terminating L'\\0'. In this case the conversion ends in the initial state.
+The number of bytes written to \fIdest\fP, excluding the terminating '\\0'
+byte, is returned.
+.PP
+The programmer must ensure that there is room for at least \fIn\fP bytes
+at \fIdest\fP.
+.PP
+If \fIdest\fP is NULL, \fIn\fP is ignored, and the conversion proceeds as
+above, except that the converted bytes are not written out to memory, and that
+no length limit exists.
+.PP
+In order to avoid the case 2 above, the programmer should make sure \fIn\fP
+is greater or equal to \fIwcstombs(NULL,src,0)+1\fP.
+.SH "RETURN VALUE"
+The \fBwcstombs\fP function returns the number of bytes that make up the
+converted part of multibyte sequence, not including the terminating null byte.
+If a wide character was encountered which could not be converted, (size_t)(-1)
+is returned.
+.SH "CONFORMING TO"
+ISO/ANSI C, UNIX98
+.SH "SEE ALSO"
+.BR wcsrtombs (3)
+.SH NOTES
+The behaviour of \fBwcstombs\fP depends on the LC_CTYPE category of the
+current locale.
+.PP
+The function \fBwcsrtombs\fP provides a thread safe interface to the same
+functionality.