#include <stdio.h>#include <sys/time.h>#define MAX_TIMESTAMPS 10int main() { struct timeval timestamps[MAX_TIMESTAMPS]; int i; // 保存10个时间戳到数组中 for (i = 0; i < MAX_TIMESTAMPS; i++) { gettimeofday(×tamps[i], NULL); usleep(100000); // 等待100毫秒 } // 打印时间戳数组 for (i = 0; i < MAX_TIMESTAMPS; i++) { printf("%ld.%06ld\n", timestamps[i].tv_sec, timestamps[i].tv_usec); } return 0;} 修改打印时间减去起始时间
时间: 2024-03-12 16:48:33 浏览: 83
您可以在程序中添加一个起始时间戳变量,并且在循环打印时间戳之前,计算每个时间戳与起始时间戳的时间差,然后打印出时间差即可。修改后的程序如下所示:
```
#include <stdio.h>
#include <sys/time.h>
#define MAX_TIMESTAMPS 10
int main() {
struct timeval timestamps[MAX_TIMESTAMPS];
int i;
gettimeofday(×tamps[0], NULL); // 记录起始时间戳
// 保存10个时间戳到数组中
for (i = 1; i < MAX_TIMESTAMPS; i++) {
gettimeofday(×tamps[i], NULL);
usleep(100000); // 等待100毫秒
}
// 打印时间戳数组
for (i = 1; i < MAX_TIMESTAMPS; i++) {
long sec = timestamps[i].tv_sec - timestamps[0].tv_sec;
long usec = timestamps[i].tv_usec - timestamps[0].tv_usec;
printf("%ld.%06ld\n", sec, usec);
}
return 0;
}
```
在这个修改后的程序中,我们在循环记录时间戳之前,先记录了一个起始时间戳,然后在打印时间戳时,计算了每个时间戳与起始时间戳的时间差,并将时间差打印出来。
阅读全文