每个进程都有一个非负整型表示的唯一进程ID。虽然是唯一的,但是进程ID可以重用。当一个进程终止后,其进程ID就可以再次使用了。
系统中有一些专用的进程,ID为0的进程通常是调度进程,常常被称为交换进程(swapper)。该进程是内核的一部分,它并不执行任何磁盘上的程序,因此也被称为系统进程。进程ID1通常是init进程,在自举过程结束时由内核调用。此进程负责在自举内核后启动系统。init进程决不会终止,它是一个普通的用户进程(与交换进程不同,它不是内核中的系统进程),但是它以超级用户特权运行。
除了进程ID,每个进程还有一些其他的标识符。
- #include <unistd.h>
- pid_t getpid(void);
返回调用进程的进程ID
- pid_t getppid(void);
返回调用进程的父进程ID
- uid_t getuid(void);
返回调用进程的实际用户ID
- uid_t geteuid(void);
返回调用进程的有效用户ID
- uid_t getgid(void);
返回调用进程的实际组ID
- uid_t getegid(void);
返回调用进程的有效组ID
注意,这些函数都没有出错返回。