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

개요

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

cconv_open(3c)

Standard C Library Functions                                    cconv_open(3C)



NAME
       cconv_open  - character sequence based code conversion allocation func‐
       tion

SYNOPSIS
       #include <iconv.h>
       cconv_t cconv_open(const char *tocode, int variant_tocode, const char *fromcode,
       int variant_fromcode, int flag);

DESCRIPTION
       The cconv_open() function returns a character sequence based code  con‐
       version  descriptor that describes a conversion from the codeset speci‐
       fied by the string pointed to by the fromcode argument to  the  codeset
       specified by the string pointed to by the tocode argument.


       A  non-zero  value at the variant_tocode argument indicates a variation
       of the codeset specified by the tocode argument. A  non-zero  value  at
       the  variant_fromcode  argument  indicates  a  variation of the codeset
       specified by the fromcode argument. For the  supported  variations  and
       the  corresponding  variant values, refer to alias(5) file and the sec‐
       tion 5 man pages shown in the SEE ALSO section. The flag argument indi‐
       cates  the  possible conversion behavior modifications constructed by a
       bitwise-inclusive-OR of the following values:


       CCONV_CANONICAL_NAMES

           By default, the cconv_open() function  normalizes  supplied  tocode
           and  fromcode  names and searches corresponding canonical names and
           variant values to support aliases as described in alias(5). If this
           flag  value  is specified, the function assumes that the names sup‐
           plied are already canonical names and will not go through the  nor‐
           malization and search process.

           If this flag value is not specified, and thus during the normaliza‐
           tion and search process, a canonical name and a variant  value  are
           found  and  the  variant value from the corresponding variant input
           argument (the variant_tocode or the variant_fromcode) is not 0, the
           found  canonical  name and the variant value from the corresponding
           input argument are used to locate the code conversion. However,  if
           the  variant  value from the corresponding input argument is 0, the
           found variant value is used instead.


       CCONV_CONV_ILLEGAL_DISCARD

           When specified, during  subsequent  cconv(3C)  code  conversion,  a
           sequence  of illegal input bytes that does not form a valid charac‐
           ter in the codeset specified by the fromcode argument  is  silently
           discarded as if there are no such illegal bytes in the input buffer
           and the conversion continues.


       CCONV_CONV_ILLEGAL_REPLACE_HEX

           For any illegal input bytes, the cconv(3C) code conversion converts
           each  of such bytes into a hexadecimal number with a specific lead‐
           ing four-letter designator sequence as if  the  value  is  a  valid
           input byte and the conversion continues. More specifically, each of
           such hexadecimal  numbers  has  a  leading  four-letter  designator
           sequence of "IL--" followed by two hexadecimal digits in uppercase.
           For example, IL--01 for 1, IL--0A for 10, IL--0B for 11, IL--EF for
           239, and so on.


       CCONV_CONV_ILLEGAL_RESTORE_HEX

           When  specified, the cconv(3C) code conversion simply converts back
           the above mentioned hexadecimal numbers  for  illegal  input  bytes
           into  corresponding byte values regardless of the codeset specified
           by the tocode argument. For example, IL--0A will be converted  back
           into a byte with 10 as the value and IL--FF into 255.

           If  the  characters  following  the  leading four-letter designator
           sequence do not form a valid hexadecimal number,  such  a  sequence
           will  not  be  treated  as  a  hexadecimal number for illegal input
           bytes.


       CCONV_CONV_NON_IDENTICAL_DISCARD

           During subsequent cconv(3C)  code  conversion,  if  the  conversion
           encounters a character in the input buffer in the codeset specified
           by the fromcode argument that is legal but for which  an  identical
           character  does  not  exist  in the target codeset specified by the
           tocode argument, i.e.,  non-identical  characters,  the  conversion
           discards  such  characters in the output buffer instead of doing an
           implementation-defined conversion.

           The number of such conversions are, nonetheless, still counted  and
           returned as the return value of cconv(3C).


       CCONV_CONV_NON_IDENTICAL_REPLACE_HEX

           For  non-identical  characters,  the cconv(3C) code conversion con‐
           verts each byte of such characters into a hexadecimal number with a
           specific  leading  four-letter  designator  sequence. More specifi‐
           cally, each of such hexadecimal numbers has a  leading  four-letter
           designator  sequence  of NI-- followed by two hexadecimal digits in
           uppercase. For example, NI--02 for 2, NI--0C  for  12,  NI--EF  for
           239, and so on.

           The number of such non-identical characters is counted and returned
           as the return value of cconv(3C).


       CCONV_CONV_NON_IDENTICAL_RESTORE_HEX

           When specified, the cconv(3C) code  conversion  converts  back  the
           above  mentioned non-identical hexadecimal numbers into correspond‐
           ing byte values regardless of the codeset specified by  the  tocode
           argument.  For  instance, NI--0B will be converted back into a byte
           with 11 as the value and NI--FF into 255.

           If the characters  following  the  leading  four-letter  designator
           sequence  do  not  form a valid hexadecimal number, such a sequence
           will not be treated as a non-identical hexadecimal number.


       CCONV_CONV_NON_IDENTICAL_TRANSLITERATE

           For non-identical characters, if  applicable,  the  cconv(3C)  code
           conversion  transliterates each of such characters into one or more
           characters of the target codeset best resembling the input  charac‐
           ter.

           The number of such non-identical characters is counted and returned
           as the return value of cconv(3C).




       When conflicting values are specified together, the values for discard‐
       ing  and  then  replacing into hexadecimal numbers will supersede other
       values specified.


       For state-dependent encodings, the conversion descriptor will be  in  a
       codeset-dependent initial shift state, ready for immediate use with the
       cconv(3C) function.


       Settings of fromcode, tocode, variant_fromcode,  variant_tocode,  flag,
       and their permitted combinations are implementation-dependent.


       The  cconv_open()  function supports aliases of the codeset name speci‐
       fied in tocode and fromcode. The relationship between  canonical  names
       and  aliases  and  the  format  of  possible  external  alias  table is
       described in alias(5).


       When an empty string ("") or "char" is supplied as the string value for
       fromcode,  tocode,  or  both,  it is interpreted by the function as the
       codeset name of the current locale. Similarly, when "wchar_t"  is  sup‐
       plied, the function interprets it as the wide character encoding of the
       current locale in the natural byte order of the current processor or as
       defined by the locale.


       A  conversion  descriptor remains valid in a process until that process
       closes it.


       See the EXAMPLES section of cconv(3C) for examples on how  to  use  the
       function.

