日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


 

OpenVMS ドキュメント
ライブラリ

タイトル
目次
まえがき
リファレンス・セクション
   ≫ライブラリ関数一覧
索引
PDF
OpenVMS ホーム

HP OpenVMS
HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)


目次 索引




指定されたコードセット変換のために変換記述子を割り当てます。

形式

#include <iconv.h>

iconv_t iconv_open (const char *tocode, const char *fromcode);


引数



tocode

変換後の文字のコードセットの名前。

fromcode

変換前のコードセットの名前。現在使用可能なコードセットの一覧と新しいコードセットの追加方法の詳細については,『HP C ランタイム・ライブラリ・リファレンス・マニュアル(上巻)』第 10 章を参照してください。

戻り値

x 変換記述子。呼び出しが正常終了したことを示します。この記述子はこの後の iconv の呼び出しで使用されます。
(iconv_t)-1    エラーが発生したことを示します。 errno は次のいずれかに設定されます。

  • EMFILE---プロセスにファイルをオープンするための十分な I/O チャネルがありません。

  • ENOMEM---使用できる領域が不足しています。

  • EINVAL--- fromcodetocode によって指定される変換はサポートされません。

  • EVMSERR---変換不可能な OpenVMS エラーが発生しました。
    vaxc$errno には OpenVMS エラー・コードが格納されます。
    vaxc$errno に SS$_BADCHKSUM という値が格納されている場合は,変換テーブル・ファイルは見つかったものの,テーブルの内容が壊れていることを示します。
    vaxc$errno に SS$_IDMISMATCH という値が格納されている場合は,変換テーブル・ファイルのバージョンが C ランタイム・ライブラリのバージョンと一致しないことを示します。


#include <stdio.h> 
#include <iconv.h> 
#include <errno.h> 
 
 
int main() 
{ 
    /* Declare variables to be used                      */ 
 
    char fromcodeset[30]; 
    char tocodeset[30]; 
    int iconv_opened; 
    iconv_t iconv_struct;       /* Iconv descriptor      */ 
 
    /* Initialize variables                              */ 
 
    sprintf(fromcodeset, "DECHANYU"); 
    sprintf(tocodeset, "EUCTW"); 
    iconv_opened = FALSE; 
 
    /* Attempt to create a conversion descriptor for the */ 
    /* codesets specified. If the return value from      */ 
    /* iconv_open is -1 then an error has occurred.      */ 
    /*  Check the value of errno.                        */ 
 
    if ((iconv_struct = iconv_open(tocodeset, fromcodeset)) 
       == (iconv_t) - 1) { 
 
        /* Check the value of errno                      */ 
 
        switch (errno) { 
        case EMFILE: 
        case ENFILE: 
            printf("Too many iconv conversion files open\n"); 
            break; 
 
        case ENOMEM: 
            printf("Not enough memory\n"); 
            break; 
 
        case EINVAL: 
            printf("Unsupported conversion\n"); 
            break; 
 
        default: 
            printf("Unexpected error from iconv_open\n"); 
            break; 
       } 
    } 
    else 
 
        /* Successfully allocated a conversion descriptor   */ 
 
        iconv_opened = TRUE; 
 
    /*  Was a conversion descriptor allocated               */ 
 
    if (iconv_opened) { 
 
        /* Attempt to deallocate the conversion descriptor. */ 
        /* If iconv_close returns -1 then an error has      */ 
        /* occurred.                                        */ 
 
        if (iconv_close(iconv_struct) == -1) { 
 
            /* An error occurred. Check the value of errno  */ 
 
            switch (errno) { 
            case EBADF: 
                printf("Conversion descriptor is invalid\n"); 
                break; 
            default: 
                printf("Unexpected error from iconv_close\n"); 
                break; 
            } 
        } 
    } 
    return (EXIT_FAILURE); 
} 


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項