-extern time_t time(time_t *t);
+// extern time_t time(time_t *t);
function psi\time() : int {
let t = NULL;
return to_int(time);
}
-extern int gettimeofday(struct timeval *tv, struct timezone *tz);
+// extern int gettimeofday(struct timeval *tp, struct timezone *tz);
function psi\gettimeofday(array &$tv = NULL, array &$tz = NULL) : int {
- let tv = calloc(1, struct timeval);
- let tz = calloc(1, struct timezone);
+ let tp = calloc(1, psi\SIZEOF_STRUCT_TIMEVAL);
+ let tz = calloc(1, psi\SIZEOF_STRUCT_TIMEZONE);
return to_int(gettimeofday);
- set $tv = to_array(*tv,
- to_int(tv_sec),
+ set $tv = to_array(*tp,
+ to_int(tv_sec),
to_int(tv_usec));
- set $tz = to_array(*tz,
- to_int(tz_minuteswest),
+ set $tz = to_array(*tz,
+ to_int(tz_minuteswest),
to_int(tz_dsttime));
}
-extern char *asctime(struct tm *tm);
-function psi\asctime(array $tm = NULL) : string {
- let tm = arrval($tm);
+// extern char *asctime(struct tm *tm);
+function psi\asctime(array $tm) : string {
+ let tm = &arrval($tm,
+ intval($tm_sec),
+ intval($tm_min),
+ intval($tm_hour),
+ intval($tm_mday),
+ intval($tm_mon),
+ intval($tm_year),
+ intval($tm_wday),
+ intval($tm_yday),
+ intval($tm_isdst)
+ );
return to_string(asctime);
}
-extern char *asctime_r(struct tm *tm, char *buf);
-function psi\asctime_r(array $tm = NULL) : string {
- let tm = arrval($tm);
- let buf = calloc(32, char);
+// extern char *asctime_r(struct tm *tm, char *buf);
+function psi\asctime_r(array $tm) : string {
+ let tm = &arrval($tm,
+ intval($tm_sec),
+ intval($tm_min),
+ intval($tm_hour),
+ intval($tm_mday),
+ intval($tm_mon),
+ intval($tm_year),
+ intval($tm_wday),
+ intval($tm_yday),
+ intval($tm_isdst)
+ );
+ let buf = calloc(32, psi\SIZEOF_CHAR);
return to_string(asctime_r);
}
-extern struct tm *gmtime(time_t *tp);
+// extern struct tm *gmtime(time_t *t);
function psi\gmtime(int $ts) : array {
- let tp = &intval($ts);
+ let t = &intval($ts);
return to_array(*gmtime,
to_int(tm_sec),
to_int(tm_min),
);
}
-extern struct tm *gmtime_r(time_t *tp, struct tm *buf);
+// extern struct tm *gmtime_r(time_t *t, struct tm *buf);
function psi\gmtime_r(int $ts) : array {
- let tp = &intval($ts);
- let buf = calloc(1, struct tm);
+ let t = &intval($ts);
+ let buf = calloc(1, psi\SIZEOF_STRUCT_TM);
return to_array(*gmtime_r,
to_int(tm_sec),
to_int(tm_min),
);
}
-extern int nanosleep(struct timespec *rqtp, struct timespec *rmtp);
+// extern int nanosleep(struct timespec *rqts, struct timespec *rmts);
function psi\nanosleep(array $rq = NULL, array &$rm = NULL) : int {
- let rqtp = arrval($rq);
- let rmtp = calloc(1, struct timespec);
+ let rqts = &arrval($rq,
+ intval($tv_sec),
+ intval($tv_nsec)
+ );
+ let rmts = calloc(1, psi\SIZEOF_STRUCT_TIMESPEC);
return to_int(nanosleep);
- set $rm = to_array(*rmtp,
+ set $rm = to_array(*rmts,
to_int(tv_sec),
to_int(tv_nsec)
);
}
-extern clock_t times(struct tms *buf);
+// extern clock_t times(struct tms *buf);
function psi\times(array &$tms = NULL) : int {
- let buf = calloc(1, struct tms);
+ let buf = calloc(1, psi\SIZEOF_STRUCT_TMS);
return to_int(times);
set $tms = to_array(*buf,
to_int(tms_utime),