我需要知道哪个perl脚本正在使用我的C CLI。有没有办法打印调用我的C二进制进程的PID
使用bash,我可以轻松打印使用“谁”跑的脚本:
CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo $CALLER
到现在我一直在用这个作为一个包装,但它的效果并不理想。有没有办法从C中获取这些信息?
(我运行UNIX W/GCC)
我需要知道哪个perl脚本正在使用我的C CLI。有没有办法打印调用我的C二进制进程的PID
使用bash,我可以轻松打印使用“谁”跑的脚本:
CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo $CALLER
到现在我一直在用这个作为一个包装,但它的效果并不理想。有没有办法从C中获取这些信息?
(我运行UNIX W/GCC)
的父进程ID你应该看看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;
}
使用getppid
。请参阅man 2 getppid
,here's linux手册页。
getppid()返回调用进程
使用getppid()
来获取进程的父进程ID。
'getpid()'....? – JosephH