Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15497129
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类: LINUX

2007-11-25 14:17:36

printf("C")采用sleep(1)定时输出显示的三种方法

文章来源:http://gliethttp.cublog.cn

//.方法1--使用setbuf,清除printf的缓冲,使用write直接将数据发送到制定文件中
//hello.c内容
#include <stdio.h>
int main(void)
{
//取消stdout文件的缓冲功能,发送到该文件的所有数据直接传递给该文件,
//printf()就是专门向stdout文件发送数据的函数,所以printf("C"),将不经缓冲的直接传递给stdout,
//进而也就直接显示putty终端上(gliethttp_20071125)
    setbuf(stdout, NULL);
    for(;;)
    {
        sleep(1);
        printf("C");
    }
    return 0;
}
//.方法2--使用fflush,将缓冲区中数据调用write立即刷新到文件中
//hello.c内容
#include <stdio.h>
int main(void)
{
    for(;;)
    {
        sleep(1);
        printf("C");
//刷新stdout文件的缓冲区,如果有数据,那么回写,进而将缓存在stdout缓冲区内的"C"字符显示到
//putty终端上(gliethttp_20071125)
        fflush(stdout);
    }
    return 0;
}

//.方法3--使用标准错误输出stderr,直接将数据送到屏幕
//hello.c内容
#include <stdio.h>
int main(void)
{
    for(;;)
    {
       sleep(1);
//以上两种方法将数据送到磁盘文件,这里使用stderr-标准错误输出设备-将数据直接送到屏幕
//这是第3种方法,感谢网友xiyou
       fprintf(stderr,"C");
    }
    return 0;
}


//printf定时输出执行效果:
[root@localhost gliethttp]# ./hello
CCCCCCCCCCCCCCCCCCCCCCCCCC

阅读(1997) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~