ICONVCTL(3) |
FreeBSD Library Functions Manual |
ICONVCTL(3) |
ライブラリ
Standard C Library (libc, -lc)
書式
#include < iconv.h>
int
iconvctl( iconv_t cd, int request, void *argument);
解説
iconvctl() 関数は、
cd 変換記述子から検索するか、または特定の変換の設定することができます。
request パラメータは、達成する操作を指定し、
argument は、操作特有の引数です。
指定できる操作は、次の通りです:
-
ICONV_TRIVIALP
-
この場合に、
argument は、エンコードが普通のものであるなら、すなわち、入力と出力のエンコードが、同じであるなら、1 に設定される、
int * 変数です。そうでなければ、変数は、0 となります。
-
ICONV_GET_TRANSLITERATE
-
変換が有効であるかどうか判断します。答えは、
int * である、
argument に格納されます。それは、この機能が有効にされるなら、1 に設定され、そうでなければ、 0 に設定されます。
-
ICONV_SET_TRANSLITERATE
-
int * である
argument が 1 に設定されるなら、変換を有効にし、
argument が 0 に設定されるなら、無効にします。
-
ICONV_GET_DISCARD_ILSEQ
-
不正なシーケンスが廃棄されるかどうか判断します。答えは、
int * である
argument に格納されます。この機能が有効であるなら、1 に設定され、そうでなければ、0 に設定されます。
-
ICONV_SET_DISCARD_ILSEQ
-
不正なシーケンスが廃棄されるか、破棄されないかどうかを設定します。
int * である
argument は、1 に設定され、
argument が 0 に設定されるなら、それを無効にします。
-
ICONV_SET_HOOKS
-
変換が成功した後に呼び戻される、コールバック関数を設定します。コールバック関数は、そのアドレスによって
argument を通して
iconvctl に渡される、
struct iconv_hooks 変数に格納されます。
-
ICONV_GET_ILSEQ_INVALID
-
有効な入力バッファの文字であるが、同一の文字がターゲットのコードセットに存在しないかを確認し、
EILSEQ または、それ以外を返します。答えは、
int * の
argument に格納されます。この機能が有効であるなら、1 に設定され、そうでなければ、0 に設定されます。
-
ICONV_SET_ILSEQ_INVALID
-
有効な入力バッファの文字であるが、同一の文字がターゲットのコードセットに存在しないかどうか設定し、
EILSEQ または、それ以外を返します。
int * である
argument が 1 に設定されるなら、有効にされ、
argument が 0 に設定されるなら、無効にされます。
戻り値
成功して完了すれば、
iconvctl() は、0 を返します。そうでなければ、-1 が、返され、errno は、エラーの種類を指定する値を設定します。
エラー
iconvctl() 関数は、次の場合におけるエラーを引き起こします:
-
[
EINVAL]
-
未知または実装されなかった操作。
-
[
EBADF]
-
cd によって指定された変換記述子が、無効です。
規格
iconvctl 機能は、GNU 実装で登場し、互換性の目的ために
FreeBSD 9.0 で採用された、非標準の拡張です。
作者
このマニュアルページは、
Gabor Kovesdan <gabor@FreeBSD.org>によって書かれました。
バグ
変換は、デフォルトでこの実装で有効にされるので、それは、それをオフに切り替えるのは、設計によって不可能です。そのために、それをオフに切り替える試みは、常に失敗し、-1 が返されます。変換状態を取得することは、常に成功しますが、それがオンに切り替えられることを示します。