LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 760|回复: 4

千古奇冤?! 奇怪的hello world程序错误!

[复制链接]
发表于 2006-9-26 13:04:41 | 显示全部楼层 |阅读模式
[php]
/* Filename:test.c */
#!/usr/bin/tcc -run
#include <stdio.h>
#include <unistd.h>

int main()
{
        while (1)
        {
                printf("Hello?\n");
                sleep(1);
        }
}
[/php]

这个是一个谁都知道的code。

>和>>的用法大家也都明白

  1. ls -l /usr/bin/ > dir-list.log
复制代码


可是为什么上面的程序

  1. ./test.c > test.log
  2. test.log文件产生了,但里面的确是空的呢?
复制代码

后来发现把sleep()注释掉,
test.log就有大量的Hello?行了。


这是为什么呢?

用python写的程序有同样的问题。
 楼主| 发表于 2006-9-26 13:23:44 | 显示全部楼层
知道了,系统缓冲的问题。
flush一下就好了。

《unix高级环境编程》 是 好 书 ! 好得受不了了
回复 支持 反对

使用道具 举报

发表于 2006-9-26 13:23:57 | 显示全部楼层
文件读写缓存的问题。
你的程序是直接ctrl-c中断的吧,估计把缓存内的东西也丢了。
把sleep参数改成0.01再试试。
回复 支持 反对

使用道具 举报

发表于 2006-9-26 13:24:39 | 显示全部楼层
靠,我还没写完回帖你就明白了,那还发帖问!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-26 13:30:05 | 显示全部楼层
^_^
已经搞定了,还是谢谢你!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表