TCSETPGRP(3) BSD Programmer's Manual TCSETPGRP(3)
tcsetpgrp - set foreground process group ID
tcsetpgrp(int fd, pid_t pgrp_id);
If the process has a controlling terminal, the tcsetpgrp function sets
the foreground process group ID associated with the terminal device to
pgrp_id. The terminal device associated with fd must be the controlling
terminal of the calling process and the controlling terminal must be cur-
rently associated with the session of the calling process. The value of
pgrp_id must be the same as the process group ID of a process in the same
session as the calling process.
Upon successful completion, tcsetpgrp returns a value of zero.
If an error occurs, tcgetpgrp returns -1 and the global variable errno is
set to indicate the error, as follows:
[EBADF] The fd argument is not a valid file descriptor.
[EINVAL] An invalid value of pgrp_id was specified.
[ENOTTY] The calling process does not have a controlling terminal,
or the file represented by fd is not the controlling termi-
nal, or the controlling terminal is no longer associated
with the session of the calling process.
[EPERM] The pgrp_id argument does not match the process group ID of
a process in the same session as the calling process.
setpgid(3), setsid(2), tcgetpgrp(3)
The tcsetpgprp function is expected to be compliant with the IEEE
Std1003.1-1988 (``POSIX'') specification.
4.4BSD June 4, 1993 1