linux中的sleep

转载 2015年07月08日 14:49:08
函数名: sleep

 头文件: #include // 在VC中使用带上头文件
       #include   //在gcc编译器中,使用的头文件因gcc版本的不同而不同
 功  能: 执行挂起指定的秒数
 语  法: unsigned sleep(unsignedseconds);

示例:
 #include
 #include
 int main()
 {
  int a;
  a=1;
  printf("hello");
  sleep(a);      
  printf("world");
  return 0;
 }

函数名: usleep
 头文件: #include
 功  能: usleep功能把进程挂起一段时间,单位是微秒(百万分之一秒);
 语  法: void usleep(intmicro_seconds);
 返回值: 无
 内容说明:本函数可暂时使程序停止执行。参数 micro_seconds为要暂停的微秒数(us)。
 注 意:
 这个函数不能工作在windows 操作系统中。用在Linux的测试环境下面。
 参 见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到redayqueue。
 是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。
 如果延迟时间为几十毫秒(1ms =1000us),或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间
 

时钟换算:
 微秒,时间单位,符号us(英语:microsecond ).
 1微秒等于百万分之一秒(10的负6 次方秒)
 0.000 001 微秒 = 1皮秒
 0.001 微秒 = 1纳秒
 1,000 微秒 = 1毫秒
 1,000,000 微秒 = 1秒
 1s = 1000ms
 1ms = 1000μs
 1μs = 1000ns
 1ns = 1000ps
 1秒(s) = 1000 毫秒(ms) = 1,000,000 微秒(μs) =1,000,000,000 纳秒(ns) = 1,000,000,000,000 皮秒(ps)



使用权限 : 所有使用者
使用方式 : sleep [--help] [--version] number[smhd]
说明 : sleep 可以用来将目前动作延迟一段时间
参数说明 :
--help : 显示辅助讯息
--version : 显示版本编号
number : 时间长度,后面可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为小时,d 为日数
例子 :
显示目前时间后延迟 1 分钟,之后再次显示时间 :
date;sleep 1m;date

资料整理 www.linuxso.com

这个命令更多应用于shell脚本编程里和程序里

如下面的一段程序:

 

应用程序:
#include
usleep(n) //n微秒
Sleep(n)//n毫秒
sleep(n)//n秒
驱动程序:
#include
mdelay(n) //milliseconds 其实现
#ifdef notdef
#define mdelay(n) (\
{unsigned long msec=(n); while (msec--) udelay(1000);})
#else
#define mdelay(n) (\
(__builtin_constant_p(n) &&(n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \
({unsigned long msec=(n); while (msec--) udelay(1000);}))
#endif
调用asm/delay.h的udelay,udelay应该是纳秒级的延时

Dos: 
sleep(1); //停留1秒 
delay(100);//停留100毫秒   
Windows: 
Sleep(100); //停留100毫秒 
Linux: 
sleep(1); //停留1秒 
usleep(1000); //停留1毫秒 
每一个平台不太一样,最好自己定义一套跨平台的宏进行控制  

秒还是微秒?关于延时函数sleep()

   因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下)。觉得很奇怪,因为头儿也记得好像是微秒为单位的。所以就查了一下。
 
   原来linux下的sleep函数原型为:
       unsigned int sleep(unsigned int seconds);
而MFC中的Sleep函数原型为:
       void Sleep(DWORD dwMilliseconds);
也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的sleep()函数是以微秒为单位的,sleep(1000);才是休眠1秒。原来如此啊。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:voidusleep(unsigned long usec);当然,使用的时候别忘记#include 哦。
 
 
  另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned intmsec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250);

CLOCK_NANOSLEEP


http://cpp.ezbty.org/import_doc/linux_manpage/clock_nanosleep.2.html

相关文章推荐

linux多线程编程,你还在用sleep么?用pthread

linux多线程编程,你还在用sleep么?用pthread_cond_timedwait吧 发表于 2011 年 06 月 02 日 由 dllgwgy 摘要:多线程编程中,线程A循...

linux下的sleep usleep select

1.sleep/usleep: sleep(n):休眠n秒; usleep(n):休眠n微妙;1秒=1000,000微秒 可用于定时器,头文件:unistd.h 以下是简单小程序: ...

【Linux】模拟实现sleep函数

模拟实现实现sleep函数首先来了解什么是sleep以及它的工作原理使用命令 man 3 sleep 查看下系统是怎么介绍sleep函数的 函数原型:当前进程挂起指定时间后继续运行 描述: ...

linux进程控制函数--fork,exec,exit,wait,sleep

1.fork 在linux系统中,用户创建进程的唯一方法就是使用系统调用fork,大概要进行下面的操作。 .分配表项,一个用户的进程项是有限的; .创建子进程的进程标识号; .复制父进程中的项...

Linux 进程的 Uninterruptible sleep(D) 状态

updatedb进程无法杀死 [root@localhost openjpeg-2.1.0]# ps auwx| grep updatedb root      1514  0.0  0.0 10...

【linux】:模拟实现sleep函数

了解linux中的sleep函数功能:将进程挂起一段时间 函数原型:#include unsigned int sleep (unsigned int seconds);//n秒来举一个很简单的栗子...

Linux模拟实现sleep

工作原理 linux中的sleep函数能够让程序休眠一定的秒数,到时间后自动恢复运行。 实现思路 设定睡眠的秒数 睡眠(挂起) 恢复运行 实现机制 设定睡眠的秒数:采用alarm()函数设定...

linux和windows下,C/C++的sleep函数

简介:  函数名: sleep   功 能: 执行挂起一段时间   用 法: unsigned sleep(unsigned seconds);   在VC中使用带上头文件  ...

linux之睡眠函数(my_sleep)

我们在程序中,很多次用到sleep()函数,让它睡眠几秒后再执行该进程。今天呢,我要给大家实现一下sleep函数。 看看代码哦:

linux 下 kernel + kthread + 内核list + vmalloc + vfree + interruptible_sleep_on_timeout 学习实例

code: #include #include #include #include #include #include #include #include #include #...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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