  | 
≫  | 
 | 
  
 | 
    
      | 
    
    
    
     
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 システム・サービスの使い方も示しています。
  
 
 
      |