getppid()和getpid()都是unistd.h库中定义的内置函数。
- getppid():返回调用进程的父进程的进程ID。如果调用进程是由fork()函数创建的,并且在调用getppid函数时父进程仍然存在,则此函数将返回父进程的进程ID。否则,此函数返回值1,该值是初始化进程的进程ID。
句法:pid_t getppid(void);
返回类型: getppid()返回当前进程的父级的进程ID。它永远不会抛出任何错误,因此总是成功的。
// C++ Code to demonstrate getppid() #include
#include using namespace std; // Driver Code int main() { int pid; pid = fork(); if (pid == 0) { cout << "\nParent Process id : " << getpid() << endl; cout << "\nChild Process with parent id : " << getppid() << endl; } return 0; } 输出(在不同的系统上会有所不同):
Parent Process id of current process : 3849 Child Process with parent id : 3851
注意:在某些情况下,没有必要先执行子进程,也不必先为父进程分配CPU,任何进程都可以在某个时间分配CPU。此外,进程ID在不同的执行过程中可能会有所不同。
- getpid():返回调用进程的进程ID。生成唯一的临时文件名的例程经常使用它。
句法:pid_t getpid(void);
返回类型: getpid()返回当前进程的进程ID。它永远不会抛出任何错误,因此总是成功的。
// C++ Code to demonstrate getpid() #include
#include using namespace std; // Driver Code int main() { int pid = fork(); if (pid == 0) cout << "\nCurrent process id of Process : " << getpid() << endl; return 0; } 输出(在不同的系统上会有所不同):
Current process id of Process : 4195
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。