TCGETPGRP(3) | Руководство программиста Linux | TCGETPGRP(3) |
tcgetpgrp, tcsetpgrp - возвращает и задаёт терминал активной группы процессов
#include <unistd.h>
pid_t tcgetpgrp(int fd);
int tcsetpgrp(int fd, pid_t pgrp);
Функция tcgetpgrp() возвращает идентификатор активной (foreground) группы процессов, терминал которой связан с fd. Этот терминал должен быть управляющим терминалом вызывающего процесса.
Функция tcsetpgrp() делает группу процессов с идентификатором pgrp активной группой процессов на терминале, связанном с fd, который должен быть управляющим терминалом для вызывающего процесса, и все ещё быть связанным с его сеансом. Более того, pgrp должно быть (непустой) группой процессов, принадлежащей к тому же сеансу, что и вызывающий процесс.
Если tcsetpgrp() вызывается членом группы фоновых процессов в этом сеансе, и вызывающий процесс не блокирует или игнорирует SIGTTOU, то сигнал SIGTTOU отправляется всем членам этой группы фоновых процессов.
Когда fd ссылается на управляющий терминал вызывающего процесса, функция tcgetpgrp() возвращает идентификатор активной группы процессов этого терминала, если такой существует, или некоторое значение больше 1, не являющееся в данный момент идентификатором группы процессов, в другом случае. Когда fd не ссылается на управляющий терминал вызывающего процесса, возвращается -1, а переменная errno устанавливается соответственно ошибке.
При успешном выполнении tcsetpgrp() возвращает 0. Иначе возвращается -1 и переменная errno устанавливается соответствующим образом.
Описание терминов данного раздела смотрите в attributes(7).
Интерфейс | Атрибут | Значение |
tcgetpgrp(), tcsetpgrp() | Безвредность в нитях | MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Эти функции реализованы через вызовы ioctl TIOCGPGRP и TIOCSPGRP.
Эти вызовы ioctl появились в 4.2BSD. Функции являются изобретениями POSIX.
2015-08-08 | GNU |