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

개요

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

wcsrtombs(3c)

wcsrtombs(3C)            Standard C Library Functions            wcsrtombs(3C)

NAME
       wcsrtombs, wcsnrtombs, wcsrtombs_s - convert a wide-character string to
       a character string (restartable)

SYNOPSIS
       #include <wchar.h>

       size_t wcsrtombs(char *restrict dst,
            const wchar_t **restrict src, size_t len,
            mbstate_t *restrict ps);


       size_t wcsnrtombs(char *restrict dst,
            const wchar_t **restrict src, size_t nwc, size_t len,
            mbstate_t *restrict ps);


       #define __STDC_WANT_LIB_EXT1__ 1
       #include <wchar.h>

       errno_t wcsrtombs_s(size_t *restrict retval, char *restrict dst,
           rsize_t dstmax, const wchar_t **restrict src, rsize_t len,
           mbstate_t *restrict ps);

DESCRIPTION
       The  wcsrtombs()  function  converts a sequence of wide-characters from
       the array indirectly pointed to by src into a sequence of corresponding
       characters, beginning in the conversion state described by  the  object
       pointed  to  by ps. If dst is not a null pointer, the converted charac‐
       ters are then stored into the array pointed to by dst. Conversion  con‐
       tinues  up to and including a terminating null wide-character, which is
       also stored. Conversion stops earlier in the following cases:

           o      When a code is reached that does not correspond to  a  valid
                  character.


           o      When  the next character would exceed the limit of len total
                  bytes to be stored in the array pointed to by dst  (and  dst
                  is not a null pointer).



       Each conversion takes place as if by a call to the wcrtomb() function.


       If  dst  is not a null pointer, the pointer object pointed to by src is
       assigned either a null pointer (if conversion stopped due to reaching a
       terminating null wide-character) or the  address  just  past  the  last
       wide-character  converted (if any). If conversion stopped due to reach‐
       ing a terminating null wide-character, the resulting state described is
       the initial conversion state.


       If ps is a null pointer, the wcsrtombs() 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 these functions.


       The  wcsnrtombs()  function  is equivalent to the wcsrtombs() function,
       except that the conversion is limited to the first nwc wide characters.


       The behavior of these functions are affected by the  LC_CTYPE  category
       of the current locale. See environ(7).


       The  wcsrtombs_s()  function  is part of the C11 bounds checking inter‐
       faces specified in the C11 standard, Annex K. It is similar to the  wc‐
       srtombs()  function,  but  with differing parameters and return type in
       order to provide additional safety checks in the form of explicit  run‐
       time-constraints  as  defined  by  the  C11  standard. See runtime_con‐
       straint_handler(3C) and INCITS/ISO/IEC 9899:2011.

RETURN VALUES
       If conversion stops because a code is reached that does not  correspond
       to  a  valid  character,  an encoding error occurs. In this case, these
       functions store the value of the  macro  EILSEQ  in  errno  and  return
       (size_t)-1;  the  conversion state is undefined. Otherwise, these func‐
       tions return the number of bytes in the resulting  character  sequence,
       not including the terminating null (if any).


       If  neither  a runtime-constraint violation nor encoding error (the re‐
       sult of a failed conversion) occurred, wcsrtombs_s() returns zero, oth‐
       erwise, it returns a non-zero value.

ERRORS
       The wcsrtombs() function will fail if:

       EINVAL    The ps argument points to an object that contains an  invalid
                 conversion state.


       EILSEQ    A  wide-character code does not correspond to a valid charac‐
                 ter.



       The wcsrtombs_s() function will fail if:

       EINVAL       Null pointer is passed or source and destination overlaps.


       ERANGE       size argument is not a valid value.


       EOVERFLOW    Destination array is too small


       EILSEQ       Illegal byte sequence.


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 standards(7)


   MT-Level
       If ps is not a null pointer, wcsrtombs() and wcsnrtombs() use  the  mb‐
       state_t object pointed to by ps and the functions can be used safely in
       multithreaded  applications.  If  ps is a null pointer, wcsrtombs() and
       wcsnrtombs() use their internal mbstate_t object and the functions  are
       Unsafe in multithreaded applications.


       The wcsrtombs_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.

SEE ALSO
       mbsinit(3C),  setlocale(3C),  wcrtomb(3C),  attributes(7),  environ(7),
       standards(7)


       Handling Characters and Character Strings in Internationalizing and Lo‐
       calizing Applications in Oracle Solaris

HISTORY
       The  wcnsrtombs()  and wcsrtombs_s() functions were added in Oracle So‐
       laris 11.4.0.


       The wcsrtombs() function was added to Solaris in the Solaris 7 release.

Oracle Solaris 11.4               25 Nov 2024                    wcsrtombs(3C)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3