匿名用户
不管您如何处理这个问题,也不管您使用的是哪种类型的System/OS,您最多只能得到一个近似的答案,由于问题的性质,会有相当大的差异。
第二,你需要一个支持这种调用的系统。如果你使用QNX中微子,这很容易:
http://www.qnx.com/developers/docs/6.3.0sp3/neutrino/lib_ref/C/clock_gettime.html/*
* This program calculates the time required to
* execute the program specified as its first argument.
* The time is printed in seconds, on standard out.
*/
#include
#include
#include
#include
#define BILLION 1000000000L;
int main( int argc, char** argv )
{
struct timespec start, stop;
double accum;
if( clock_gettime( CLOCK_REALTIME, &start) == -1 ) {
perror( "clock gettime" );
return EXIT_FAILURE;
}
system( argv[1] );
if( clock_gettime( CLOCK_REALTIME, &stop) == -1 ) {
perror( "clock gettime" );
return EXIT_FAILURE;
}
accum = ( stop.tv_sec - start.tv_sec )
+ (double)( stop.tv_nsec - start.tv_nsec )
/ (double)BILLION;
printf( "%lf\n", accum );
return EXIT_SUCCESS;
}