wcrtomb(3c) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3