NOMBRE¶
tcgetpgrp, tcsetpgrp - obtienen y establecen el grupo de procesos en primer
plano de la terminal
SINOPSIS¶
#include <unistd.h>
pid_t tcgetpgrp(int fd);
int tcsetpgrp(int fd, pid_t pgrp);
DESCRIPCIÓN¶
La función
tcgetpgrp() devuelve el identificador de grupo de
procesos del grupo de procesos en primer plano en la terminal asociada a
fd, que debe ser la terminal de control del proceso invocador.
La función
tcsetpgrp() convierte el grupo de procesos con
identificador
pgrp en el grupo de procesos en primer plano en la
terminal asociada a
fd, que debe ser la terminal de control del proceso
invocador, y debe estar todavía asociada con su sesión. Además,
pgrp debe ser un grupo de procesos (no vacío) perteneciente a la
misma sesión que el proceso invocador.
Si
tcsetpgrp() es llamada por un miembro de un grupo de procesos en
segundo plano en su sesión, y el proceso invocador no está
bloqueando o ignorando SIGTTOU, se envía una señal SIGTTOU a todos
los miembros de este grupo de procesos en segundo plano.
VALOR DEVUELTO¶
Cuando
fd hace referencia a la terminal de control del proceso invocador,
la función
tcgetpgrp() devolverá el identificador del grupo
de procesos en primer plano de esa terminal si hay uno, y algún valor
mayor que 1 en caso contrario. Cuando
fd no hace referencia a la
terminal de control del proceso invocador, se devuelve -1 y se modifica
errno con el valor apropiado.
Cuando tiene éxito,
tcsetpgrp() devuelve 0. En otro caso, devuelve
-1, y se modifica
errno con el valor apropiado.
ERRORES¶
- EBADF
- fd no es un descriptor de fichero válido.
- EINVAL
- pgrp tiene un valor no válido.
- EPERM
- pgrp tiene un valor válido, pero no es el
identificador de grupo de procesos de un proceso en la misma sesión
que el proceso invocador.
- ENOTTY
- El proceso invocador no tiene una terminal de control, o
tiene una pero no está descrita por fd, o, para
tcsetpgrp(), esta terminal de control ha dejado de estar asociada
con la sesión del proceso invocador.
OBSERVACIONES¶
Estas funciones fueron implementadas a través de los ioctls TIOCGPGRP y
TIOCSPGRP.
HISTORIA¶
Estos ioctls aparecieron en 4.2 BSD. Las funciones son invenciones de POSIX.
POSIX.1
VÉASE TAMBIÉN¶
setpgid(2),
setsid(2)