在我的项目中,我们使用ACE(自适应通信环境)中间件编写可在Windows和Linux上运行的独立于操作系统的代码。
要求是从进程名称获取进程ID。 由于ACE不支持此功能,因此我们必须使用特定于平台的宏来分隔Windows和Linux的代码。
对于Windows,我必须使用 - EnumProcesses或CreateToolhelp32Snapshot
如何在linux上使用API做同样的事情?
编程语言是C ++
答案 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 );