sleep函数头文件linux,linux系统下如何让C语言sleep()函数等待时间小于1秒?
sleep函数头文件linux,linux系统下如何让C语言sleep()函数等待时间小于1秒?详细介绍
本文目录一览: linux中sleep()的头文件是什么?
在
里面。
在VC中使用时,sleep函数的头文件为windows。h,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同
在VC中,Sleep中的第一个英文字符为大写的"S",在linux下不要大写,在标准C中是sleep,不要大写,简单的说VC用Sleep,别的一律使用sleep
在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);在Linux下,sleep()里面的单位是秒,而不是毫秒。
扩展资料:
Windows.h头文件之所重要,是因为头文件封装了许多库函数以及一些类,将一些复杂的工作由库函数处理,Windows.h头文件中包含了Windef.h、Winnt.h、Winbase.h、Winuser.h、Wingdi.h等头文件,涉及到了Windows内核API,图形界面接口,图形设备函数等重要的功能。
在C语言家族程序中,头文件被大量使用。一般而言,每个C++/C程序通常由头文件和定义文件组成。头文件作为一种包含功能函数、数据接口声明的载体文件,主要用于保存程序的声明,而定义文件用于保存程序的实现。
参考资料来源:百度百科-windows.h
linux系统下如何让C语言sleep()函数等待时间小于1秒?
#include // 头文件\x0d\x0aint usleep(useconds_t usec); // 函数原型\x0d\x0ausec -- 毫秒。整数。最大允许值:小于 1000000\x0d\x0a返回 0 -- 表示调用执行成功,1 -- 失败。
Linux下的sleep函数 要用的话得包涵什么头文件啊?
Linux下的sleep函数 要用的话得需要#include
sleep把进程的运行状态改为睡眠,将其从系统可执行队列去掉,这样系统就不会调度到该进程,不会分配CPU时间片,同时根据该进程的睡眠时间,将进程挂入相应的定时器队列中。
同时内核维持一个定时器队列,每一次时钟中断处理,都把当前到期的队列中的进程唤醒,加入到可运行进程队列中。 同时对所有挂入定时器队列中的进程时间值减1。
参考代码:
#include
#include
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中的“s”不大写
sleep()单位为秒,usleep()里面的单位是微秒。在内核中,sleep的实现是由pause函数和alarm函数两个实现的。
特别注意在Codeblocks环境下是无法使用sleep函数的,因为在windows上Codeblocks采用mingw(Gnu在Window环境下的编译器,可以充分使用WindowsApi)作为编译器,而在stdlib.h中sleep的说明如下:_CRTIMP void __cdecl __MINGW_NOTHROW _sleep (unsigned long) __MINGW_ATTRIB_DEPRECATED;可以认为mingw舍弃了sleep函数,建议用Sleep实现sleep。
参考资料来源:百度百科-Sleep函数
linux 的sleep()、usleep()、nanosleep()函数
原文地址: https://blog.csdn.net/weibo1230123/article/details/79139476
sleep()非系统调用,sleep()是在库函数中实现的,它是通过alarm()来设定报警时间,使用sigsuspend()将进程挂起在信号SIGALARM上。
sleep()只能精确到秒级上。sleep()会令目前的进程暂停,直到达到参数seconds 所指定的时间,或是被信号所中断。
return:若进程暂停到参数seconds 所指定的时间,成功则返回0,若有信号中断则返回剩余秒数。
除了时间单位为微秒以外,在使用上与sleep()差不多。还有就是实现也是不同的,sleep因为是用alarm实现的,所以时间单位为s ,而usleep的时间单位为us
,那肯定不是由alarm实现的,所以说它们的实现不同,但都是linux用的,而window下不能用,因为都是sleep和usleep都是在unistd.h下定义的。
return:若进程暂停到参数seconds 所指定的时间,成功则返回0,若有信号中断则返回剩余微秒数。
这个函数功能是暂停某个进程直到你规定的时间后恢复,参数req就是你要暂停的时间,其中req->tv_sec是以秒为单位,而tv_nsec以毫微秒为单位(10的-9次方秒)。由于调用nanosleep是是进程进入TASK_INTERRUPTIBLE,这种状态是会相应信号而进入TASK_RUNNING状态的,这就意味着有可能会没有等到你规定的时间就因为其它信号而唤醒,此时函数返回-1,切还剩余的时间会被记录在rem中。
return: 若进程暂停到参数 req所指定的时间,成功则返回0,若有信号中断则返回-1,并且将剩余微秒数记录在 rem中。
unistd.h 是 unix 系统标准头文件,用于系统调用,相当于win32中的windows.h,unistd.h 定义的函数只能用于UNIX环境中,而不能用于windows。所以sleep 和 usleep 只能用于linux下,而不能用于windows 。
nalosleep 和 其它时间日期操作函数一样都是定义在time.h中的,所以都适用
请教Linux下的sleep函数
函数名: sleep、usleep
功 能: 执行挂起一段时间
头文件: #include
区 别: 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
#include
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)。
C语言中的sleep() 函数
关于sleep()函数在windows系统和linux系统下是两个不同的函数,差别较大,但功能是相同的,都是将进程挂起一段时间。
windows系统下函数名为Sleep(),其函数原型为:
#include
函数使用头文件
void Sleep(DWORD dwMilliseconds); 参数为毫秒
参考代码:#include
//win头文件#include
int main(){ int i; printf("你"); fflush(stdout); //强制刷新缓存,输出显示 for( i=0;i<10;i++ ) { Sleep(1000); /* windows 使用Sleep,参数为毫秒 */ printf("."); fflush(stdout);//强制刷新缓存,输出显示 } printf("好\n"); /*输出“你”和“好”之间会间隔10秒,并输出10个点*/ return 0;}linux系统下函数名为sleep(),其函数原型为:
#include
函数使用头文件
unsigned int sleep(unsigned int seconds);参数为毫秒 (如果需要更精确可以用usleep,单位为微秒)
修改上面的代码,以适应linux系统#include
//1、linux 头文件#include
int main(){ int i; printf("你"); fflush(stdout);//强制刷新缓存,输出显示 for( i=0;i<10;i++ ) { sleep(1); /*2、linux 使用sleep,参数为秒*/ printf("."); fflush(stdout);//强制刷新缓存,输出显示 } printf("好\n"); /*输出“你”和“好”之间会间隔10秒,并输出10个点*/ return 0;}
是小写的sleep,说明如下
NAME
sleep - Sleep for the specified number of seconds
SYNOPSIS
#include
unsigned int sleep(unsigned int seconds);
DESCRIPTION
sleep() makes the calling process sleep until seconds seconds have elapsed or a signal arrives which is not ignored.
RETURN VALUE
Zero if the requested time has elapsed, or the number of seconds left to sleep.
CONFORMING TO
POSIX.1-2001.
windows下需要"#include
"
linux/unix下需要"#include
"
#include
Sleep(1000); -- 睡 1 秒
Sleep()需要#include
使用要带上头文件:
#include
Sleep函数:功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 注意: 1.在VC中使用带上头文件#include
,在Linux下,gcc编译器中,使用的头文件因gcc版本的不同而不同#include
2.在VC中,Sleep中的第一个英文字符为大写的"S" ,在linux下不要大写,在标准C中是sleep, 不要大写,简单的说VC用Sleep, 别的一律使用sleep。3.在VC中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000); 在Linux下,sleep()里面的单位是秒,而不是毫秒。示例:
#include
#include
int main() { int a=100; Sleep(3000); printf("%d",a);
return 0;} usleep函数:功能: usleep功能把进程挂起一段时间, 单位是微秒us(百万分之一秒)。语法: void usleep(int micro_seconds);返回值: 无注意:这个函数不能工作在 Windows 操作系统中。usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。且此函数已被废除,可使用nanosleep。 如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间。delay函数: 功 能: 将程序的执行暂停一段时间,单位是毫秒ms(千分之一秒) 用 法: void delay(unsigned milliseconds); 示例:
#include
int main(void) { sound(440); delay(500); nosound(); return 0; }delay()是循环等待,该进程还在运行,占用处理器。sleep()不同,它会被挂起,把处理器让给其他的进程。
qt sleep函数哪个头文件
QT的sleep是一个static的 调用时要QThread::sleep(unsigned long secs )
也可以调windows API里的Sleep函数 注意 第一个要大写
#include
Sleep(1)
#include
报的错贴出来看看,是不是其他地方出什么问题了
#include
//.h
protected:
virtual void run();
int exec();
static void setTerminationEnabled(bool enabled = true);
static void sleep(unsigned long);
static void msleep(unsigned long);
static void usleep(unsigned long);
//.cpp
void QThread::sleep(unsigned long secs)
{
::Sleep(secs * 1000);
}
你是不是想调用系统的sleep?包含
QT虽然没有提供Sleep(),但是QT提供了系统调用,然而每个系统中都有Sleep()函数,所以可以简单的包含系统头文件即可。
如果是windows平台则:
#include
就可以用Sleep()了:
Sleep(10000);
(注意是大写S)linux下头文件是:
#include
sleep函数使用arm-linux-gcc编译时,头文件用什么啊?
Linux下的sleep函数 要用的话得包涵什么头文件啊? #include
c++的sleep函数在哪个库里面
C++标准库没有这个函数。在Window下有类似函数Sleep。Linux下有sleep。
linux系统 下 如何让C语言sleep()函数等待时间小于1秒
#include
// 头文件
int usleep(useconds_t usec); // 函数原型
usec -- 毫秒。整数。最大允许值:小于 1000000
返回 0 -- 表示调用执行成功,1 -- 失败。
引入 #include
/头文件
调用usleep(useconds_t usec)函数
usec为毫秒级单位!
也可以设置sleep(0.01)
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);