  | 
≫  | 
 | 
  
 | 
    
      | 
    
    
    
     
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---
fromcode と
tocode によって指定される変換はサポートされません。
 -  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); 
} 
 |  
 
  
 
 
      |