fp might be NULL.
[minix.git] / include / time.h
blobe17c42f4e25440c938b6f463a6788c8c1e892539
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 */
9 #ifndef _TIME_H
10 #define _TIME_H
12 #define CLOCKS_PER_SEC 60
14 #ifdef _POSIX_SOURCE
15 #define CLK_TCK CLOCKS_PER_SEC /* obsolescent mame for CLOCKS_PER_SEC */
16 #endif
18 #define NULL ((void *)0)
20 #ifndef _SIZE_T
21 #define _SIZE_T
22 typedef unsigned int size_t;
23 #endif
25 #ifndef _TIME_T
26 #define _TIME_T
27 typedef long time_t; /* time in sec since 1 Jan 1970 0000 GMT */
28 #endif
30 #ifndef _CLOCK_T
31 #define _CLOCK_T
32 typedef long clock_t; /* time in ticks since process started */
33 #endif
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 */
47 extern char *tzname[];
49 /* Function Prototypes. */
50 #ifndef _ANSI_H
51 #include <ansi.h>
52 #endif
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 *ctime, (const time_t *_timer) );
60 _PROTOTYPE( struct tm *gmtime, (const time_t *_timer) );
61 _PROTOTYPE( struct tm *localtime, (const time_t *_timer) );
62 _PROTOTYPE( size_t strftime, (char *_s, size_t _max, const char *_fmt,
63 const struct tm *_timep) );
65 #ifdef _POSIX_SOURCE
66 _PROTOTYPE( void tzset, (void) );
67 #endif
69 #ifdef _MINIX
70 _PROTOTYPE( int stime, (time_t *_top) );
71 #endif
73 extern long timezone;
75 #ifdef _POSIX_SOURCE
76 struct timespec
78 time_t tv_sec;
79 long tv_nsec;
82 int nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
83 #endif
85 #endif /* _TIME_H */