gpt4 book ai didi

c++ - Linux通过带有execl的脚本获取程序启动的pid

转载 作者:太空宇宙 更新时间:2023-11-04 12:11:34 24 4
gpt4 key购买 nike

我有一段代码可以启动另一个程序作为子进程。

pid = execlp("path-to/program", "path-to/program", nullptr);

这会返回我启动的进程的 pid,以便我可以访问它。现在我们需要通过 shell 脚本启动一个进程。像这样:

#!/bin/bash
export LD_LIBRARY_PATH=/path-to/program
/path-to/program
#or:
wine /path-to/program.exe

C++:

pid = execlp("/path-to/shelscript.sh", "/path-to/shellscript.sh", nullptr);

当我现在调用 execl 时,它将返回 shell 的 pid,而不是已启动进程的 pid。我可以检查程序的路径是否包含“.sh”并将 pid 递增 1,但这并不总是有效。有没有更清洁、更可靠的方法来做到这一点?

最佳答案

如果您在 shell 脚本中启动一个进程,变量 $! 包含刚刚创建的进程的 pid。你可以例如使用 echo 输出它并使用 popen() 启动 shell 脚本并从那里读取 pid。

关于c++ - Linux通过带有execl的脚本获取程序启动的pid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48730606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com