【发布时间】:2012-09-05 15:58:25
【问题描述】:
我需要知道哪个 perl 脚本正在使用我的 C CLI。
使用 bash,我可以轻松地打印“谁”运行了一个脚本:
CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo $CALLER
到目前为止,我一直在使用它作为包装器,但这并不理想。有没有办法从 C 中获取这些信息?
(我正在运行带有 gcc 的 UNIX)
【问题讨论】:
我需要知道哪个 perl 脚本正在使用我的 C CLI。
使用 bash,我可以轻松地打印“谁”运行了一个脚本:
CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo $CALLER
到目前为止,我一直在使用它作为包装器,但这并不理想。有没有办法从 C 中获取这些信息?
(我正在运行带有 gcc 的 UNIX)
【问题讨论】:
您应该查看来自<unistd.h> 的getpid 和getppid 函数。
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
int
main(void)
{
printf("%ld%ld", (long)getpid(), (long)getppid());
return 0;
}
【讨论】:
【讨论】:
使用getppid() 获取进程父进程的进程ID。
【讨论】: