linux延时函数

原创 2011年01月16日 21:35:00

很好的总结,很实用

linux延时函数(转载)

应用层:

   #include  <unistd.h>

   1、unsigned int sleep(unsigned int seconds); 秒级

   2、int usleep(useconds_t usec);              微秒级:1/10^-6

补:

       以前对于Linux下的延时函数只用过Sleep,不过最近发现还有其他的函数:

       延时可以采用如下函数:

       unsigned int sleep(unsigned int seconds);  

       sleep()会使目前程式陷入「

冬眠

」seconds秒,除非收到「

不可抵

」的信号。  

       如果sleep()没睡饱,它将会返回还需要补眠的时间,否则一般返回零。  

       void usleep(unsigned long usec);  

       usleep与sleep()类同,不同之处在於秒的单位为10E-6秒。  

       int select(0,NULL,NULL,NULL,struct timeval *tv);  

       可以利用select的实作sleep()的功能,它将不会等待任何事件发生。  

       int nanosleep(struct timespec *req,struct timespec *rem);  

       nanosleep会沉睡req所指定的时间,若rem为non-null,而且没睡饱,将会把要补眠的时间放在rem上。

   #include

   3、int nanosleep(const struct timespec *req, struct timespec *rem);

       struct timespec {

                  time_t tv_sec;        /* seconds */

                  long   tv_nsec;       /* nanoseconds */

              };

       // The value of the nanoseconds field must be in the range 0 to 999999999.

#include

#include

void Sleep(int iSec,int iUsec)

{

       struct timeval tv;

      tv.tv_sec=iSec;

      tv.tv_usec=iUsec;

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

}

iSec 为延时秒数,Usec为延时微秒数.

注:1秒=1000毫秒=1000000微秒=1000000000纳秒=1000000000000皮秒=1000000000000000飞秒

1s=1000ms=1000000us=1000000000ns=1000000000000ps=1000000000000000fs

内核层:

   include   <linux/delay.h>

   1、void ndelay(unsigned long nsecs);         纳秒级:1/10^-10

   2、void udelay(unsigned long usecs);         微秒级: 1/10^-6

   3、void mdelay(unsigned long msecs);         毫秒级:1/10^-3

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/skywalker_ll/archive/2009/12/02/4922414.aspx

Linux下的延迟函数sleep()

Linux下c语言中的延迟函数sleep()的用法#include int main() { printf("hello\n"); sleep(1); //延迟1秒 pr...
  • nigulasi_dawei
  • nigulasi_dawei
  • 2017年06月05日 11:22
  • 896

linux中内核延时函数

第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(u...
  • chunlovenan
  • chunlovenan
  • 2015年08月07日 08:46
  • 6944

linux应用程序中的延时和定时器

笔记:在linux应用程序中延时有sleep()、msleep()和usleep()函数之类的延时,也有如下形式的延时: struct timeval delay; delay.tv_s...
  • sonbai
  • sonbai
  • 2014年08月11日 15:09
  • 2515

linux驱动中的,时间, 延时

7.3. 延后执行 设备驱动常常需要延后一段时间执行一个特定片段的代码, 常常允许硬件完成某个任务. 在这一节我们涉及许多不同的技术来获得延后. 每种情况的环境决定了使用哪种技术最好; 我们...
  • Fybon
  • Fybon
  • 2016年07月22日 12:41
  • 588

C++ 的延时函数

原博文链接在我的官方网站,网址是:http://www.aobosir.com/blog/2017/02/05/cpp-sleep/方法一在Linux下,我们这样使用:#include #inclu...
  • github_35160620
  • github_35160620
  • 2017年03月04日 03:53
  • 2571

linux 延时工作队列

INIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会...
  • Tommy_wxie
  • Tommy_wxie
  • 2013年04月11日 10:51
  • 1305

关于linux下时间延迟函数精度问题

Linux内核时钟中断设施linux的时钟中断需要两个全局变量,分别是xtime与jiffies。1、xtime一个timeval结构类型变量,是从cmos电路中取得的时间,一般是从某一历史时刻开始到...
  • u010487568
  • u010487568
  • 2016年07月27日 10:31
  • 1409

GCC下用C写for循环延迟函数并且不被优化的实现

方法之一么,就是把for延迟的函数单独放到一个文件里,设置该文件优化等级为-00来编译。 不过我在这个例程里不使用这个方法。看一下下面这个实验代码(不是试验,因为linux的内核代码里就有这个用法,...
  • AS520213211314
  • AS520213211314
  • 2014年03月05日 20:00
  • 2128

linux中select 方法延迟

首先搞清楚select的返回值,代表些什么。
  • a_tu_
  • a_tu_
  • 2014年10月27日 16:21
  • 946

中断处理程序、中断上下文中处理延时及一些函数的调用规则

1,中断处理程序中不能使用有睡眠功能的函数,如ioremap,kmalloc,msleep等,理由是中断程序并不是进程,没有进程的概念,因此就没有休眠的概念; 2,中断处理程序中的延时可以用忙等...
  • xhjcehust
  • xhjcehust
  • 2014年06月29日 20:53
  • 1381
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux延时函数
举报原因:
原因补充:

(最多只允许输入30个字)