📜  Linux中的getppid()和getpid()

📅  最后修改于: 2021-05-25 22:57:08             🧑  作者: Mango

getppid()和getpid()都是unistd.h库中定义的内置函数。

  1. 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在不同的执行过程中可能会有所不同。

  2. 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基础课程》。