C或系统函数有很多关于延迟的,比如sleep,usleep,Sleep,delay,请问这些怎么区分?都分别属于哪个头文件的?哪些是C的函数库,哪些是系统的函数库?windows系统和unix系统?谢谢!
那delay与sleep有什么区别呢?
我看有的sleep原型引用的是#include<unistd.h>这个库,但也有的写#include <system.h>这个库,请问到底哪个是正解呢?还是说对应于不同的操作系统?
在VC中使用带上头文件
#include <windows.h>
注意:
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unisgned long);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
例:
#include <windows.h>
int main()
{
int a;
a=1000;
Sleep(a);/* VC 使用Sleep*/
return 0;
}
usleep功能:
暂停执行。 语法: void usleep(int micro_seconds); 返回值: 无 函数种类: PHP 系统功能 内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的毫秒数(微妙还是毫秒?)。 注意:这个函数不能工作在 Windows 操作系统中。参见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。
只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。
且,此函数已被废除,可使用nanosleep。
如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间
delay:
函数名: delay
功 能: 将程序的执行暂停一段时间(毫秒)
用 法: void delay(unsigned milliseconds);
程序例:
/* Emits a 440-Hz tone for 500 milliseconds */
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
(由于delay读音像地雷,在各大OI灌水区通用……)
delay()是循环等待,该进程还在运行,占用处理器。
sleep()不同,它会被挂起,把处理器让给其他的进程。
sleep()参数指定暂停时间,单位是s
delay()参数指定暂停时间,单位是ms
#include <windows.h>
注意:
在VC中Sleep中的第一个英文字符为大写的"S"
在标准C中是sleep, 不要大写.. 下面使用大写的来说明,, 具体用什么看你用什么编译器. 简单的说VC用Sleep, 别的一律使用sleep.
Sleep函数的一般形式:
Sleep(unisgned long);
其中,Sleep()里面的单位,是以毫秒为单位,所以如果想让函数滞留1秒的话,应该是Sleep(1000);
例:
#include <windows.h>
int main()
{
int a;
a=1000;
Sleep(a);/* VC 使用Sleep*/
return 0;
}
usleep功能:
暂停执行。 语法: void usleep(int micro_seconds); 返回值: 无 函数种类: PHP 系统功能 内容说明:本函数可暂时使程序停止执行。参数 micro_seconds 为要暂停的毫秒数(微妙还是毫秒?)。 注意:这个函数不能工作在 Windows 操作系统中。参见:usleep() 与sleep()类似,用于延迟挂起进程。进程被挂起放到reday queue。
只是一般情况下,延迟时间数量级是秒的时候,尽可能使用sleep()函数。
且,此函数已被废除,可使用nanosleep。
如果延迟时间为几十毫秒,或者更小,尽可能使用usleep()函数。这样才能最佳的利用CPU时间
delay:
函数名: delay
功 能: 将程序的执行暂停一段时间(毫秒)
用 法: void delay(unsigned milliseconds);
程序例:
/* Emits a 440-Hz tone for 500 milliseconds */
#include<dos.h>
int main(void)
{
sound(440);
delay(500);
nosound();
return 0;
}
(由于delay读音像地雷,在各大OI灌水区通用……)
delay()是循环等待,该进程还在运行,占用处理器。
sleep()不同,它会被挂起,把处理器让给其他的进程。
sleep()参数指定暂停时间,单位是s
delay()参数指定暂停时间,单位是ms
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-01-03
1、函数: Sleep
功 能: 执行挂起一段时间
用 法: void Sleep(DWORD dwMilliseconds);
在VC中使用带上头文件
#include <windows.h>
( Sleep函数存放头文件:WinBase.h)
在gcc编译器中,使用的头文件因gcc版本的不同而不同
#include <unistd.h>
Sleep()单位为毫秒,sleep()单位为秒(如果需要更精确可以用usleep单位为微秒)
返回值
若进程/线程挂起到参数所指定的时间则返回0,若有信号中断则返回剩余秒数。
2、示例
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*输出“你”和“好”之间会间隔一千毫秒,即间隔一秒,Sleep()的单位为毫秒*/
return 0;
}
功 能: 执行挂起一段时间
用 法: void Sleep(DWORD dwMilliseconds);
在VC中使用带上头文件
#include <windows.h>
( Sleep函数存放头文件:WinBase.h)
在gcc编译器中,使用的头文件因gcc版本的不同而不同
#include <unistd.h>
Sleep()单位为毫秒,sleep()单位为秒(如果需要更精确可以用usleep单位为微秒)
返回值
若进程/线程挂起到参数所指定的时间则返回0,若有信号中断则返回剩余秒数。
2、示例
#include <windows.h>
#include<stdio.h>
int main()
{
int a;
a=1000;
printf("你");
Sleep(a);/* VC 使用Sleep*/
printf("好"); /*输出“你”和“好”之间会间隔一千毫秒,即间隔一秒,Sleep()的单位为毫秒*/
return 0;
}