timeval
结构体在 C++ 中用于表示时间,它包含两个字段:tv_sec
和 tv_usec
。tv_sec
表示秒数,tv_usec
表示微秒数。以下是如何使用 timeval
结构体的一些示例:
- 包含头文件:
#include
- 创建一个
timeval
结构体变量并设置时间:
struct timeval my_time; my_time.tv_sec = 10; // 设置秒数为 10 my_time.tv_usec = 500000; // 设置微秒数为 500000
- 将
timeval
结构体转换为字符串:
#include
#include
#include
std::string timeval_to_string(const struct timeval &time) {
std::ostringstream oss;
oss << time.tv_sec << "s " << time.tv_usec << "us";
return oss.str();
}
int main() {
struct timeval my_time;
my_time.tv_sec = 10;
my_time.tv_usec = 500000;
std::cout << "Time: " << timeval_to_string(my_time) << std::endl;
return 0;
}
- 从字符串解析
timeval
结构体:
#include
#include
bool string_to_timeval(const std::string &time_str, struct timeval &time) {
std::istringstream iss(time_str);
char dummy;
if (!(iss >> time.tv_sec >> dummy >> time.tv_usec) || !iss.eof()) {
return false;
}
return true;
}
int main() {
std::string time_str = "10s 500000us";
struct timeval my_time;
if (string_to_timeval(time_str, my_time)) {
std::cout << "Parsed time: " << my_time.tv_sec << "s " << my_time.tv_usec << "us" << std::endl;
} else {
std::cout << "Failed to parse time string" << std::endl;
}
return 0;
}
这些示例展示了如何创建和使用 timeval
结构体来表示和处理时间。