0
我想获取进程的控制台日志,这是由父进程(program is coded in Qt
)产生的。奇怪的是,stdout和stderror是管道。我应该如何查看控制台日志?Linux控制台日志进程与STDOUT作为管道
过程A(14543是A
的PID) - >启动进程B(14552是B
的PID)
我可以看到进程A的控制台日志
[email protected]:/$ ls -l /proc/14552/fd/
total 0
lr-x------ 1 tux tux 64 Dec 16 11:17 0 -> pipe:[8968050]
l-wx------ 1 tux tux 64 Dec 16 11:17 1 -> pipe:[8968051]
l-wx------ 1 tux tux 64 Dec 16 11:15 2 -> pipe:[8968052]
[email protected]:/$ ls -l/proc/14543/fd
total 0
lrwx------ 1 tux tux 64 Dec 16 11:25 0 -> /dev/pts/21
lrwx------ 1 tux tux 64 Dec 16 11:25 1 -> /dev/pts/21
lrwx------ 1 tux tux 64 Dec 16 11:15 2 -> /dev/pts/21
问题不在于QProcess中,对于PID 14543 FD 1是/ dev/pts/21。问题出在第二个QProcess(PID 14552)FD 1是 - > pipe:[8968051]。我如何看到管道的输出? – Kamath
管道是标准输出,它们已经由Qt处理了。你只需要调用QProcess :: readAllStandardOutput()或其他方法来读取标准输出 –