免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3575 | 回复: 11
打印 上一主题 下一主题

c精确控制时间怎么写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-10-27 17:30 |只看该作者 |倒序浏览
例如:每隔0.7秒打印一个“*”,怎么实现呢?
为什么我的系统里没有delay.h这个头文件呢?

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
2 [报告]
发表于 2010-10-27 17:36 |只看该作者
usleep

论坛徽章:
0
3 [报告]
发表于 2010-10-27 17:39 |只看该作者
死循环,不断获取gettimeofday,或者用RDTSC汇编指令

论坛徽章:
0
4 [报告]
发表于 2010-10-27 17:59 |只看该作者

  1. #include<unistd.h>
  2. #include<stdio.h>

  3. int main()
  4. {
  5.         int i=0;
  6.         while(i!=10)
  7.         {
  8.          char c='*';
  9.          printf("%c ",c);
  10.          usleep(70000);//納秒为单位
  11.          i++;
  12.          }

  13.          return 0;
  14. }
复制代码
有点问题  : 为什么执行的时候是等待0.7s后一次就把所有的“*”显示出来了   看了下手册
DESCRIPTION
       The usleep() function suspends execution of the calling process for (at
       least) usec microseconds.  The sleep may be lengthened slightly by  any
       system  activity  or  by  the  time spent processing the call or by the
       granularity of system timers.

另外 为什么我没有找到头文件 delay.h呢?请问这个头文件在哪里?

论坛徽章:
0
5 [报告]
发表于 2010-10-27 20:45 |只看该作者
来人啊1!~~

论坛徽章:
0
6 [报告]
发表于 2010-10-27 21:05 |只看该作者
标准输出是行缓冲的,你没有换行,或者缓冲区不满的情况下,它默认不会输出。
想要输出标准输出的缓冲区内容,使用fflush(stdout);在printf()后面即可。

论坛徽章:
0
7 [报告]
发表于 2010-10-27 21:31 |只看该作者
6楼正解! 呵呵 谢谢!
  为什么我没有找到delay.h这个头文件呢?

论坛徽章:
0
8 [报告]
发表于 2010-10-27 21:53 |只看该作者
回复 7# shujunz
这个不是个标准的头文件,是某些厂商自己带或者某些程序员自己写的。

论坛徽章:
0
9 [报告]
发表于 2010-10-27 21:57 |只看该作者
  1. #include<unistd.h>
  2. #include<stdio.h>


  3. int main()
  4. {
  5.         int i=0;
  6.         while(i!=10)
  7.         {
  8.         char c='*';
  9.         printf("%c ",c);
  10.         fflush(stdout);  
  11.                 usleep(700000);//納秒为单位
  12.          i++;
  13.         }
  14.         printf("\n");

  15.          return 0;
  16. }
复制代码

论坛徽章:
0
10 [报告]
发表于 2010-10-27 22:04 |只看该作者
本帖最后由 lkk2003rty 于 2010-10-27 22:05 编辑

额。。。。看错了。。。。。编辑掉。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP