2010-4-7

1】I/O操作

          就C程序而言,所有的I/O操作只是简单的地从程序移进或移出字节的事情。因此,毫不惊奇的是,这种字节流便被称为流

    (stream);标准IO提供三种类型的缓存1>全缓存2>行缓存3>不带缓存。如:我们的终端就是典型的行缓存。绝大多数流是全缓存的,这意味着“读取”和“写入”实际上是从一块被称为缓冲区的内存区域来回复制数据。

          如:

              int main(void)

              {

                    fprintf(stdout,"to stdout ");

                    fprintf(stderr,"to stderr ");

                    return 0;

              }

              结果:to stderr to stdout

              原因:stdout流对应终端,终端默认的是行缓存;stderr 标准出错是不带缓存的。

   

              int main(void)

              {

                    fprintf(stdout,"to stdout/n");

                    fprintf(stderr,"to stderr ");

                    return 0;

              }           

              结果:to stdout

                       to stderr

              原因:多了一个换行符,刷新了数据流。

 

              int main(void)

              {

                    fprintf(stdout,"to stdout ");

                    fflush(stdout);         //刷新数据流

                    fprintf(stderr,"to stderr  ");

                    return 0;

              }  

             结果:to stdout

                      to stderr

当然我们还可以通过setbuf()和setvbuf()更改缓存类型。

                     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值