快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

linux休眠毫秒命令,linux睡眠1秒

linux系统关闭休眠命令

关闭电脑休眠功能

公司主营业务:成都网站制作、做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出峰峰矿免费做网站回馈大家。

先找到文件/etc/systemd/logind.conf进行编辑:

sudo vi /etc/systemd/logind.conf

找到下列条目

#HandleLidSwitch=suspend

改成如下

HandleLidSwitch=ignore

保存退出,重启系统

linux中shell如何实现毫秒级别的sleep?

有两种方法:

假设目标为 10ms:

方法1. sleep 0.01

方法2.usleep 10000 (usleep为十的负六次方秒,详细见man usleep)

Linux服务器rc.local 执行脚本,中的sleep命令

sleep 30,等待30秒。

建议把sleep命令以及sleep之后的动作写在先前那个命令动作后面,同时放置在后台。

linux:统计耗时

linux下的方法:

(1) 使用命令time:

[root@localhost-120 xgf]# time ./standard

counter = 1000000

real 0m0.006s

user 0m0.000s

sys 0m0.000s

time命令对秒(s)级别的很精确,而对毫秒级的误差比价大。我们可以通过sleep/usleep函数来进行测试。sleep(0.1)或者usleep(100)都是表示休眠100ms,而测试结果都是:

real 0m0.002s

user 0m0.000s

sys 0m0.000s

(2) 通过difftime函数:

double difftime(time_t time1, time_t time0);计算time1和time0之间的秒数。测试程序如下:

#include stdio.h

#include time.h

#define MAX 1000

int do_work()

{

int counter = 0; /* the counter */

int i, j; /* the loop variable */

/* accumulate the counter */

for(i = 0; i MAX; i++)

for(j = 0; j MAX; j++)

counter++;

/* return the counter's value */

return counter;

}

int main()

{

time_t start, end;

int val;

start = time(NULL);

do_work();

end = time(NULL);

printf("val = %f/n", difftime(end, start));

return 0;

}

在linux下,想用sleep函数实现延时五秒,应该怎么设参数?

使用权限 : 所有使用者

使用方式 : sleep [--help] [--version] number[smhd]

说明 : sleep 可以用来将目前动作延迟一段时间

参数说明 :

--help : 显示辅助讯息

--version : 显示版本编号

number : 时间长度,后面可接 s、m、h 或 d

其中 s 为秒,m 为 分钟,h 为小时,d 为日数

例子 :

显示目前时间后延迟 1 分钟,之后再次显示时间 :

date;sleep 1m;date

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

如下面的一段程序:

应用程序:

复制代码

代码如下:

#include syswait.h

usleep(n) //n微秒

Sleep(n)//n毫秒

sleep(n)//n秒

驱动程序:

#include linux/delay.h

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下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec);当然,使用的时候别忘记#include system.h哦。

另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250);


本文标题:linux休眠毫秒命令,linux睡眠1秒
分享URL:http://6mz.cn/article/hsogjg.html

其他资讯