tcgetpgrp

NAME

tcgetpgrp, tcsetpgrp - get and set terminal foreground process group

SYNOPSIS

R #include <unistd.h> I pid_t tcgetpgrp(int fd ); I int tcsetpgrp(int fd , pid_t pgrp );

DESCRIPTION

The function R tcgetpgrp () returns the process group ID of the foreground process group on the terminal associated to R fd , which must be the controlling terminal of the calling process.
The function R tcsetpgrp () makes the process group with process group ID pgrp the foreground process group on the terminal associated to R fd , which must be the controlling terminal of the calling process, and still be associated with its session. Moreover, pgrp must be a (nonempty) process group belonging to the same session as the calling process.
If R tcsetpgrp () is called by a member of a background process group in its session, and the calling process is not blocking or ignoring R SIGTTOU , a SIGTTOU signal is sent to all members of this background process group.

RETURN VALUE

When fd refers to the controlling terminal of the calling process, the function R tcgetpgrp () will return the foreground process group ID of that terminal if there is one, and some value larger than 1 that is not presently a process group ID otherwise. When fd does not refer to the controlling terminal of the calling process, -1 is returned, and errno is set appropriately.
When successful, R tcsetpgrp () returns 0. Otherwise, it returns -1, and errno is set appropriately.

ERRORS

EBADF
fd is not a valid file descriptor.
EINVAL
pgrp has an unsupported value.
ENOTTY
The calling process does not have a controlling terminal, or it has one but it is not described by R fd , or, for R tcsetpgrp (), this controlling terminal is no longer associated with the session of the calling process.
EPERM
pgrp has a supported value, but is not the process group ID of a process in the same session as the calling process.

CONFORMING TO

POSIX.1-2001.

NOTES

These functions are implemented via the TIOCGPGRP and TIOCSPGRP ioctls.

History

The ioctls appeared in 4.2BSD. The functions are POSIX inventions.

SEE ALSO