当前位置:首页 » 编程语言 » c语言linuxsleep

c语言linuxsleep

发布时间: 2025-02-28 01:31:23

linux系统 下 如何让c语言sleep()函数等待时间小于1秒

sleep()函数大概只能精确到50ms左右,你用sleep(10)是肯定不行的,如果你要精确的定时的话可以使用QueryPerformanceFrequency()函数,用法为:
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim<0.001);
其定时误差不超过1微秒,精度与CPU等机器配置有关。

×××××××××××××××××××××××××

sleep()函数的中等待时间是以毫秒计算的,所以等待1秒就是sleep(1000),如果要让等待时间小于一秒,那么就让传入的参数小于1000就行了.
比如,等待0.1秒:
sleep(100);

⑵ 请教Linux下的sleep函数

函数名: sleep、usleep
功 能: 执行挂起一段时间
头文件: #include <unistd.h>
区 别: unsigned sleep (unsigned int seconds);//n秒
int usleep (useconds_t usec);//n微秒

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include<stdio.h>
#include<unistd.h>
int main()
{
int sec = 0,
usec = 0;
while(1)
{
printf("sec = %d \n",++sec);
sleep(1);
printf("usec = %d \n",++usec);
usleep(1000000);
}
return 0;
}

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)。
Linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250)。

⑶ linux 中sleep是什么意思

sleep
睡眠,参数为时间,单位:秒

shell中,用法:
sleep seconds,表示睡眠多少秒

代码中,用法:
#include <unistd.h>

unsigned int sleep(unsigned int seconds);

视实际需要,有时需要睡眠若干秒后继续执行,如:
执行某一过程,但并不关心是否执行完毕、执行成功还是失败,也可能执行过程中挂住,这时又不想一直卡在这里不动,就可设定一个睡眠时间x秒,x秒后继续向下执行。

⑷ c语言sleep函数怎么用

使用要带上头文件:

#include <windows.h>

Sleep函数:
功 能: 执行挂起一段时间
用 法: unsigned sleep(unsigned seconds);
注意:
1.在VC中使用带上头文件#include <windows.h>,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include <unistd.h>
2.在VC中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说VC用Sleep, 别的一律使用sleep。
3.在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000); 在Linux下,sleep()里面的单位是秒,而不是毫秒。

示例:


#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
delay()是循环等待,该进程还在运行,占用处理器。
sleep()不同,它会被挂起,把处理器让给其他的进程。

⑸ linux系统下如何让C语言sleep()函数等待时间小于1秒

#include // 头文件x0dx0aint usleep(useconds_t usec); // 函数原型x0dx0ausec -- 毫秒。整数。最大允许值:小于 1000000x0dx0a返回 0 -- 表示调用执行成功,1 -- 失败。

⑹ linux系统c语言进程不想被sleep阻塞等待怎么解决

1、启动后台子任务,在执行命令后加&操作符,表示将命令放在子shell中异步执行。可以达到多线程效果。如下,sleep10#等待10秒,再继续下一操作sleep10&#当前shell不等待,后台子shell等待。
2、wait命令wait是用来阻塞当前进程的执行,直至指定的子进程执行结束后,才继续执行。使用wait可以在bash脚本“多进程”执行模式下,起到一些特殊控制的作用。

热点内容
怎么打开ftp服务 发布:2025-04-22 18:34:42 浏览:149
二级密码什么时候自动消失 发布:2025-04-22 18:32:57 浏览:381
python3withopen 发布:2025-04-22 18:27:57 浏览:682
linuxdelete 发布:2025-04-22 18:25:33 浏览:20
安卓11圆圈什么意思 发布:2025-04-22 18:25:00 浏览:53
安卓微信区怎么登号 发布:2025-04-22 18:08:30 浏览:839
彩票源码公司 发布:2025-04-22 17:47:47 浏览:232
python图像识别pdf 发布:2025-04-22 17:33:13 浏览:520
手机鸿蒙系统如何转安卓 发布:2025-04-22 17:31:44 浏览:891
批处理ftp上传文件夹 发布:2025-04-22 17:29:26 浏览:789