温馨提示×

C++中timeval的典型用法示例有哪些

c++
小樊
82
2024-08-11 10:39:37
栏目: 编程语言

  1. 计算程序运行时间:可以使用timeval记录程序开始和结束时的时间戳,然后计算两者之差来获取程序运行时间。
#include <iostream>
#include <sys/time.h>

int main() {
    struct timeval start, end;
    gettimeofday(&start, NULL);

    // Your code here

    gettimeofday(&end, NULL);

    long seconds = end.tv_sec - start.tv_sec;
    long micros = end.tv_usec - start.tv_usec;
    double elapsed = seconds + micros/1000000.0;

    std::cout << "Program executed in " << elapsed << " seconds." << std::endl;

    return 0;
}
  1. 实现定时器功能:可以使用timeval来设置定时器,当时间达到指定值时触发某种操作。
#include <iostream>
#include <unistd.h>
#include <sys/time.h>

void timerCallback() {
    std::cout << "Timer expired!" << std::endl;
}

int main() {
    struct timeval timeout;
    timeout.tv_sec = 5;
    timeout.tv_usec = 0;

    select(0, NULL, NULL, NULL, &timeout);

    timerCallback();

    return 0;
}
  1. 计算两个时间点之间的时间差:可以使用timeval来记录两个时间点,然后计算它们之间的时间差。
#include <iostream>
#include <sys/time.h>

int main() {
    struct timeval start, end;
    gettimeofday(&start, NULL);

    // Some operations

    gettimeofday(&end, NULL);

    long seconds = end.tv_sec - start.tv_sec;
    long micros = end.tv_usec - start.tv_usec;
    double elapsed = seconds + micros/1000000.0;

    std::cout << "The time difference is " << elapsed << " seconds." << std::endl;

    return 0;
}

这些是一些C++中timeval的典型用法示例,可以根据具体的需求进行修改和扩展。

0