.\" -*- coding: UTF-8 -*- .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getpid 2 "17 Mayo 2025" "Páginas de Manual de Linux 6.15" .SH NOMBRE getpid, getppid \- obtiene el identificador de proceso .SH BIBLIOTECA Biblioteca Estándar C (\fIlibc\fP,\ \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBpid_t getpid(void);\fP \fBpid_t getppid(void);\fP .fi .SH DESCRIPCIÓN \fBgetpid\fP devuelve el identificador de proceso (PID) del proceso actual. Esto suele ser usado por rutinas que generan nombres únicos de archivos temporales. .P \fBgetppid\fP() devuelve el ID de proceso del padre del proceso que realiza la llamada. Este será el ID del proceso que creó este proceso mediante \fBfork\fP() o bien, si dicho proceso ya ha finalizado, el ID del proceso al que se ha reubicado ya sea \fBinit\fP(1) o un proceso «subreaper» definido mediante la operación \fBPR_SET_CHILD_SUBREAPER\fP de \fBprctl\fP(2). .SH ERRORES Estas funciones siempre terminan sin error. .SH VERSIONES En Alpha, en lugar de un par de llamadas al sistema \fBgetpid\fP() y \fBgetppid\fP(), se proporciona una única llamada al sistema \fBgetxpid\fP(), que devuelve un par de PID y un PID padre. Las funciones contenedoras \fBgetpid\fP() y \fBgetppid\fP() de glibc gestionan esto de forma transparente. Consulte \fBsyscall\fP(2) para más información sobre la asignación de registros. .SH ESTÁNDARES POSIX.1\-2008. .SH HISTORIAL POSIX.1\-2001, 4.3BSD, SVr4. .SS "Diferencias núcleo / biblioteca C" .\" The following program demonstrates this "feature": .\" .\" #define _GNU_SOURCE .\" #include .\" #include .\" #include .\" #include .\" #include .\" #include .\" .\" int .\" main(int argc, char *argv[]) .\" { .\" /* The following statement fills the getpid() cache */ .\" .\" printf("parent PID = %ld\n", (intmax_t) getpid()); .\" .\" if (syscall(SYS_fork) == 0) { .\" if (getpid() != syscall(SYS_getpid)) .\" printf("child getpid() mismatch: getpid()=%jd; " .\" "syscall(SYS_getpid)=%ld\n", .\" (intmax_t) getpid(), (long) syscall(SYS_getpid)); .\" exit(EXIT_SUCCESS); .\" } .\" wait(NULL); .\"} Desde glibc 2.3.4 hasta glibc 2.24 inclusive, la función contenedora de glibc para \fBgetpid\fP() almacenaba en caché los PID, con el objetivo de evitar llamadas al sistema adicionales cuando un proceso invocaba \fBgetpid\fP() repetidamente. Normalmente, este almacenamiento en caché era invisible, pero su correcto funcionamiento dependía de la compatibilidad con las funciones contenedoras de \fBfork\fP(2), \fBvfork\fP(2) y \fBclone\fP(2): si una aplicación omitía las funciones contenedoras de glibc para estas llamadas al sistema mediante \fBsyscall\fP(2), una llamada a \fBgetpid\fP() en el proceso hijo devolvería un valor incorrecto (más exactamente: devolvería el PID del proceso padre). Además, existían casos en los que \fBgetpid\fP() podía devolver un valor incorrecto incluso al invocar \fBclone\fP(2) mediante la función contenedora de glibc. Puede consultarse una explicación de un caso de este tipo en el apartado ERRORES en \fBclone\fP(2). Además, la complejidad del código de caché había sido la fuente de algunos errores en glibc a lo largo de los años. .P .\" commit c579f48edba88380635ab98cb612030e3ed8691e .\" https://sourceware.org/glibc/wiki/Release/2.25#pid_cache_removal .\" FIXME . .\" Review progress of https://bugzilla.redhat.com/show_bug.cgi?id=1469757 Debido a los problemas mencionados, desde la versión 2.25 de glibc se ha eliminado la caché PID: las llamadas a \fBgetpid\fP() siempre invocan la llamada al sistema real, en lugar de devolver un valor almacenado en caché. .SH NOTAS Si el antecesor del invocante está en un espacio de nombres diferente al PID (consulte \fBpid_namespaces\fP(7)), \fBgetppid\fP() tendrá un estado de salida de 0. .P Desde la perspectiva del núcleo, el PID (que comparten todos los hilos de un proceso multihilo) también se conoce como ID de grupo de hilos (TGID). Esto contrasta con el ID de hilo del núcleo (TID), que es único para cada hilo. Consulte \fBgettid\fP(2) y la explicación del indicador \fBCLONE_THREAD\fP en \fBclone\fP(2). .SH "VÉASE TAMBIÉN" \fBclone\fP(2), \fBfork\fP(2), \fBgettid\fP(2), \fBkill\fP(2), \fBexec\fP(3), \fBmkstemp\fP(3), \fBtempnam\fP(3), \fBtmpfile\fP(3), \fBtmpnam\fP(3), \fBcredentials\fP(7), \fBpid_namespaces\fP(7) .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Nicolás Lichtmaier , Juan Piernas y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .