C 请参阅后台进程的输出

C 请参阅后台进程的输出,c,linux,process,background,stdout,C,Linux,Process,Background,Stdout,我正在测试用C编写的Debian路由算法。在算法源文件中,我将标志设置为1,以便在标准输出上打印路由决定。问题是:运行此文件的进程是后台进程。我怎样才能看到stdout 您将程序的输出重定向到一个文件中,然后可以查看该文件中的输出。假设您要侦听的进程已经启动并正在运行,并且您不想停止并重新运行它,如Laszlo所建议的重定向:您可以使用strace来侦听它- 基本上,它可以跟踪所有系统调用活动,但这包括打印 添加-p,将其附加到所需流程。添加-e write以过滤大部分内容并仅获取输出写入 例如

我正在测试用C编写的Debian路由算法。在算法源文件中,我将标志设置为1,以便在标准输出上打印路由决定。问题是:运行此文件的进程是后台进程。我怎样才能看到stdout

您将程序的输出重定向到一个文件中,然后可以查看该文件中的输出。

假设您要侦听的进程已经启动并正在运行,并且您不想停止并重新运行它,如Laszlo所建议的重定向:您可以使用
strace
来侦听它-

基本上,它可以跟踪所有系统调用活动,但这包括打印

添加
-p
,将其附加到所需流程。添加
-e write
以过滤大部分内容并仅获取输出写入

例如:

> grep somestring . -R >& /dev/null &
  [2] 8093
> strace -p 8093 -e write
...here goes the output...

您可以使用下面的行检查您的流程正在执行的操作

$ strace -p $!

$提供最后一个后台进程的进程ID。请记住,在与后台进程相同的控制台中运行上述行。

如果原始控制台断开连接,我必须从另一个控制台登录,该怎么办?