xref: /illumos-gate/usr/src/man/man3c/wcstombs.3c (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
16fdae1bdSYuri Pankov.\"
26fdae1bdSYuri Pankov.\" This file and its contents are supplied under the terms of the
36fdae1bdSYuri Pankov.\" Common Development and Distribution License ("CDDL"), version 1.0.
46fdae1bdSYuri Pankov.\" You may only use this file in accordance with the terms of version
56fdae1bdSYuri Pankov.\" 1.0 of the CDDL.
66fdae1bdSYuri Pankov.\"
76fdae1bdSYuri Pankov.\" A full copy of the text of the CDDL should have accompanied this
86fdae1bdSYuri Pankov.\" source.  A copy of the CDDL is also available via the Internet at
96fdae1bdSYuri Pankov.\" http://www.illumos.org/license/CDDL.
106fdae1bdSYuri Pankov.\"
116fdae1bdSYuri Pankov.\"
126fdae1bdSYuri Pankov.\" Copyright 2017 Nexenta Systems, Inc.
136fdae1bdSYuri Pankov.\"
146fdae1bdSYuri Pankov.Dd March 28, 2017
156fdae1bdSYuri Pankov.Dt WCSTOMBS 3C
166fdae1bdSYuri Pankov.Os
176fdae1bdSYuri Pankov.Sh NAME
186fdae1bdSYuri Pankov.Nm wcstombs ,
196fdae1bdSYuri Pankov.Nm wcstombs_l
206fdae1bdSYuri Pankov.Nd convert a wide-character string to a multibyte character string
216fdae1bdSYuri Pankov.Sh LIBRARY
226fdae1bdSYuri Pankov.Lb libc
236fdae1bdSYuri Pankov.Sh SYNOPSIS
246fdae1bdSYuri Pankov.In stdlib.h
256fdae1bdSYuri Pankov.Ft size_t
266fdae1bdSYuri Pankov.Fo wcstombs
276fdae1bdSYuri Pankov.Fa "char *restrict s"
286fdae1bdSYuri Pankov.Fa "const wchar_t *restrict pwcs"
296fdae1bdSYuri Pankov.Fa "size_t n"
306fdae1bdSYuri Pankov.Fc
316fdae1bdSYuri Pankov.In stdlib.h
326fdae1bdSYuri Pankov.In xlocale.h
336fdae1bdSYuri Pankov.Ft size_t
346fdae1bdSYuri Pankov.Fo wcstombs_l
356fdae1bdSYuri Pankov.Fa "char *restrict s"
366fdae1bdSYuri Pankov.Fa "const wchar_t *restrict pwcs"
376fdae1bdSYuri Pankov.Fa "size_t n"
386fdae1bdSYuri Pankov.Fa "locale_t loc"
396fdae1bdSYuri Pankov.Fc
406fdae1bdSYuri Pankov.Sh DESCRIPTION
416fdae1bdSYuri PankovThe
426fdae1bdSYuri Pankov.Fn wcstombs
436fdae1bdSYuri Pankovfunction converts a wide-character string
446fdae1bdSYuri Pankov.Fa pwcs
456fdae1bdSYuri Pankovinto a multibyte character string, beginning in the initial conversion state.
466fdae1bdSYuri PankovIf
476fdae1bdSYuri Pankov.Fa s
486fdae1bdSYuri Pankovis not
496fdae1bdSYuri Pankov.Dv NULL ,
506fdae1bdSYuri Pankovconverted characters are stored into the array pointed to by
516fdae1bdSYuri Pankov.Fa s .
526fdae1bdSYuri Pankov.Pp
536fdae1bdSYuri PankovConversion continues up to and including a terminating null wide-character,
546fdae1bdSYuri Pankovwhich is also stored, or until
556fdae1bdSYuri Pankov.Fa n
566fdae1bdSYuri Pankovbytes have been stored into the array pointed to by
576fdae1bdSYuri Pankov.Fa s .
586fdae1bdSYuri PankovIf the latter case results in partial multibyte character at the end of the
596fdae1bdSYuri Pankovstring, it is not stored.
606fdae1bdSYuri Pankov.Pp
616fdae1bdSYuri PankovThe behavior of
626fdae1bdSYuri Pankov.Fn wcstombs
636fdae1bdSYuri Pankovfunction is affected by the
646fdae1bdSYuri Pankov.Ev LC_CTYPE
656fdae1bdSYuri Pankovcategory of the current locale.
666fdae1bdSYuri Pankov.Pp
676fdae1bdSYuri PankovThe
686fdae1bdSYuri Pankov.Fn wcstombs_l
696fdae1bdSYuri Pankovfunction behaves identically to
706fdae1bdSYuri Pankov.Fn wcstombs ,
716fdae1bdSYuri Pankovexcept instead of using the current locale, it uses the locale as specified by
726fdae1bdSYuri Pankov.Fa loc .
736fdae1bdSYuri Pankov.Sh RETURN VALUES
746fdae1bdSYuri PankovThe
756fdae1bdSYuri Pankov.Fn wcstombs
766fdae1bdSYuri Pankovand
776fdae1bdSYuri Pankov.Fn wcstombs_l
786fdae1bdSYuri Pankovfunctions return the number of bytes in the resulting character sequence, not
796fdae1bdSYuri Pankovincluding the terminating null
806fdae1bdSYuri Pankov.Pq if any ,
816fdae1bdSYuri Pankovor
826fdae1bdSYuri Pankov.Li \-1
836fdae1bdSYuri Pankovif a code is reached that does not correspond to a valid character.
846fdae1bdSYuri Pankov.Sh ERRORS
856fdae1bdSYuri PankovThe
866fdae1bdSYuri Pankov.Fn wcstombs
876fdae1bdSYuri Pankovand
886fdae1bdSYuri Pankov.Fn wcstombs_l
896fdae1bdSYuri Pankovfunctions will fail if:
906fdae1bdSYuri Pankov.Bl -tag -width Er
916fdae1bdSYuri Pankov.It Er EILSEQ
926fdae1bdSYuri PankovA wide-character code does not correspond to a valid character.
936fdae1bdSYuri Pankov.It Er EINVAL
946fdae1bdSYuri PankovThe conversion state is invalid.
956fdae1bdSYuri Pankov.El
966fdae1bdSYuri Pankov.Sh INTERFACE STABILITY
976fdae1bdSYuri PankovThe
986fdae1bdSYuri Pankov.Fn wcstombs
996fdae1bdSYuri Pankovfunction is
1006fdae1bdSYuri Pankov.Sy Standard .
1016fdae1bdSYuri PankovThe
1026fdae1bdSYuri Pankov.Fn wcstombs_l
1036fdae1bdSYuri Pankovfunction is
104bccbd30bSPeter Tribble.Sy Uncommitted .
1056fdae1bdSYuri Pankov.Sh MT-LEVEL
1066fdae1bdSYuri Pankov.Sy MT-Safe
1076fdae1bdSYuri Pankov.Sh SEE ALSO
1086fdae1bdSYuri Pankov.Xr mbstowcs 3C ,
1096fdae1bdSYuri Pankov.Xr newlocale 3C ,
1106fdae1bdSYuri Pankov.Xr setlocale 3C ,
1116fdae1bdSYuri Pankov.Xr uselocale 3C ,
1126fdae1bdSYuri Pankov.Xr wcsnrtombs 3C ,
1136fdae1bdSYuri Pankov.Xr wctomb 3C ,
114*bbf21555SRichard Lowe.Xr attributes 7 ,
115*bbf21555SRichard Lowe.Xr environ 7 ,
116*bbf21555SRichard Lowe.Xr standards 7
117