【问题标题】:Get PID of running firefox process [duplicate]获取正在运行的firefox进程的PID [重复]
【发布时间】:2016-04-26 20:46:02
【问题描述】:

如何在 C 中获取“firefox”进程的 PID?

在这段代码中,system只返回0,表示成功。如何获取 PID?

int x = system("pidof -s firefox");
printf("%d\n", x);

【问题讨论】:

  • 嗯,不,706989 是关于 Python,而不是 C。
  • 使用popen 而不是system
  • 我已经改写了您的问题,以便于阅读;但我只是像你这样的人,所以如果你不同意,你可以改回来。
  • system() 命令返回一个与给定命令的退出状态相关的值。你想要命令的输出
  • 所有我想要返回 pid 给调用者的函数

标签: c linux operating-system


【解决方案1】:

popen 是您想要的:它打开一个进程,并且打开进程的输出可供读取,就像使用fopen 打开的文件流一样:

FILE *f = popen("pgrep firefox", "r");
if (NULL == f)
{
    perror("popen");
}
else
{   
    char buffer[128];
    while (fgets(buffer, sizeof buffer, f))
    {
         // do something with read line
         int pid;
         sscanf(buffer, "%d", &pid)
    }
    // close the process
    pclose(f);
}

man popen

【讨论】:

    猜你喜欢
    • 2011-05-20
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2014-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多