getpid(2) System Calls Manual getpid(2) NOMBRE getpid, getppid - obtiene el identificador de proceso BIBLIOTECA Biblioteca Estandar C (libc, -lc) SINOPSIS #include pid_t getpid(void); pid_t getppid(void); DESCRIPCION getpid devuelve el identificador de proceso (PID) del proceso actual. Esto suele ser usado por rutinas que generan nombres unicos de archivos temporales. getppid() devuelve el ID de proceso del padre del proceso que realiza la llamada. Este sera el ID del proceso que creo este proceso mediante fork() o bien, si dicho proceso ya ha finalizado, el ID del proceso al que se ha reubicado ya sea init(1) o un proceso <> definido mediante la operacion PR_SET_CHILD_SUBREAPER de prctl(2). ERRORES Estas funciones siempre terminan sin error. VERSIONES En Alpha, en lugar de un par de llamadas al sistema getpid() y getppid(), se proporciona una unica llamada al sistema getxpid(), que devuelve un par de PID y un PID padre. Las funciones contenedoras getpid() y getppid() de glibc gestionan esto de forma transparente. Consulte syscall(2) para mas informacion sobre la asignacion de registros. ESTANDARES POSIX.1-2008. HISTORIAL POSIX.1-2001, 4.3BSD, SVr4. Diferencias nucleo / biblioteca C Desde glibc 2.3.4 hasta glibc 2.24 inclusive, la funcion contenedora de glibc para getpid() almacenaba en cache los PID, con el objetivo de evitar llamadas al sistema adicionales cuando un proceso invocaba getpid() repetidamente. Normalmente, este almacenamiento en cache era invisible, pero su correcto funcionamiento dependia de la compatibilidad con las funciones contenedoras de fork(2), vfork(2) y clone(2): si una aplicacion omitia las funciones contenedoras de glibc para estas llamadas al sistema mediante syscall(2), una llamada a getpid() en el proceso hijo devolveria un valor incorrecto (mas exactamente: devolveria el PID del proceso padre). Ademas, existian casos en los que getpid() podia devolver un valor incorrecto incluso al invocar clone(2) mediante la funcion contenedora de glibc. Puede consultarse una explicacion de un caso de este tipo en el apartado ERRORES en clone(2). Ademas, la complejidad del codigo de cache habia sido la fuente de algunos errores en glibc a lo largo de los anos. Debido a los problemas mencionados, desde la version 2.25 de glibc se ha eliminado la cache PID: las llamadas a getpid() siempre invocan la llamada al sistema real, en lugar de devolver un valor almacenado en cache. NOTAS Si el antecesor del invocante esta en un espacio de nombres diferente al PID (consulte pid_namespaces(7)), getppid() tendra un estado de salida de 0. Desde la perspectiva del nucleo, el PID (que comparten todos los hilos de un proceso multihilo) tambien se conoce como ID de grupo de hilos (TGID). Esto contrasta con el ID de hilo del nucleo (TID), que es unico para cada hilo. Consulte gettid(2) y la explicacion del indicador CLONE_THREAD en clone(2). VEASE TAMBIEN clone(2), fork(2), gettid(2), kill(2), exec(3), mkstemp(3), tempnam(3), tmpfile(3), tmpnam(3), credentials(7), pid_namespaces(7) TRADUCCION La traduccion al espanol de esta pagina del manual fue creada por Nicolas Lichtmaier , Juan Piernas y Marcos Fouces Esta traduccion es documentacion libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. Si encuentra algun error en la traduccion de esta pagina del manual, envie un correo electronico a . Paginas de Manual de Linux 6.15 17 Mayo 2025 getpid(2)