struct timeval 的长度为 64 位。对于一个项目,我需要将这个 long (struct timeval) 转换为两个 32 位块,并将每个块放入一个不同的变量中。我该怎么做呢?提前谢谢。
问问题
1700 次
4 回答
2
uint32_t* values = &timevalstruct;
// depends on endianess
uint32_t v1 = values[0];
uint32_t v2 = values[1];
于 2010-10-15T11:15:34.133 回答
1
作为leppie回答的补充:
union tvs
{
struct timeval tv;
struct ints {
uint32_t v1;
uint32_t v2;
};
};
tvs t;
t.tv = timevalstruct;
uint32_t v1 = tv.ints.v1;
uint32_t v2 = tv.ints.v2;
如果你不想处理指针。
于 2010-10-15T11:18:25.117 回答
0
struct timeval tv;
...
uint32_t seconds = tv.tv_sec;
uint32_t micros = tv.tv_usec;
你去吧,分成 32 位整数。
于 2010-10-15T17:34:46.157 回答
0
看到这个: http: //linux.die.net/man/2/gettimeofday
可以使用 timeval 结构的 tv_sec 和 tv_usec 字段吗?
于 2010-10-15T11:19:53.050 回答