EDIT: Thanks for the answers so far, at least I can compile it now, but I'm still getting a segmentation error.
For compilation, I use the following line:
gcc -g -O0 -I../include -L../ test.c -static -lrt
The source code is as follows:
#include <sys/time.h>
#include <time.h>
#include <stdio.h>
struct timespec *diff(struct timespec *start, struct timespec *end);
int main()
{
struct timespec time1, time2;
int i;
int temp = 0;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time1);
for (i = 0; i< 242000000; i++)
temp+=temp;
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time2);
printf("sec: %d, nsec: %f",diff(&time1,&time2)->tv_sec, diff(&time1,&time2)->tv_nsec);
return 0;
}
struct timespec *diff(struct timespec *start, struct timespec *end)
{
struct timespec *temp;
if ((end->tv_nsec-start->tv_nsec)<0) {
temp->tv_sec = end->tv_sec-start->tv_sec-1;
temp->tv_nsec = 1000000000+end->tv_nsec-start->tv_nsec;
} else {
temp->tv_sec = end->tv_sec-start->tv_sec;
temp->tv_nsec = end->tv_nsec-start->tv_nsec;
}
return temp;
}
Now I get the following warning:
test.c: In function βmainβ:
test.c:17: warning: format β%dβ expects type βintβ, but argument 2 has type β__time_tβ
test.c:17: warning: format β%fβ expects type βdoubleβ, but argument 3 has type βlong intβ
The segmentation error is certainly caused by my processing of structures. Most recently, I last dealt with C ....
Thanks a lot Marcus
source
share