linux文件重定向问题

最近做操作系统实验发现输出重定向后文件为空的情况,处于死循环内的printf无法实时重定向到文件中。

但在满足某些条件的情况下文件内会有输出,所以实验探索文件重定向的机制

int main(){
    int i = 0, j = 10, sum = 0;
    while(i < 1000){
        printf("this*test\n");
        i++;
    }
    printf("**\n");
    while(1){}
    return 0;
}

实验通过修改while条件的范围发现,输出到文件的字符数总是4096的倍数。推测输出重定向缓冲区大小为4096字节,只有当缓冲区存满程序结束时会将缓冲区内容输出并刷新。

该结论还有待以后查看linux源码验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值