|
≫ |
|
|
|
HP OpenVMS HP C ランタイム・ライブラリ・リファレンス・マニュアル (下巻)
OpenVMS バイナリ・システム時刻を UNIX バイナリ時刻に変換します。
形式
#include <unixlib.h>
unsigned int decc$fix_time (void *vms_time);
引数
vms_timeOpenVMS バイナリ時刻を格納したクォドワードのアドレス。
unsigned int quadword[2];
unsigned int *vms_time = quadword;
|
説明
decc$fix_timeルーチンは, OpenVMS バイナリ・システム時刻 (1858 年 11 月 17 日 00:00 からの経過時間 (100 ナノ秒単位) を格納した 64 ビット・クォドワード) を UNIX バイナリ時刻 (1970 年 1 月 1 日 00:00 からの経過時間 (秒数) を格納したロングワード) に変換します。このルーチンは,OpenVMS システム・サービスおよび RMS サービスから返されたバイナリ時刻を,
ctimeや
localtimeなどの HP C RTL ルーチンで使用される形式に変換するのに役立ちます。
戻り値
x
|
1970 年 1 月 1 日 00:00 からの経過時間 (秒数) を格納したロングワード。
|
(
unsigned int
)(-1)
|
エラーを示します。
戻り値 (
unsigned int
)( - 1) は, 2106 年 2 月 7 日日曜日 06:28:15 という有効な日付も表すことに注意してください。
|
例
#include <unixlib.h>
#include <stdio.h>
#include <starlet.h> /* OpenVMS specific SYS$ routines) */
main()
{
unsigned int current_vms_time[2]; /*quadword for OpenVMS time*/
unsigned int number_of_seconds; /* number of seconds */
/* first get the current system time */
sys$gettim(¤t_vms_time[0]);
/* fix the time */
number_of_seconds = decc$fix_time(¤t_vms_time[0]);
printf("Number of seconds since 00:00 January 1, 1970 = %d",
number_of_seconds);
}
|
この例では, HP C で
decc$fix_timeルーチンを使用する方法を示しています。また,SYS$GETTIM システム・サービスの使い方も示しています。
|