linux 重定向 file exsits 自动覆盖,shell中“输出重定向”的“覆盖”问题

如题,1》有如下shell代码:for((i=0;ioutputdone其中,重定向符“>”,会使得10次输出的结果,最后只剩9;如果,用“>>”可以累加所有10次输出。2》但,我发现,有个程序运行时的命令行如下:./prag>std.log2>err.log其中的重定向符“>”,会保存该次运行的所有输出。即,本次运行时的,后面的输出没有覆盖出现在前面的输...
摘要由CSDN通过智能技术生成

如题,

1》

有如下shell代码:

for((i=0;i output

done

其中,重定向符“>”,会使得10次输出的结果,最后只剩9;

如果,用“>>”可以累加所有10次输出。

2》

但,我发现,

有个程序运行时的命令行如下:

./prag >std.log 2>err.log

其中的重定向符“>”,会保存该次运行的所有输出。

即,本次运行时的,后面的输出没有覆盖出现在前面的输出。

请问,上述1》和2》两处的“>”,为什么会有不一样的“覆盖”效果呢?

谢谢!!

|

你的意思是不是:

假如程序prog包括以下代码:

fprintf(stdout,"line xn");

fprintf(stdout,"line yn");

而line y没有覆盖line x

这个是由于>重定向符号fopen(filename,"w")打开文件,而>>是以fopen(filename,"a")打开文件。

在某一次fopen(filename,"w")时,相应的fclose之前的文件写操作都是顺序写的,根本不存在覆盖的说法。

|

第一个问题:

>表示输出结果到目标文件&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值