如何以编程方式从linux中的进程名称获取进程id

时间:2015-05-20 14:12:13

标签: linux ace

在我的项目中,我们使用ACE(自适应通信环境)中间件编写可在Windows和Linux上运行的独立于操作系统的代码。

要求是从进程名称获取进程ID。 由于ACE不支持此功能,因此我们必须使用特定于平台的宏来分隔Windows和Linux的代码。

对于Windows,我必须使用 - EnumProcesses或CreateToolhelp32Snapshot

如何在linux上使用API​​做同样的事情?

编程语言是C ++

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,你可以从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 );  

这是另一个例子:Get process id by name in Linux using C++