June 4, 1993 TCSETPGRP 3

### NAME

tcsetpgrp - set foreground process group ID

### LIBRARY

Standard C Library (libc, -lc)

### SYNOPSIS

```int` tcsetpgrp(```int fd``, pid_t pgrp_id`)

### DESCRIPTION

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 currently 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.

### ERRORS

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 terminal, 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.

### SEE ALSO

setpgid(2), setsid(2), tcgetpgrp(3)

### STANDARDS

The tcsetpgprp function conforms to ISO/IEC 9945-1:1990 (``POSIX.1'') .