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)