
#include <sys/types.h> #include <unistd.h> int tcgetpgrp(int fileDescriptor);
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.
tcgetpgrp returns the value of the forground process
group identification (PGID). A -1 is returned if unsuccessful.
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.
getpgrp, tcsetpgrp
Copyright (c) 1998 SAS Institute Inc. Cary, NC, USA. All rights reserved.