1
mengzhuo 2016-05-12 23:46:57 +08:00 via iPhone
进程之间没有联系啊
你以为子进程会把输出都自动发到父进程里么…… |
2
EchoUtopia OP @mengzhuo 子进程会继承父进程的文件描述符啊,所以标准输入输出都继承下来了,我试验的时候把 os.dup2()重定向那部分去掉, print 信息都会输出到终端
|
3
WKPlus 2016-05-13 21:13:52 +08:00
怀疑是 buffer 的原因。
stdout 是屏幕输出的时候,是 line buffer 的;重定向到文件的话,是 fully buffer 的。 stderr 重定向到文件的话,也不是 fully buffer 的,你可以试试 stderr 的输出能不能看到,或者 stdout 多写点内容估计就能看到了 |
4
EchoUtopia OP @WKPlus 我开始也感觉是 buffer ,但是 python 的 open 第三个参数设为 0 就去掉 buffer 了,但是还是不行
|
5
WKPlus 2016-05-16 21:51:13 +08:00
@EchoUtopia 我觉得你可以做两个测试: 1. 试试看 stderr 的输出能不能打印到文件 2. stdout 多打印点内容看看
|