EILSEQ | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


EILSEQ

概要

マルチバイト文字、ワイド文字を変換する際のエラーを表すエラーコード。

ヘッダ

errno.h

形式

#define EILSEQ 42

置換結果

0以外の何らかの整数。

詳細

名前の意味は、「Error ILlegal SEQuence(不正なシーケンス)」。文字の変換の際、文字コードの並び(シーケンス)が不正であることを示す。たとえば、mbrtowc関数wcrtomb関数が、このエラーを発生させることがある。

注意

使用例

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <locale.h>
#include <wchar.h>

int main(void)
{
    const char mbs[] = "\xa0\xa0";  // UTF-8 として不正なコード

    mbstate_t state;
    memset(&state, 0, sizeof(state));

    setlocale(LC_ALL, "ja-JP");

    wchar_t ws;
    errno = 0;
    size_t result = mbrtowc(&ws, mbs, MB_CUR_MAX, &state);
    if ((int)result < 0) {
        if (errno != 0) {  // EILSEQ の可能性がある
            perror("");
        }
        exit(EXIT_FAILURE);
    }
}

実行結果:

Illegal byte sequence

関連

標準には、他のエラーコードとして、EDOMERANGE が定義されている。

解説章


参考リンク 🔗

本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place 管理者に紹介料が支払われています。


更新履歴 🔗

 「VisualC++」という表現を「VisualStudio」に統一。

 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る