当前位置: 技术问答>linux和unix
输出重定向的问题:为什么输出到文件的东西不对?
来源: 互联网 发布时间:2014-12-27
本文导语: 运行程序,把输出重定向到文件中,但是好像好多东西都被重复输出了,和输出在stdout不一样,找不到规律。这是为什么? | 试一试这个 #include #include main() { int i; printf("tpidtppidtpgidn"); ...
运行程序,把输出重定向到文件中,但是好像好多东西都被重复输出了,和输出在stdout不一样,找不到规律。这是为什么?
|
试一试这个
#include
#include
main()
{
int i;
printf("tpidtppidtpgidn");
printf("t%d,t%d,t%dn",
getpid(),getppid(),getpgid(0));
for(i=1;i0)
{
printf("i=%d:t%d,t%d,t%dn",
i,getpid(),getppid(),getpgid(0));
exit(0);
}
}
}
#include
#include
main()
{
int i;
printf("tpidtppidtpgidn");
printf("t%d,t%d,t%dn",
getpid(),getppid(),getpgid(0));
for(i=1;i0)
{
printf("i=%d:t%d,t%d,t%dn",
i,getpid(),getppid(),getpgid(0));
exit(0);
}
}
}
|
这个问题我遇到过,没猜错的话,应该是前面一句被重复打印了。主要是由于缓冲的问题,这个问题可以在一本叫做“LINUX上的C语言编程”的书上查到。你可以去找这本书看一下。
|
建议你设定断点测试,这样更加容易发现问题解决问题。