获取C中Linux中已经运行的进程的标准输出

alekpr:

现在,我必须在C中启动一个外部进程。我目前正在使用posix_spawn创建该进程。我必须监视该过程是否已终止。我还需要链接到流程之外的标准。我看过使用popen,但是,它不提供获取pid的“简便”方法。我正在慢慢发疯,因为要获得Linux中正在运行的进程的标准可能并不那么困难。

另外,在进一步说明上,我需要帮助来理解file_actions参数的含义。关于此主题的posix_spawn的man(3)说:

如果file_actions不为NULL,则在子进程中打开的文件描述符应是在调用进程中打开的文件描述符,该文件描述符是由file_actions指向的派生文件操作对象以及派生文件操作之后剩余的每个打开的文件描述符的FD_CLOEXEC标志修改的已处理。

如果这不是一个惯用句的定义,我不知道这是什么。

亚历山大·C:

由于您拥有PID(从返回posix_spawn),并且您正在运行Linux,因此您可以在找到该进程的标准输出/proc/<pid>/fd/1只是open(或fopen)要读取的文件。

标准方法是使用fork使用pipedup2获取文件描述符,以读取孩子的输出,如本问题所述

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查看Linux中已经运行的进程的输出

Java从单独的进程中获取标准输出和标准错误

在python中检查正在运行的子进程的标准输出

Linux:获取已经运行的进程的umask?

如何在仍在运行的标准输入中写入进程标准输入并从其标准输出中读取?

C#获取运行的标准输入/输出/错误,而非子进程

在进程中安全运行代码,在多线程中重定向标准输出

从运行中的进程重定向输出(Visual C#)

Python,Tkinter,子进程-获取标准输出并将其插入到文本中

如何在终止前从生成的子进程中获取实时标准输出数据?

如何重定向已经运行的进程的输出

有没有办法从已经运行的程序中获取输出?

bash telnet 从期望中获取标准输出

如何从变量中的命令获取标准输出

从线程中的子进程标准输出读取时的随机行为

如何从bash中的子进程实时读取标准输出

如何检查进程是否已经按名称在JXA中运行

从已经运行的进程中打开Chrome扩展程序的背景页面

从 powershell 输出中获取特定进程 ID

如何在Scala中运行外部进程并获取退出代码和输出?

无法从 Node 子进程生成的无限运行的 Ruby 应用程序中获取输出

在Linux中同时输出已停止和正在运行的进程?

在FreeBSD / macOS下获取正在运行的进程的标准输入/输出

如何从Linux中的/ proc / [pid] / stat获取进程中运行的线程数?

如何使用C ++ libboost运行进程并获取其输出?

从文件中获取标准输入来控制后台Java进程

如何检查进程是否在Linux中运行

如何让用户在 linux 中运行最多的进程?

c 语言,标准输出中的额外消息?