You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何稳定获取程序PID?或如何从C脚本向终端发送终止快捷键?

自行解答:高效获取程序PID的方法

我在此自行解答问题,因为其他相关讨论帖针对该问题给出的方案普遍效率低下。

获取程序PID最合理的方式是使用getpid()。但不知为何,getpid()返回的PID总是比实际分配给程序的ID小2。我相信更熟悉Linux内核的用户会在评论区解释其中缘由,所以PID加2的原因或许能在评论中找到。

无论如何,以下是一个逆向工程得到的C代码(源自MTU),可用于获取程序的PID:

#include  <stdio.h>
#include  <string.h>
#include  <sys/types.h>

void  main(void)
{
    pid_t pid;
    char fetch[50];
    pid = getpid();
    int pid2=pid+2;
    sprintf(fetch, "echo hello world! my PID is %d", pid2);
    system(fetch);
}

内容的提问来源于stack exchange,提问作者Jacob73

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:30:46