sleep函数

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
温馨提示:答案为网友推荐,仅供参考
第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;
  }

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网