c语言sleep用法是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言sleep用法是啥?相关的知识,希望对你有一定的参考价值。

我以前Sleep(1000)等于一秒,现在sleep(1)等于一秒,,,什么情况

C语言标准库中没有sleep这个函数,它实际上是一个系统API函数。

SLEEP是一种函数,作用是延时,程序暂停若干时间,在执行时要抛出一个中断异常,必须对其进行捕获并处理才可以使用这个函数。

Sleep()没有返回值,作用是暂停程序,单位是毫秒。

比如:Sleep(10)的意思是暂停10毫秒.

参考技术A 1.函数名:
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;

2.#include<windows.h>
#include
&l护笭篙蝗蕻豪戈通恭坤t;stdio.h>
void
main()

printf("begin");
sleep(1000);
printf("end");

函数“sleep()”的正确#include 是啥?

【中文标题】函数“sleep()”的正确#include 是啥?【英文标题】:What is the proper #include for the function 'sleep()'?函数“sleep()”的正确#include 是什么? 【发布时间】:2013-01-26 21:43:56 【问题描述】:

我正在使用 Big Nerd Ranch 的《Objective-C Programming》一书,它首先让我们在前几章中用 C 语言编写。在我创建的一个程序中,我使用了睡眠功能。在书中它告诉我将#include &lt;stdlib.h&gt; 放在#include &lt;stdio.h&gt; 部分下。这应该消除“函数'sleep'的隐式声明在C99中无效”的警告。但是由于某种原因,在我输入#include &lt;stdlib.h&gt; 之后,警告并没有消失。这个问题并没有阻止程序正常运行,但我只是好奇我需要使用哪个#include

【问题讨论】:

如果您使用任何市长 IDE(NetBeans、IntelliJ IDEA、Eclipse)。键入任何函数的名称,然后 Alt+Enter 它将自动导入具有它的库。 @T04435:在 C 库中未导入。编译器确实需要它们。链接器可能链接它们,但只有在编译器完成之后。在 C 中,编译器需要一个函数的原型才能使用函数。原型通常出现在 头文件 (.h) 中。 【参考方案1】:

睡眠man page 表示它在&lt;unistd.h&gt; 中声明。

简介:

#include <unistd.h>

unsigned int sleep(unsigned int seconds);

【讨论】:

我没有!谢谢!这让我有点困扰,因为这本书说 会摆脱警告......很奇怪哈哈@simonc 使用 sleep() 函数还是 time() 来创建延迟会更好吗? @LandonZeKepitelOfGreytBritn:至少 C 函数 time() 确实不会根据传递的参数创建一个延迟,至少不是一个明确定义的延迟。【参考方案2】:

sleep 是一个非标准函数。

在 UNIX 上,您应包括 &lt;unistd.h&gt;。 在 MS-Windows 上,Sleep 来自 &lt;windows.h&gt;

在任何情况下,检查文档。

【讨论】:

w.r.t. C标准。 w.r.t. POSIX,它是 在 UNIX 上,Sleep 实际上是 usleep,它需要微秒(毫秒*1000)而不是秒。 不要使用 usleep:"4.3BSD,POSIX.1-2001。POSIX.1-2001 声明此函数已过时;改用 nanosleep(2)。POSIX.1-2008 删除usleep() 的规范。” linux.die.net/man/3/usleep Windows 的 Sleep() 和 POSIX 的 sleep()相同。他们采取不同的论点。前者需要几毫秒,后者需要几秒钟!【参考方案3】:

sleep(3) 位于 unistd.h,而不是 stdlib.h。在你的命令行上输入man 3 sleep 来确认你的机器,但我假设你是在Mac 上,因为你正在学习Objective-C,而在Mac 上,你需要unistd.h

【讨论】:

【参考方案4】:

函数“sleep()”的正确#include 是什么?

sleep() 不是标准 C,而是 POSIX,所以它应该是:

#include <unistd.h>

【讨论】:

【参考方案5】:

这是我用于跨平台代码的:

#ifdef _WIN32
#include <Windows.h>
#else
#include <unistd.h>
#endif

int main()

  pollingDelay = 100
  //do stuff

  //sleep:
  #ifdef _WIN32
  Sleep(pollingDelay);
  #else
  usleep(pollingDelay*1000);  /* sleep for 100 milliSeconds */
  #endif

  //do stuff again
  return 0;

【讨论】:

usleep() 在 POSIX.1-2008 中被移除。使用 nanosleep()。 linux.die.net/man/3/usleep

以上是关于c语言sleep用法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

c语言sleep的用法

如何让C语言sleep()函数等待时间小于1秒

sleep()函数怎么具体在c语言中怎么用?

c语言define用法是啥?

c语言define用法是啥

C语言fscanf的用法是啥