谁能帮我解释一下,,下面的程序:
#include "stdio.h"
#include "stdlib.h"
#include "time.h"
void sleep(int nbr_seconds);
int main(void)
{
int ctr;
int wait=13;
printf("delay for %d seconds \n",wait);
printf(">");
for(ctr=1;ctr<=wait;ctr++)
{
printf(".");
fflush(stdout);//解释一下:
sleep((int)1);
}
printf("done\n");
return 0;
}
void sleep(int nbr_seconds)
{
clock_t goal;
goal=(nbr_seconds * CLOCKS_PER_SEC)+clock();//解释一下,,
while(goal>clock())
{
;
}
}
我尤其不明白 CLOCKS_PER_SEC 是什么东西,,还有为什么要+clock()....clock()的函数是怎么写的?具体完成什么功能
谢谢各位,,我是新手,,照顾一下啊;
----------------解决方案--------------------------------------------------------
有没有高手,请教一下啊
----------------解决方案--------------------------------------------------------
在某些实时性比较强的场合,需要数据及时的达到目的地,这种时候缓存反而会造成数据传送延迟。fflush()就是强制把数据从数据缓冲区发出去,而不是等到数据达到一定的量之后才发送。
网上随便查查就能查到
----------------解决方案--------------------------------------------------------
谢谢你
----------------解决方案--------------------------------------------------------
我的头文件里便没有定义CLOCKS_PER_SEC,但是它指的是计算机的时钟频率(CLK_TCK 18.2)因此可以用18.2代替之。
----------------解决方案--------------------------------------------------------
函数名: fflush
功 能: 清除一个流
用 法: int fflush(FILE *stream);
程序例:
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <io.h>
void flush(FILE *stream);
int main(void)
{
FILE *stream;
char msg[] = "This is a test";
/* create a file */
stream = fopen("DUMMY.FIL", "w");
/* write some data to the file */
fwrite(msg, strlen(msg), 1, stream);
clrscr();
printf("Press any key to flush\
DUMMY.FIL:");
getch();
/* flush the data to DUMMY.FIL without\
closing it */
flush(stream);
printf("\nFile was flushed, Press any key\
to quit:");
getch();
return 0;
}
void flush(FILE *stream)
{
int duphandle;
/* flush the stream's internal buffer */
fflush(stream);
/* make a duplicate file handle */
duphandle = dup(fileno(stream));
/* close the duplicate handle to flush\
the DOS buffer */
close(duphandle);
}
----------------解决方案--------------------------------------------------------