日本-日本語
日本HPホーム 製品 & サービス OpenVMS製品情報
≫  お問い合わせ


OpenVMS マニュアル


 

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

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

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


目次 索引




プログラムのカレント・ロケールから取得された情報を含んでいる文字列へのポインタを返します。

形式

#include <langinfo.h>

char *nl_langinfo (nl_item item);


引数



item

必要な情報を指定する定数の名前。これらの定数は <langinfo.h>に定義されています。

以下の定数が有効です。

定数 カテゴリ 説明
D_T_FMT LC_TIME 日付と時刻をフォーマットするための文字列
D_FMT LC_TIME 日付をフォーマットするための文字列
T_FMT LC_TIME 時刻をフォーマットするための文字列
T_FMT_AMPM LC_TIME AM/PM 文字列を含む時刻フォーマット
AM_STR LC_TIME AM を 12 時間制で表現する文字列
PM_STR LC_TIME PM を 12 時間制で表現する文字列
DAY_1 LC_TIME 週の最初の曜日の名前
...    
DAY_7 LC_TIME 週の 7 番目の曜日の名前
ABDAY_1 LC_TIME 週の最初の曜日の短縮名
...    
ABDAY_7 LC_TIME 週の 7 番目の曜日の短縮名
MON_1 LC_TIME 年の最初の月の名前
...    
MON_12 LC_TIME 年の 12 番目の月の名前
ABMON_1 LC_TIME 年の最初の月の短縮名
...    
ABMON_12 LC_TIME 年の 12 番目の月の短縮名
ERA LC_TIME Epoch の記述文字列
ERA_D_FMT LC_TIME Epoch の日付フォーマット文字列
ERA_T_FMT LC_TIME Epoch の時刻フォーマット
ERA_D_T_FMT LC_TIME Epoch の日付と時刻のフォーマット
ALT_DIGITS LC_TIME 数字の代替シンボル
RADIXCHAR LC_NUMERIC 基数文字
THOUSEP LC_NUMERIC 非金額値で桁のグループを区切るために使われる文字
YESEXP LC_MESSAGES yes/no の質問に対する肯定的な応答の表現
NOEXP LC_MESSAGES yes/no の質問に対する否定的な応答の表現
CRNCYSTR LC_MONETARY 通貨シンボル。次のいずれかが前に置かれる:

  • シンボルを値の前に置く場合にはマイナス ( - )

  • シンボルを値の後に置く場合にはプラス (+)

  • シンボルが基数文字を置き換える場合にはピリオド (.)

CODESET LC_CTYPE コードセット名


説明

現在のロケールに言語情報が定義されていない場合,関数は C ロケールから情報を返します。プログラムは,この関数から返された文字列を変更するべきではありません。この文字列は,後の nl_langinfoの呼び出しによって上書きされることがあります。

nl_langinfoの呼び出しの後に setlocale関数が呼び出された場合,以前の nl_langinfoの呼び出しから返されたポインタは無効になります。この場合には, nl_langinfo関数を再度呼び出すようにしてください。


戻り値

x 要求された情報を含んでいる文字列へのポインタ。 item が無効な場合,関数は空の文字列を返します。


#include <stdio.h> 
#include <locale.h> 
#include <langinfo.h> 
 
/* This test sets up the British English locale, and then       */ 
/* inquires on the data and time format, first day of the week, */ 
/* and abbreviated first day of the week.                       */ 
 
#include <stdlib.h> 
#include <string.h> 
 
int main() 
{ 
    char *return_val; 
    char *nl_ptr; 
 
    /* set the locale, with user supplied locale name  */ 
 
    return_val = setlocale(LC_ALL, "en_gb.iso8859-1"); 
    if (return_val == NULL) { 
        printf("ERROR : The locale is unknown"); 
        exit(1); 
    } 
    printf("+----------------------------------------+\n"); 
 
    /* Get the date and time format from the locale.  */ 
 
    printf("D_T_FMT = "); 
 
    /*  Compare the returned string from nl_langinfo with */ 
    /*  an empty string.                                  */ 
 
    if (!strcmp((nl_ptr = (char *) nl_langinfo(D_T_FMT)), "")) { 
 
  /* The string returned was empty this could mean that either */ 
  /* 1) The locale does not contain a value for this item      */ 
  /* 2) The value for this item is an empty string             */ 
 
        printf("nl_langinfo returned an empty string\n"); 
    } 
    else { 
        /* Display the date and time format  */ 
 
        printf("%s\n", nl_ptr); 
    } 
 
/* Get the full name for the first day of the week from locale */ 
   printf("DAY_1 = "); 
 
  /*  Compare the returned string from nl_langinfo with */ 
  /*  an empty string.                                  */ 
 
    if (!strcmp((nl_ptr = (char *) nl_langinfo(DAY_1)), "")) { 
 
  /* The string returned was empty this could mean that either */ 
  /*    1) The locale does not contain a value for the first   */ 
  /*       day of the week                                     */ 
  /*    2) The value for the first day of the week is          */ 
  /*       an empty string                                     */ 
 
        printf("nl_langinfo returned an empty string\n"); 
    } 
 
    else { 
     /* Display the full name of the first day of the week     */ 
 
        printf("%s\n", nl_ptr); 
    } 
/* Get the abbreviated name for the first day of the week 
                                                  from locale  */ 
 
    printf("ABDAY_1 = "); 
 
 /* Compare the returned string from nl_langinfo with an empty */ 
 /* string.                                                    */ 
 
    if (!strcmp((nl_ptr = (char *) nl_langinfo(ABDAY_1)), "")) { 
 
 /* The string returned was empty this could mean that either  */ 
 /*    1) The locale does not contain a value for the first    */ 
 /*       day of the week                                      */ 
 /*    2) The value for the first day of the week is an        */   
 /*       empty string                                         */ 
 
        printf("nl_langinfo returned an empty string\n"); 
    } 
 
    else { 
 
 /* Display the abbreviated name of the first day of the week  */ 
 
        printf("%s\n", nl_ptr); 
   } 
} 

上の例のプログラムを実行すると,次の結果が出力されます。

+----------------------------------------+ 
D_T_FMT = %a %e %b %H:%M:%S %Y 
DAY_1 = Sunday 
ABDAY_1 = Sun 


目次 索引

© 2012 Hewlett-Packard Development Company, L.P.