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.
CONFORME A
POSIX.1