有没有办法打印调用我的C二进制文件的进程的PID

Awa*_*ias 2 c unix bash gcc solaris

我需要知道哪个perl脚本正在使用我的C CLI.

使用bash我可以使用以下命令轻松打印"who"运行脚本:

CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo $CALLER
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在使用它作为包装,但它并不理想.有没有办法从C中获取这些信息?

(我正在运行UNIX w/gcc)

pb2*_*b2q 6

使用getppid.看man 2 getppid,这是 linux手册页.

getppid()返回调用进程父进程的进程ID

两个 p因为这是"父进程".


md5*_*md5 5

您应该查看getpid和的getppid功能<unistd.h>

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

int
main(void)
{
    printf("%ld%ld", (long)getpid(), (long)getppid());
    return 0;
}
Run Code Online (Sandbox Code Playgroud)