`
javatoyou
  • 浏览: 1083656 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

struct timeval 和 struct timespec

 
阅读更多

timeval

  DESCRIPTION
  The functions gettimeofday and settimeofday can get and set the time as
  well as a timezone. The tv argument is a timeval struct, as specified in <sys/time.h>:

struct timeval {
   time_t tv_sec; /* seconds */
   suseconds_t tv_usec; /* microseconds */
  };
其中返回的timeval值为Epoch(00:00:00 1970-01-01 UTC)到创建struct timeval时的时间,tv_sec为秒数部分,tv_usec为微秒数部分(10的-6次方秒)。比如当前程序运行的tv_sec1244770435tv_usec442388,即当前时间距Epoch时间1244770435秒,442388微秒。

测试代码如下:
  #include <stdio.h>
  #include <sys/time.h>
  #include <time.h>
  int gettimeofday(struct timeval *tv, struct timezone *tz);
  int main(int argc,char * argv[]){
  struct timeval tv;
   while(1){
   gettimeofday(&tv,NULL);
printf("time %u:%u/n",tv.tv_sec,tv.tv_usec);
   sleep(2);
   }
  return 0;
   }

运行结果如下:
time 1259471701:970193
time 1259471703:971529
time 1259471705:973225
time 1259471707:974921

timespec
/* POSIX.1b structure for a time value. This is like a `struct timeval' but
has nanoseconds instead of microseconds. */
struct timespec
{
__time_t tv_sec; /* Seconds. */
long int tv_nsec; /* Nanoseconds. */
};

与struct timeval 不同,将结构体内成员微秒变换成纳秒

分享到:
评论

相关推荐

    Linux操作系统基础第三部分.pptx

    struct tm结构体用于表示日期和时间,而struct timeval和struct timespec则用于微秒和纳秒级别的精度。 **编程示例:GCC编译过程** GCC(GNU Compiler Collection)是Linux下的C语言编译器,通过`gcc`命令编译源...

    Linux时间相关结构体和函数整理

    Linux下常用的时间类型有4个:time_t,struct timeb, struct timeval,struct timespec,clock_t, struct tm.  (1) time_t是一个长整型,一般用来表示用1970年以来的秒数.  该类型定义在中.  一般通过 time_...

    C语言中的Time函数

    #### 2.1 `struct timeval`和`struct timezone` `struct timeval`主要用于存储高精度的时间,而`struct timezone`则存储有关时区的信息,如西经多少分钟(`tv_minuteswest`)和夏令时状态(`tv_dsttime`)。 #### 2.2 `...

    linux-time.rar_Time

    - **struct timeval**:与struct timespec类似,但精度稍低,包含秒和微秒。 3. **内核时间API** - **gettimeofday()**:获取当前时间,返回struct timeval结构体,常用于用户空间。 - **clock_gettime()**:...

    汇编 显示系统时间

    在Linux中,可以使用`sys_time`系统调用来获取时间,通过填写`struct timeval`或`struct timespec`结构体来获取精确到微秒或纳秒的时间戳。这需要使用`syscalls.h`头文件,并且调用`syscall()`函数,如`syscall(SYS_...

    linux_count_time_api.rar_Linux 时间 API

    struct timespec ts; clock_gettime(CLOCK_REALTIME, &ts); ``` `gettimeofday(2)`函数则返回当前时间的结构体,包括秒和微秒,但在新的代码中通常不推荐使用,因为它不支持纳秒精度: ```c #include #include ...

    关于Linux下时间编程的问题

    - `struct timespec`:包含`tv_sec`(秒数,精度更高,达到纳秒级别)和`tv_nsec`(纳秒数)两个长整型成员。 - `struct tm`:用于表示日期和时间,包括秒、分、小时、日、月、年、星期以及是否为夏令时等信息。 ...

    Linux系统中时间的获取和使用

    `gettimeofday()`需要一个`struct timeval`结构体来保存时间,而`clock_gettime()`则需要一个`struct timespec`结构体。例如: ```cpp #include #include #include int main() { struct timeval stCurTime2; ...

    linux编程中关于时间编程

    该函数返回自1970年1月1日以来的秒数和微秒数,存储在`struct timeval`结构体中。 - **`clock_gettime()`**:这是一种较新的函数,可以获取纳秒级别的当前时间。它返回自1970年1月1日以来的秒数和纳秒数,存储在`...

    Linux时间子系统.docx

    时间表示在Linux内核中有多种形式,包括jiffies(基于时钟滴答的计数)、timeval(秒和微秒)、timespec(秒和纳秒)以及ktime(通用时间架构)。jiffies是最早的计时方式,基于处理器时钟中断,每次中断增加一。...

    LINUX 下C++ 获取系统时间和设置时间

    struct timeval tv; tv.tv_sec = 1635438289; // 假设你想设置的时间为2021年10月15日 tv.tv_usec = 0; // 微妙部分通常设为0 if (settimeofday(&tv, nullptr) == -1) { perror("settimeofday"); return 1; ...

    Linux定时器的使用

    - **struct itimerval**:用于描述itimer的结构体,包含两个`timeval`结构体,分别表示初始值和重置值。 - **struct timespec**:表示时间的结构体,包含秒和纳秒部分。 - **struct itimerspec**:用于描述...

    Linux内核设备驱动之内核的时间管理笔记整理

    内核提供了struct timeval结构体来表示绝对时间,它包含秒数(tv_sec)和微秒数(tv_usec)。此外,还有struct timespec结构体,它包含了纳秒级的精度。这两个结构体可以帮助驱动程序处理精确的时间间隔。 总的来说...

    linux系统调用简介

    函数原型:`int gettimeofday(struct timeval *tv, struct timezone *tz);` #### 其他相关头文件和函数 - **`&lt;string.h&gt;`**:提供字符串操作函数如`strcpy`, `strlen`, `strcat`等。 - **`&lt;stdio.h&gt;`**:提供标准...

    linux定时器底层处理及编程

    - **`struct timeval`**:这是一个较老但非常流行的结构体,用于存储自1970年1月1日0点以来的秒数和微秒数。 - **`struct timespec`**:这是一个较新的结构体,用于存储秒数和纳秒数,提供了更高的精度。 通过这两...

    linux内核kernel-api.pdf

    - 示例:`struct timespec ts; ktime_set(ts);` - 将 `ts` 转换为 `ktime_t` 类型的时间间隔。 - **`ktime_sub`**: 计算两个时间间隔之间的差。 - 示例:`ktime_t diff = ktime_sub(end, start);` - 计算 `end` ...

    C语言时间处理实例分享

    其中,最常用的数据类型有`time_t`(表示时间的时间戳),结构体`struct tm`(用于存储日期和时间)以及`timespec`(高精度时间表示)等。函数如`time()`用于获取当前时间,`localtime()`和`gmtime()`用于将时间戳...

    Android编程计算函数时间戳的相关方法总结

    struct timespec time_start, time_end; struct rtc_time tm_start, tm_end; long time_nsec = 0; getnstimeofday(&time_start); rtc_time_to_tm(time_start.tv_sec, &tm_start); printk(KERN_ERR "\n (%d-%02d-%02...

    总结UNIX/LINUX下C++程序计时的方法

    struct timeval t1, t2; gettimeofday(&t1, NULL); f(); gettimeofday(&t2, NULL); long deltaT = (t2.tv_sec - t1.tv_sec) * 1000000 + t2.tv_usec - t1.tv_usec; // 微秒 return 0; } ``` `gettimeofday`...

Global site tag (gtag.js) - Google Analytics