RETURN VALUES
       Upon  successful completion, cconv_open() returns a conversion descrip‐
       tor for use on subsequent calls  to  cconv().  Otherwise,  cconv_open()
       returns (cconv_t)-1 and sets errno to indicate the error.

ERRORS
       The cconv_open() function may fail if:


       EMFILE    {OPEN_MAX}  files descriptors are currently open in the call‐
                 ing process.


       ENFILE    Too many files are currently open in the system.


       ENOMEM    Insufficient storage space is available.


       EINVAL    The conversion specified by fromcode,  tocode,  variant_from‐
                 code, variant_tocode, and flag is not supported by the imple‐
                 mentation.



FILES
       /usr/lib/iconv/*.bt     cconv code conversion binary  table  files  for
                               iconv(1), cconv(3C), and iconv(3C).


       /usr/lib/iconv/alias    Alias table file of codeset names.



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-LevelMT-Safe


SEE ALSO
       geniconvtbl(1),   iconv(1),   exec(2),   cconv(3C),    cconv_close(3C),
       cconvctl(3C),  iconv(3C),  iconv_close(3C), iconvctl(3C), iconvstr(3C),
       malloc(3C), nl_langinfo(3C), setlocale(3C),  iconv.h(3HEAD),  alias(5),
       geniconvtbl(5),  geniconvtbl-cconv(5),  attributes(7),  iconv_extra(7),
       iconv_ja(7),      iconv_ko(7),      iconv_unicode(7),      iconv_zh(7),
       iconv_zh_TW(7), standards(7)

NOTES
       Portable  applications  must assume that the conversion descriptors are
       not valid after a call to one of the exec functions (see exec(2)).



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