tcgetpgrp -- Get Foreground Process Group Identification

SYNOPSIS

 #include <sys/types.h>
 #include <unistd.h>

 int tcgetpgrp(int fileDescriptor);
 

DESCRIPTION

tcgetpgrp returns the process group identification (PGID) for the foreground process group associated with a controlling terminal that is referred to by the file descriptor fileDescriptor.

The tcgetpgrp function can be called from a background process to obtain the PGID of a foreground process group. The process can then change from the background group to the foreground process group by making a call to tcsetpgrp, specifying the PGID of the new foreground group as one of the arguments passed to tcsetpgrp.

RETURN VALUE

If successful, tcgetpgrp returns the value of the forground process group identification (PGID). A -1 is returned if unsuccessful.

EXAMPLE

The following example illustrates the use of tcgetpgrp to obtain the PGIDs for stdin, stdout, and stderr:
  #include <sys/types.h>
  #include <termios.h>
  #include <unistd.h>
  #include <stdio.h>
  #include <stdlib.h>

  main()
  {
     pid_t stdin_PGID, stdout_PGID, stderr_PGID;

        /* Get the PGIDs for stdin, stdout, and stderr.  */
     stdin_PGID = tcgetpgrp(STDIN_FILENO);
     if (stdin_PGID == -1) {
        printf("Could not get PGID for stdin.n");
        return(EXIT_FAILURE);
     }
     stdout_PGID = tcgetpgrp(STDOUT_FILENO);
     if (stdout_PGID == -1) {
        printf("Could not get PGID for stdout.n");
        return(EXIT_FAILURE);
     }
     stderr_PGID = tcgetpgrp(STDERR_FILENO);
     if (stderr_PGID == -1) {
        printf("Could not get PGID for stderr.n");
        return(EXIT_FAILURE);
     }

     printf("The PGID for stdin is %d.n", stdin_PGID);
     printf("The PGID for stdout is %d.n", stdout_PGID);
     printf("The PGID for stderr is %d.n", stderr_PGID);

     return(EXIT_SUCCESS);
  }

 

Note: Also see the setpgid example.

RELATED FUNCTIONS

getpgrp, tcsetpgrp


Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.