Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a way to print the PID of the process that called my C binary

I need to know which perl script is using my C CLI.

Using bash I can easily print "who" ran a script using:

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

Up to now I have been using this as a wrapper but it's not ideal. Is there a way to get this information from within C?

(I'm running UNIX w/ gcc)

like image 339
Awalias Avatar asked Dec 07 '22 12:12

Awalias


1 Answers

You should look at getpid and getppid functions from <unistd.h>.

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

int
main(void)
{
    printf("%ld%ld", (long)getpid(), (long)getppid());
    return 0;
}
like image 110
md5 Avatar answered Jan 12 '23 19:01

md5