ICONVCTL(3) Library Functions Manual ICONVCTL(3)

iconvctl - control iconv behavior

#include <iconv.h>

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 descriptor, depending on the request value.

The following are permissible values for the request parameter.

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 conversion, or 0 otherwise.
argument should be a const int *, pointing to an int value. A non-zero value is used to enable transliteration in the conversion. A zero value disables it.
argument should be an int * which will receive 1 if "discard invalid multibyte sequence from the input and continue" is enabled in the conversion, or 0 otherwise.
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 represented in the target character set and continue" is enabled in the conversion, or 0 otherwise.
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 continue" in the conversion. A zero value disables it.
argument should be an int * which will receive 1 if both "discard" behaviours are enabled in the conversion, or 0 otherwise.
argument should be a const int *, pointing to an int value. A non-zero value is used to enable both "discard" behaviours in the conversion. A zero value disables them.
argument should be an unsigned int * which will receive the from-side (input side) surface of the conversion.
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.
argument should be an unsigned int * which will receive the to-side (output side) surface of the conversion.
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 newline 0x15.

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:

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)

December 15, 2024 GNU