linuxpmsleep命令,linuxsleep命令参数及⽤法详解(linux休眠
延迟执⾏命令)
使⽤权限 : 所有使⽤者
使⽤⽅式 : sleep [--help] [--version] number[smhd]
说明 : sleep 可以⽤来将⽬前动作延迟⼀段时间
参数说明 :
--help : 显⽰辅助讯息
--version : 显⽰版本编号
number : 时间长度,后⾯可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为⼩时,d 为⽇数
例⼦ :
显⽰⽬前时间后延迟 1 分钟,之后再次显⽰时间 :
date;sleep 1m;date
这个命令更多应⽤于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:
linux下的sleep函数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下也⽤微妙为单位休眠,可以使⽤线程休眠函数:void usleep(unsigned long usec);当然,使⽤的时候别忘记#include 哦。
另外值得⼀提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时⼀秒钟的话,可以这么⽤ delay(250);
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论