问下标准c里的延时函数是什么?是sleep吗?在那个头文件里,谢谢

jourmen IBM 架构师  2003-09-12 10:21:58
我急需:)
...全文
1184 点赞 收藏 19
写回复
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ortega111 2004-03-15
gz
回复
rocketliu8899 2003-09-13

delay()
sleep()
都可以的
回复
wcq8303 2003-09-13
哦,那也应该有帮助吧,我没有编过UNIX下C程序.
很抱歉,不能帮你了.
回复
l1ul1u 2003-09-12
sleep()
在dos.h中
回复
wgzh 2003-09-12
我没用过Unix,不过做为一个实时操作系统,他应该有他自己的时间延迟函数的,找一下看是否有OSTimeDly()类似的函数。
其实用计数延时效果不好的缘故,可能是你对系统定义的时钟节拍数没弄清楚的缘故了。
回复
jourmen 2003-09-12
delay在dos.h里吧,不是标准c库啊:)


回复
寒舍人 2003-09-12
delay
回复
jourmen 2003-09-12
在unix下,不是win下
我的程序
谢谢!
回复
ghostmirror 2003-09-12
其实实现方法特别多。。。
先解决一个问题,找头文件的问题,你用msdn,用索引,输入Sleep,回车,然后你可以看到所有的关于Sleep的内容,呵呵,头文件在最下面就说明了Header: Declared in winbase.h.
第二,你如果运行Sleep,调用Sleep的这个进程在Sleep的期间将不处理任何消息,你可以用
GetTickCount(或者其他函数)和DispatchMessage重新写一个延时函数
回复
jourmen 2003-09-12
不是在win下,是纯c下,我需要啊
回复
B828 2003-09-12
在Windows 下面就用 sleep()这个API就可以了
回复
jourmen 2003-09-12
to wgzh(火鸟) :
我也想用计数延时的,但是效果不好,听说好生sleep可以的,但是就是没有找到
回复
wgzh 2003-09-12
回复人: lsAf() ( ) 信誉:100 2003-09-12 10:33:00 得分:0
有这样的延迟函数,在“dos。h”库中的delay()函数
--------------------------------------------------------------

dos.h在标准C中有吗,是C89标准还是C99? 你可以去查查标准C函数库看看。
回复
lsAf 2003-09-12
有这样的延迟函数,在“dos。h”库中的delay()函数
回复
wgzh 2003-09-12
标准C函数里好象是没有延时函数的,不过你可以自己写一个撒,就是一个空循环而已:
例如:for(int i = 0; i < 5000; i++);
回复
Zeroins 2003-09-12
呵呵
UNIX 下有 TC 吗
回复
wcq8303 2003-09-12
这些问题,你没有必要来CSDN上问,在TC下,你可以将光标移到 Sleep下,按下CTRL+F1 查看帮助,计算机会告诉你的.
回复
ggg82 2003-09-12
标准c下无延时函数,不过你的编译系统会为你提供,如:winapi中有Sleep,tc下有delay.
至于gc,我不知道。
回复
Zeroins 2003-09-12
反正 ISO/IEC 9899:1999 标准中没有 dos.h。顾名思义,UNIX 下不会有的

偶自己写了一个 _delay ()

#include <stdio.h>
#include <time.h>

void _delay (long n)
{
clock_t start;

start = clock ();
while ((clock () - start ) < n);
}

main ()
{
printf ("Begin Delay\n");
_delay (2000);
printf ("End\n");
}

偶对 UNIX 不了解,
不过以上程序在 Dev-C++ 的 gcc 下编译通过
延迟2秒

ISO/IEC 9899:1999 标准中有一个宏: CLOCKS_PER_SEC
clock () / CLOCKS_PER_SEC 得到的是以秒为单位的结果
<1> tc2 中的 time.h:没有 CLOCKS_PER_SEC,有一个 CLK_TCK
#define CLK_TCK 18.2
<2> gcc 中的 time.h:#define CLOCKS_PER_SEC ((clock_t)1000)
#define CLK_TCK CLOCKS_PER_SEC
偶没在 ISO/IEC 9899:1999 标准中找到 CLOCKS_PER_SEC 宏是不是
一定是1000
所以偶不敢保证上面程序在所有编译器下都延迟2秒
不行的话你就自己改,反正原理就是这样的
回复
发动态
发帖子
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
社区公告
暂无公告