C CLI を使用している perl スクリプトを知る必要があります。
bash を使用すると、「誰が」スクリプトを実行したかを簡単に出力できます。
CALLER=$(ps ax | grep "^ *$PPID" | awk '{print $NF}')
echo $CALLER
今までこれをラッパーとして使用してきましたが、理想的ではありません。C 内からこの情報を取得する方法はありますか?
(私は UNIX と gcc を実行しています)
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
してください。Linux のマニュアル ページは次のとおりです。
getppid() は、呼び出しプロセスの親のプロセス ID を返します。
これは「親プロセス」用であるため、2 つの p です。
getppid()
プロセスの親のプロセスIDを取得するために使用します。