1 /* The <time.h> header is used by the procedures that deal with time. 2 * Handling time is surprisingly complicated, what with GMT, local time 3 * and other factors. Although the Bishop of Ussher (1581-1656) once 4 * calculated that based on the Bible, the world began on 12 Oct. 4004 BC 5 * at 9 o'clock in the morning, in the UNIX world time begins at midnight, 6 * 1 Jan. 1970 GMT. Before that, all was NULL and (void). 7 */ 8 9 #ifndef _TIME_H 10 #define _TIME_H 11 12 #define CLOCKS_PER_SEC 60 13 14 #ifdef _POSIX_SOURCE 15 #define CLK_TCK CLOCKS_PER_SEC /* obsolescent mame for CLOCKS_PER_SEC */ 16 #endif 17 18 #define NULL ((void *)0) 19 20 #ifndef _SIZE_T 21 #define _SIZE_T 22 typedef unsigned int size_t; 23 #endif 24 25 #ifndef _TIME_T 26 #define _TIME_T 27 typedef long time_t; /* time in sec since 1 Jan 1970 0000 GMT */ 28 #endif 29 30 #ifndef _CLOCK_T 31 #define _CLOCK_T 32 typedef long clock_t; /* time in ticks since process started */ 33 #endif 34 35 struct tm { 36 int tm_sec; /* seconds after the minute [0, 59] */ 37 int tm_min; /* minutes after the hour [0, 59] */ 38 int tm_hour; /* hours since midnight [0, 23] */ 39 int tm_mday; /* day of the month [1, 31] */ 40 int tm_mon; /* months since January [0, 11] */ 41 int tm_year; /* years since 1900 */ 42 int tm_wday; /* days since Sunday [0, 6] */ 43 int tm_yday; /* days since January 1 [0, 365] */ 44 int tm_isdst; /* Daylight Saving Time flag */ 45 }; 46 47 extern char *tzname[]; 48 49 /* Function Prototypes. */ 50 #ifndef _ANSI_H 51 #include <ansi.h> 52 #endif 53 54 _PROTOTYPE( clock_t clock, (void) ); 55 _PROTOTYPE( double difftime, (time_t _time1, time_t _time0) ); 56 _PROTOTYPE( time_t mktime, (struct tm *_timeptr) ); 57 _PROTOTYPE( time_t time, (time_t *_timeptr) ); 58 _PROTOTYPE( char *asctime, (const struct tm *_timeptr) ); 59 _PROTOTYPE( char *asctime_r, (const struct tm *_timeptr, char *buf) ); 60 _PROTOTYPE( char *ctime, (const time_t *_timer) ); 61 _PROTOTYPE( char *ctime_r, (const time_t *_timer, char *buf) ); 62 _PROTOTYPE( struct tm *gmtime, (const time_t *_timer) ); 63 _PROTOTYPE( struct tm *gmtime_r, (const time_t *_timer,struct tm *tmp) ); 64 _PROTOTYPE( struct tm *localtime, (const time_t *_timer) ); 65 _PROTOTYPE( struct tm *localtime_r, (const time_t *const timep, 66 struct tm *tmp) ); 67 _PROTOTYPE( size_t strftime, (char *_s, size_t _max, const char *_fmt, 68 const struct tm *_timep) ); 69 _PROTOTYPE( char *strptime, (const char *buf, const char *format, 70 struct tm *timeptr) ); 71 _PROTOTYPE( time_t timegm, (struct tm * const tmp) ); 72 73 74 #ifdef _POSIX_SOURCE 75 _PROTOTYPE( void tzset, (void) ); 76 #endif 77 78 #ifdef _MINIX 79 _PROTOTYPE( int stime, (time_t *_top) ); 80 #endif 81 82 extern long timezone; 83 84 #ifdef _POSIX_SOURCE 85 struct timespec 86 { 87 time_t tv_sec; 88 long tv_nsec; 89 }; 90 91 int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); 92 #endif 93 94 #endif /* _TIME_H */ 95