在我的项目中,我们使用 ACE(自适应通信环境)中间件来编写可在 Windows 和 Linux 上运行的独立于操作系统的代码。
要求是从进程名称中获取进程 ID。
由于 ACE 不支持这一点,因此我们必须使用特定于平台的宏来分离 Windows 和 Linux 的代码。
对于 Windows,我必须使用 - EnumProcesses 或 CreateToolhelp32Snapshot
如何使用 API 在 Linux 上执行相同操作?
编程语言是C++
如果我正确理解你的问题,你可以从 C++ 中做到这一点
char buf[512];
FILE *cmd_pipe = popen("pidof -s process_name", "r");
fgets(buf, 512, cmd_pipe);
pid_t pid = strtoul(buf, NULL, 10);
pclose( cmd_pipe );
这是另一个例子:使用C++在Linux中按名称获取进程ID http://proswdev.blogspot.de/2012/02/get-process-id-by-name-in-linux-using-c.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)