.\" Copyright (c) 1983, 1991 Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)getpgrp.2 6.4 (Berkeley) 3/10/91 .\" .\" Modified Sat Jul 24 01:15:33 1993 by Rik Faith .\" Modified 15 April 1995 by Michael Chastain : .\" Added 'getpgid'. .\" Modified 21 July 1996 by Andries Brouwer .\" Modified Wed Nov 6 04:02:50 1996 by Eric S. Raymond .\" FIXME -- error conditions need to be better documented, see kernel .\" Modified Thu Sep 2 13:55:37 1999 by Michael Haardt .\" Translated into Spanish Mon Jan 26 1998 by Gerardo Aburruzaga .\" García .\" Translation revised Mon Aug 17 1998 by Juan Piernas .\" Translation revised Sun Apr 16 2000 by Juan Piernas .\" .TH SETPGID 2 "2 septiembre 1999" "Linux" "Manual del Programador de Linux" .SH NOMBRE setpgid, getpgid, setpgrp, getpgrp \- obtener/establecer el grupo de procesos .SH SINOPSIS .B #include .sp .BI "int setpgid(pid_t " pid ", pid_t " pgid ); .br .BI "pid_t getpgid(pid_t " pid ); .br .B int setpgrp(void); .br .B pid_t getpgrp(void); .SH DESCRIPCIÓN .B setpgid pone el ID del grupo del proceso especificado por .I pid a .IR pgid . Si .I pid es cero, se emplea el PID del proceso en curso. Si .I pgid es cero, se emplea el PID del proceso especificado por .IR pid . Si \fBsetpgid\fP se utiliza para mover un proceso de un grupo de procesos a otro (como hacen algunos shells cuando crean tuberías), ambos grupos de procesos deben formar parte de la misma sesión. En este caso, \fIpgid\fP especifica el grupo de procesos existente en el que vamos a entrar, y el ID de sesión de ese grupo de procesos debe coincidir con el ID de sesión del proceso que quiere entrar. .B getpgid devuelve el ID del grupo de proceso del especificado por .IR pid . Si .I pid es cero, se emplea el PID del proceso en curso. En la biblioteca DLL 4.4.1 de Linux, .B setpgrp simplemente llama a .BR setpgid(0,0) . .B getpgrp equivale a .BR getpgid(0) . Cada grupo de procesos es miembro de una sesión y cada proceso es miembro de la sesión de la que su grupo de procesos es miembro. Los grupos de proceso se emplean para la distribución de señales, y por las terminales para arbitrar peticiones para su entrada: los procesos que tienen el mismo grupo de proceso que la terminal son en primer plano y pueden leer, mientras que otros se bloquearán con una señal si intentan leer. Estas llamadas se usan pues por programas como .BR csh (1) para crear grupos de proceso cuando implementan el control de trabajos. Las llamadas .B TIOCGPGRP y .B TIOCSPGRP descritas en .BR termios (4) se emplean para obtener/poner el grupo de proceso de la terminal de control. Si una sesión posee una terminal controladora, CLOCAL no está configurada y si se cierra la sesión, entonces se enviará una señal SIGHUP al lider de sesión. Si el lider de sesión existe, se enviará la señal SIGHUP a cada proceso del grupo de procesos en primer plano de la terminal controladora. Si la terminación del proceso hace que un grupo de procesos se quede huérfano y si cualquier miembro del grupo de procesos que se acaba de quedar huérfano se detiene, entonces se enviará una señal SIGHUP seguida de una señal SIGCONT a cada proceso en el grupo de procesos que se acaba de quedar huérfano. .SH "VALOR DEVUELTO" En caso de éxito, .BR setpgid " y " setpgrp devuelven cero. En caso de error. devuelven \-1 y ponen un valor apropiado en \fIerrno\fP. .B getpgid devuelve un grupo de proceso si acaba bien; \-1 en caso de error, y pone un valor apropiado en \fIerrno\fP. .B getpgrp siempre devuelve el grupo de proceso actual. .SH ERRORES .TP .B EINVAL .I pgid es menor que 0. .TP .B EPERM Violaciones de permisos variadas. .TP .B ESRCH .I pid no concuerda con ningún proceso. .SH "CONFORME A" Las funciones .B setpgid y .B getpgrp siguen el estándar POSIX.1. La función .B setpgrp es de BSD 4.2. La función .B getpgid conforma con SVr4. .SH "VÉASE TAMBIÉN" .BR getuid (2), .BR setsid (2), .BR tcsetpgrp (3), .BR termios (4)