如题,
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之前的文件写操作都是顺序写的,根本不存在覆盖的说法。
|
第一个问题:
>表示输出结果到目标文件&