iconvctl - control iconv behavior
int iconvctl (iconv_t cd , int request, void * argument);
The argument cd must be a conversion descriptor created using the function iconv_open.
iconvctl queries or adjusts the behavior of the iconv function, when invoked with the specified conversion descrip- tor, depending on the request value.
The following are permissible values for the request parameter.
ICONV_TRIVIALP argument should be an int * which will receive 1 if the conversion is trivial, or 0 otherwise.
argument should be an int * which will receive 1 if transliteration is enabled in the conver- |
ICONV_SET_TRANSLITERATE
argument should be a const int *, pointing to an int value. A non-zero value is used to |
ICONV_GET_DISCARD_INVALID
argument should be an int * which will receive 1 if "discard invalid multibyte sequence from |
ICONV_SET_DISCARD_INVALID
argument should be a const int *, pointing to an int value. A non-zero value is used to
enable "discard invalid multibyte sequence from the input and continue" in the conversion.
A zero value disables it.
argument should be an int * which will receive 1 if "discard character that cannot be repre-
sented in the target character set and continue" is enabled in the conversion, or 0 other-
wise.
argument should be a const int *, pointing to an int value. A non-zero value is used to
enable "discard character that cannot be represented in the target character set and con-
tinue" in the conversion. A zero value disables it.
argument should be an int * which will receive 1 if both "discard" behaviours are enabled in |
ICONV_SET_DISCARD_ILSEQ
argument should be a const int *, pointing to an int value. A non-zero value is used to |
ICONV_GET_FROM_SURFACE
argument should be an unsigned int * which will receive the from-side (input side) surface |
ICONV_SET_FROM_SURFACE
argument should be a const unsigned int *, pointing to an unsigned int value. This value is installed as the from-side (input side) surface of the conversion. The value is a bit mask. Zero denotes no surface. The value ICONV_SURFACE_EBCDIC_ZOS_UNIX has an effect on EBCDIC encodings: The EBCDIC newline 0x15 will get mapped to LF instead of NEL. |
ICONV_GET_TO_SURFACE
argument should be an unsigned int * which will receive the to-side (output side) surface of |
ICONV_SET_TO_SURFACE
argument should be a const unsigned int *, pointing to an unsigned int value. This value is installed as the to-side (output side) surface of the conversion. The value is a bit mask. Zero denotes no surface. The value ICONV_SURFACE_EBCDIC_ZOS_UNIX has an |
effect on EBCDIC encodings: LF, instead of NEL, will get mapped to the EBCDIC new- |
The iconvctl function returns 0 if it succeeds. In case of error, it sets errno and returns -1.
The following errors can occur, among others:
EINVAL The request is invalid.
This function is implemented only in GNU libiconv and not in other iconv implementations. It is not backed by a standard. You can test for its presence through (_LIBICONV_VERSION >= 0x0108).
iconv_open(3) iconv(3)