今天学习了linux提供的getpid与getppid两个函数:
int getpid(void);
int getppid(void);
这两个函数的作用是用来获取当前process的pid及其parent process的pid。
这两个函数其实是linux kernel提供给用户态程序调用的系统调用,
系统调用其实就是kernel提供给用户程序调用的接口。伪代码如下:
if (0 == fork())
{
printf("\nchild process, pid=%d,ppid=%d\n", getpid(), getppid());
}
else
{
printf("\nparent process, pid=%d,ppid=%d\n", getpid(), getppid());
}
编译运行程序后,可以看到子进程打印出来的ppid的值与parent process
打印出来的pid的值相等。
进入linux shell下,通过:
ps -A | grep pid
可以看到log中打印出的pid对应的process与该process相同。