tcsetpgrp()

Установить идентификатор группы процесса для устройства

Прототип:

#include <sys/types.h>
#include <unistd.h>
int tcsetpgrp( int fildes,
pid_t pgrp_id );

Аргументы:

fildes
Файловый дескриптор, связанный с устройством, для которого необходимо установить идентификатор группы процессов.
pgrp_id
Идентификатор группы процессов, который нужно присвоить устройству.

Библиотека:

libc

Описание:

Функция tcsetpgrp() устанавливает идентификатор группы процессов, связанный с устройством, на которое указывает fildes, равным pgrp_id.

В случае успеха функция tcsetpgrp() вызывает последовательные прерывания на указанном оконечном устройстве для генерации SIGINT для всех процессов в данной группе процессов.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Некорректный аргумент fildes.
EINVAL
Некорректный аргумент pgrp_id.
ENOSYS
Менеджер ресурсов, связанный с fildes, не поддерживает этот вызов.
ENOTTY
Аргумент fildes не относится к терминальному устройству.
EPERM
Аргумент pgrp_id не является частью той же сессии, что и вызывающий процесс.

Примеры:

#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
int main( void )
{
/* Direct breaks on stdin to me */
tcsetpgrp( 0, getpid() );
return (EXIT_SUCCESS);
}

Классификация:

POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

signal(), tcgetpgrp()




Предыдущий раздел: Описание API системной библиотеки