getppid() y getpid() en Linux

Tanto getppid() como getpid() son funciones integradas definidas en la biblioteca unistd.h .

  1. getppid() : devuelve el ID de proceso del padre del proceso de llamada. Si el proceso de llamada fue creado por la función fork() y el proceso principal aún existe en el momento de la llamada a la función getppid, esta función devuelve el ID del proceso principal. De lo contrario, esta función devuelve un valor de 1, que es la identificación del proceso para el proceso de inicio .
    Sintaxis:
    pid_t getppid(void);
    

    Tipo de retorno: getppid() devuelve el ID del proceso principal del proceso actual. Nunca arroja ningún error, por lo tanto, siempre tiene éxito.

    // C++ Code to demonstrate getppid()
    #include <iostream>
    #include <unistd.h>
    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;
    }

    Salida (Será diferente en diferentes sistemas):

    Parent Process id of current process : 3849
    Child Process with parent id : 3851
    

    NOTA: En algún momento, no es necesario que el proceso secundario se ejecute primero o que el proceso principal reciba primero la CPU asignada, cualquier proceso puede obtener la CPU asignada, en algún momento cuántico. Además, la identificación del proceso puede diferir durante diferentes ejecuciones.

  2. getpid() : devuelve el ID de proceso del proceso de llamada. Esto suele ser usado por rutinas que generan nombres de archivos temporales únicos.
    Sintaxis:
    pid_t getpid(void);
    

    Tipo de retorno: getpid() devuelve el ID del proceso actual. Nunca arroja ningún error, por lo tanto, siempre tiene éxito.

    // C++ Code to demonstrate getpid()
    #include <iostream>
    #include <unistd.h>
    using namespace std;
      
    // Driver Code
    int main()
    {
        int pid = fork();
        if (pid == 0)
            cout << "\nCurrent process id of Process : " 
                 << getpid() << endl;
        return 0;
    }

    Salida (Será diferente en diferentes sistemas):

    Current process id of Process : 4195
    

Este artículo es una contribución de Pushpanjali Chauhan . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *