如何稳定获取程序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
相关产品推荐
相关产品推荐

