|
|
|
@ -54,11 +54,7 @@ |
|
|
|
|
|
|
|
/* {{{ proto string microtime(void) |
|
|
|
Returns a string containing the current time in seconds and microseconds */ |
|
|
|
#ifdef __cplusplus |
|
|
|
void php3_microtime(HashTable *) |
|
|
|
#else |
|
|
|
PHP_FUNCTION(microtime) |
|
|
|
#endif |
|
|
|
{ |
|
|
|
#if HAVE_GETTIMEOFDAY |
|
|
|
struct timeval tp; |
|
|
|
@ -76,6 +72,79 @@ PHP_FUNCTION(microtime) |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
|
|
|
|
/* {{{ proto array gettimeofday(void) |
|
|
|
returns the current time as array */ |
|
|
|
PHP_FUNCTION(gettimeofday) |
|
|
|
{ |
|
|
|
#if HAVE_GETTIMEOFDAY |
|
|
|
struct timeval tp; |
|
|
|
struct timezone tz; |
|
|
|
|
|
|
|
memset(&tp, 0, sizeof(tp)); |
|
|
|
memset(&tz, 0, sizeof(tz)); |
|
|
|
if(gettimeofday(&tp, &tz) == 0) { |
|
|
|
array_init(return_value); |
|
|
|
add_assoc_long(return_value, "sec", tp.tv_sec); |
|
|
|
add_assoc_long(return_value, "usec", tp.tv_usec); |
|
|
|
add_assoc_long(return_value, "minuteswest", tz.tz_minuteswest); |
|
|
|
add_assoc_long(return_value, "dsttime", tz.tz_dsttime); |
|
|
|
return; |
|
|
|
} else |
|
|
|
#endif |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
/* {{{ proto array getrusage([ int who ]) |
|
|
|
returns an array of usage statistics */ |
|
|
|
PHP_FUNCTION(getrusage) |
|
|
|
{ |
|
|
|
#if HAVE_GETRUSAGE |
|
|
|
struct rusage usg; |
|
|
|
int ac = ARG_COUNT(ht); |
|
|
|
pval *pwho; |
|
|
|
int who = RUSAGE_SELF; |
|
|
|
|
|
|
|
if(ac == 1 && |
|
|
|
getParameters(ht, ac, &pwho) != FAILURE) { |
|
|
|
convert_to_long(pwho); |
|
|
|
if(pwho->value.lval == 1) |
|
|
|
who = RUSAGE_CHILDREN; |
|
|
|
} |
|
|
|
|
|
|
|
memset(&usg, 0, sizeof(usg)); |
|
|
|
if(getrusage(who, &usg) == -1) { |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
array_init(return_value); |
|
|
|
#define PHP3_RUSAGE_PARA(a) \ |
|
|
|
add_assoc_long(return_value, #a, usg.a) |
|
|
|
#ifndef _OSD_POSIX /* BS2000 has only a few fields in the rusage struct */ |
|
|
|
PHP3_RUSAGE_PARA(ru_oublock); |
|
|
|
PHP3_RUSAGE_PARA(ru_inblock); |
|
|
|
PHP3_RUSAGE_PARA(ru_msgsnd); |
|
|
|
PHP3_RUSAGE_PARA(ru_msgrcv); |
|
|
|
PHP3_RUSAGE_PARA(ru_maxrss); |
|
|
|
PHP3_RUSAGE_PARA(ru_ixrss); |
|
|
|
PHP3_RUSAGE_PARA(ru_idrss); |
|
|
|
PHP3_RUSAGE_PARA(ru_minflt); |
|
|
|
PHP3_RUSAGE_PARA(ru_majflt); |
|
|
|
PHP3_RUSAGE_PARA(ru_nsignals); |
|
|
|
PHP3_RUSAGE_PARA(ru_nvcsw); |
|
|
|
PHP3_RUSAGE_PARA(ru_nivcsw); |
|
|
|
#endif /*_OSD_POSIX*/ |
|
|
|
PHP3_RUSAGE_PARA(ru_utime.tv_usec); |
|
|
|
PHP3_RUSAGE_PARA(ru_utime.tv_sec); |
|
|
|
PHP3_RUSAGE_PARA(ru_stime.tv_usec); |
|
|
|
PHP3_RUSAGE_PARA(ru_stime.tv_sec); |
|
|
|
#undef PHP3_RUSAGE_PARA |
|
|
|
#endif /* HAVE_GETRUSAGE */ |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
* Local variables: |
|
|
|
* tab-width: 4 |
|
|
|
|