# ICONVCTL

NAME
SYNOPSIS
DESCRIPTION
REQUEST VALUES
RETURN VALUE
ERRORS
CONFORMING TO
SEE ALSO

## NAME

iconvctl − control iconv behavior

## SYNOPSIS

#include <iconv.h>

int iconvctl (iconv_t cd , int request, void * argument);

## DESCRIPTION

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.

## REQUEST VALUES

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.

ICONV_GET_TRANSLITERATE

argument should be an int * which will receive 1 if transliteration is enabled in the conversion, or 0 otherwise.

ICONV_SET_TRANSLITERATE

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.

ICONV_GET_DISCARD_INVALID

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.

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.

ICONV_GET_DISCARD_NON_IDENTICAL

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.

ICONV_SET_DISCARD_NON_IDENTICAL

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.

ICONV_GET_DISCARD_ILSEQ

argument should be an int * which will receive 1 if both "discard" behaviours are enabled in the conversion, or 0 otherwise.

ICONV_SET_DISCARD_ILSEQ

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.

ICONV_GET_FROM_SURFACE

argument should be an unsigned int * which will receive the from-side (input side) surface of the conversion.

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 the conversion.

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 newline 0x15.

## RETURN VALUE

The iconvctl function returns 0 if it succeeds. In case of error, it sets errno and returns −1.

## ERRORS

The following errors can occur, among others:

| EINVAL |  | The request is invalid. |

## CONFORMING TO

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).

## SEE ALSO

iconv_open(3) iconv(3)