ファイル CCSID

ファイルをオープンすると、そのファイルと CCSID が関連付けられます。 文字とストリングの値の読み取り操作を行うと、ファイルの CCSID にデータが戻されます。 ファイルに対する書き込み操作を行うと、ファイルの CCSID でデータが要求されます。 ファイルのオープン時に関連付けられる CCSID は、ファイルのオープンに使用される関数によって異なります。
  • catopen() 関数
    catopen を使用してオープンされるカタログ・ファイルに関連付けられる CCSID は、oflag パラメーターの内容に依存します。 パラメーターに指定できるフラグは、NL_CAT_JOB_MODE と NL_CAT_CTYPE_MODE の 2 つです。 これらのフラグは、相互に排他的です。
    • NL_CAT_JOB_MODE を指定すると、ジョブの CCSID がファイルに関連付けられます。
    • NL_CAT_CTYPE_MODE を指定すると、現行ロケールの LC_CTYPE カテゴリーの CCSID がファイルに関連付けられます。
    • どちらのフラグも指定されない場合、変換は実行されず、返されるメッセージの CCSID はメッセージ・ファイルの CCSID と同じになります。
  • fdopen() 関数
    • LOCALETYPE(*LOCALEUTF) を指定しない場合、ファイルのデフォルト CCSID はジョブの CCSID になります。 キーワード ccsid=value、o_ccsid=value、または codepage=value を、ファイル・オープン・コマンドのモード・ストリングに使用することで、ファイルに関連付けられている CCSID を変更することができます。 キーワード o_ccsid=value の使用をお勧めします。 標準ファイルは、常にファイルのデフォルト CCSID に関連付けられるため、ジョブの CCSID にも関連付けられます。
    • LOCALETYPE(*LOCALEUTF) を指定した場合に fopen() 関数を呼び出すと、ファイルのデフォルト CCSID は、現行ロケールの LC_CTYPE カテゴリーの CCSID になります。 前の段落で説明したキーワードを使用して、ファイルに関連付けられた CCSID を指定変更することも可能です。 標準ファイルは、常にファイルのデフォルト CCSID に関連付けられるため、ファイルのオープン時に現行ロケールの LC_CTYPE カテゴリーの CCSID に関連付けられます。
  • fopen() 関数および freopen() 関数
    • LOCALETYPE(*LOCALEUTF) を指定しない場合、ファイルのデフォルト CCSID はジョブの CCSID になります。
      • コンパイル・コマンドで SYSIFCOPT(*NOIFSIO) を指定した場合、キーワード ccsid=value をファイル・オープン・コマンドのモード・ストリングに使用することで、ファイルから読み取るデータまたはファイルに書き込むデータの CCSID を変更することができます。
      • コンパイル・コマンドで SYSIFCOPT(*NOIFSIO) を指定していない場合、キーワード ccsid=value、o_ccsid=value、または codepage=value をファイル・オープン・コマンドのモード・ストリングに使用することで、ファイルに関連付けられている CCSID を変更することができます。 キーワード o_ccsid=value の使用をお勧めします。
      標準ファイルは、常にファイルのデフォルト CCSID に関連付けられるため、ジョブの CCSID にも関連付けられます。
    • LOCALETYPE(*LOCALEUTF) を指定した場合に fopen() 関数または freopen() 関数を呼び出すと、ファイルのデフォルト CCSID は、現行ロケールの LC_CTYPE カテゴリーの CCSID になります。 キーワード ccsid=value、o_ccsid=value、または codepage=value を使用して、ファイルに関連付けられている CCSID を指定変更することも可能です。 標準ファイルは、常にファイルのデフォルト CCSID に関連付けられるため、ファイルのオープン時に現行ロケールの LC_CTYPE カテゴリーの CCSID に関連付けられます。
  • _Ropen() 関数

    _Ropen() 関数を使用してオープンされたファイルに関連付けられるデフォルト CCSID は、ジョブの CCSID になります。 キーワード ccsid=value を _Ropen() 関数のモード・パラメーターに使用することで、ファイルに関連付けられた CCSID を変更することができます。

  • wfopen() function
    • LOCALETYPE(*LOCALEUCS2) を指定した場合、ファイルのデフォルト CCSID は UCS-2 になります。 キーワード ccsid=value、o_ccsid=value、または codepage=value を、ファイル・オープン・コマンドのモード・ストリングに使用することで、ファイルに関連付けられている CCSID を変更することができます。 キーワード o_ccsid=value の使用をお勧めします。
    • LOCALETYPE(*LOCALEUTF) を指定した場合、ファイルのデフォルト CCSID は UTF-32 になります。 前の段落で説明したキーワードを使用して、ファイルに関連付けられた CCSID を指定変更することも可能です。