三个不同的进程号:
PID:进程号。表示一个进程的非负整数。
PPID:父进程号。A进程创建B进程,则A是B的父进程。
PGID:进程组号。进程组是一个或多个进程的集合。默认当前进程号为当前的进程组号。
1. getpid函数
#include<sys/types.h>
#include<unistd.h>
pid_t getpid(void);
/*
功能:
获取当前进程号
返回值:
当前进程号。
该函数总是成功。
*/
2. getppid函数
#include<sys/types.h>
#include<unistd.h>
pid_t getppid(void);
/*
功能:
获取当前进程的父进程号
返回值:
当前进程的父进程号
*/
3. getpgid函数
#include<sys/types.h>
#include<unistd.h>
pid_t getpgid(pid_t pid);
/*
功能:
获取当前进程组号
参数:
pid:进程号
返回值:
pid为0,则返回当前进程组号;
否则返回指定进程的进程组号。
*/
getpid、getppid、getpgid示例:
#include<stdio.h>
#include<sys/types.h>
#include<unistd.h>
void test01() {
// 获取当前进程号
printf("getpid() = %d\n", getpid());
// 获取当前进程的父进程号
printf("getppid() = %d\n", getppid());
// 获取当前进程组号
printf("getpgid(getpid()) = %d\n", getpgid(0));
printf("getpgid(getpid()) = %d\n", getpgid(getpid()));
printf("getpgid(getppid()) = %d\n", getpgid(getppid()));
}
运行结果: