4

C CLI を使用している perl スクリプトを知る必要があります。

bash を使用すると、「誰が」スクリプトを実行したかを簡単に出力できます。

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

今までこれをラッパーとして使用してきましたが、理想的ではありません。C 内からこの情報を取得する方法はありますか?

(私は UNIX と gcc を実行しています)

4

3 に答える 3

7

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;
}
于 2012-09-05T16:01:21.347 に答える
6

を使用しgetppidます。を参照man 2 getppidてください。Linux のマニュアル ページは次のとおりです。

getppid() は、呼び出しプロセスの親のプロセス ID を返します。

これは「親プロセス」用であるため、2 つの p です。

于 2012-09-05T16:00:36.207 に答える
2

getppid()プロセスの親のプロセスIDを取得するために使用します。

于 2012-09-05T16:01:48.243 に答える