4

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

使用 bash,我可以使用以下命令轻松打印“谁”运行脚本:

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

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

(我正在运行带有 gcc 的 UNIX)

4

3 回答 3

7

您应该getpidgetppid.<unistd.h>

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

int
main(void)
{
    printf("%ld%ld", (long)getpid(), (long)getppid());
    return 0;
}
于 2012-09-05T16:01:21.347 回答
6

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

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

两个p,因为这是针对“父进程”的。

于 2012-09-05T16:00:36.207 回答
2

用于getppid()获取进程父进程的进程 ID。

于 2012-09-05T16:01:48.243 回答