svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
wcrtomb(3c)
wcrtomb(3C) Standard C Library Functions wcrtomb(3C)
NAME
wcrtomb, wcrtomb_s - convert a wide-character code to a character
(restartable)
SYNOPSIS
#include <wchar.h>
size_t wcrtomb(char *restrict s, wchar_t wc, mbstate_t *restrict ps);
#define __STDC_WANT_LIB_EXT1__ 1
#include <wchar.h>
errno_t wcrtomb_s(size_t *restrict retval, char *restrict ws,
rsize_t smax, wchar_t wc, mbstate_t *restrict ps);
DESCRIPTION
If s is not a null pointer, the wcrtomb() function determines the num‐
ber of bytes needed to represent the character that corresponds to the
wide-character given by wc (including any shift sequences), and stores
the resulting bytes in the array whose first element is pointed to by
s. At most MB_CUR_MAX bytes are stored. If wc is a null wide-character,
a null byte is stored, preceded by any shift sequence needed to restore
the initial shift state. The resulting state described is the initial
conversion state.
If ps is a null pointer, the wcrtomb() function uses its own internal
mbstate_t object, which is initialized at program startup to the ini‐
tial conversion state. Otherwise, the mbstate_t object pointed to by ps
is used to completely describe the current conversion state of the as‐
sociated character sequence. Solaris will behave as if no function de‐
fined in the Solaris Reference Manual calls wcrtomb().
If s is a null pointer, the wcrtomb() function is equivalent to the
call:
wcrtomb(buf, L'\0', ps);
where buf is an internal buffer.
The wcrtomb_s() function is part of the C11 bounds checking interfaces
specified in the C11 standard, Annex K. It provides similar functional‐
ity to the wcrtomb() function, except for additional checks on the pa‐
rameters passed and explicit runtime constraints as defined in the C11
standard. See runtime_constraint_handler(3C) and INCITS/ISO/IEC
9899:2011. The number of bytes which may be written to the buffer is
limited by the smax paramater instead of MB_CUR_MAX, and is returned
via the retval parameter instead of the function return value.
ENVIRONMENT VARIABLES
The behavior of this function is affected by the LC_CTYPE category of
the current locale. See environ(7).
RETURN VALUES
The wcrtomb() function returns the number of bytes stored in the array
object (including any shift sequences). When wc is not a valid wide-
character, an encoding error occurs. In this case, the function stores
the value of the macros EILSEQ in errno and returns (size_t)−1; the
conversion state is undefined.
If no runtime constraint violation is detected, the wcrtomb_s() func‐
tion returns 0, otherwise, it returns a non-zero value, and the number
of bytes is stored in the memory pointed to by the retval.
ERRORS
The wcrtomb() function may fail if:
EINVAL The ps argument points to an object that contains an invalid
conversion state.
EILSEQ Invalid wide-character code is detected.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSee below _
StandardSee below
MT-Level
If ps is not a null pointer, wcrtomb() uses the mbstate_t object
pointed to by ps and the function can be used safely in multithreaded
applications, as long as setlocale(3C) is not being called to change
the locale. If ps is a null pointer, wcrtomb() uses its internal mb‐
state_t object and the function is Unsafe in multithreaded applica‐
tions.
The wcrtomb_s() function cannot be used safely in a multithreaded ap‐
plication due to the runtime constraint handler. For more information,
see the runtime_constraint_handler(3C) man page.
Standard
See standards(7) for descriptions of the following standards:
tab() box; cw(2.44i) |cw(3.06i) lw(2.44i) |lw(3.06i) INTERFACESAPPLICA‐
BLE STANDARDS _ wcrtomb()T{
C95 through C11,
POSIX.1-2001 through 2008,
SUS through SUSv4,
XPG4 through XPG7
T} _ wcrtomb_s()C11
SEE ALSO
mbsinit(3C), runtime_constraint_handler(3C), setlocale(3C), wctomb(3C),
wcstombs(3C), attributes(7), environ(7), standards(7)
Handling Characters and Character Strings in Internationalizing and Lo‐
calizing Applications in Oracle Solaris
HISTORY
The wcrtomb_s() function was added to Solaris in the Oracle Solaris
11.4.0 release.
The wcrtomb() function was added to Solaris in the Solaris 7 release.
Oracle Solaris 11.4 25 Nov 2024 wcrtomb(3C)