Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages

RedHat 9 (Linux i386) - man page for getpgrp (redhat section 2)

SETPGID(2)			    Linux Programmer's Manual			       SETPGID(2)

NAME
       setpgid, getpgid, setpgrp, getpgrp - set/get process group

SYNOPSIS
       #include <unistd.h>

       int setpgid(pid_t pid, pid_t pgid);
       pid_t getpgid(pid_t pid);
       int setpgrp(void);
       pid_t getpgrp(void);

DESCRIPTION
       setpgid	sets  the  process  group  ID of the process specified by pid to pgid.	If pid is
       zero, the process ID of the current process is used.  If pgid is zero, the process  ID  of
       the  process  specified	by  pid  is  used.  If setpgid is used to move a process from one
       process group to another (as is done by some shells when creating pipelines), both process
       groups  must  be  part  of the same session.  In this case, the pgid specifies an existing
       process group to be joined and the session ID of that group must match the session  ID  of
       the joining process.

       getpgid returns the process group ID of the process specified by pid.  If pid is zero, the
       process ID of the current process is used.

       In the Linux DLL 4.4.1 library, setpgrp simply calls setpgid(0,0).

       getpgrp is equivalent to getpgid(0).  Each process group is a member of a session and each
       process is a member of the session of which its process group is a member.

       Process	groups	are  used  for	distribution  of  signals,  and by terminals to arbitrate
       requests for their input: Processes that have the same process group as the  terminal  are
       foreground  and	may  read, while others will block with a signal if they attempt to read.
       These calls are thus used by programs such as csh(1) to create process  groups  in  imple-
       menting	job  control.  The TIOCGPGRP and TIOCSPGRP calls described in termios(3) are used
       to get/set the process group of the control terminal.

       If a session has a controlling terminal, CLOCAL is not set and a hangup occurs,	then  the
       session	leader	is sent a SIGHUP.  If the session leader exits, the SIGHUP signal will be
       sent to each process in the foreground process group of the controlling terminal.

       If the exit of the process causes a process group to become orphaned, and if any member of
       the  newly-orphaned  process  group is stopped, then a SIGHUP signal followed by a SIGCONT
       signal will be sent to each process in the newly-orphaned process group.

RETURN VALUE
       On success, setpgid and setpgrp return zero.  On error, -1 is returned, and errno  is  set
       appropriately.

       getpgid	returns  a  process group on success.  On error, -1 is returned, and errno is set
       appropriately.

       getpgrp always returns the current process group.

ERRORS
       EINVAL pgid is less than 0 (setpgid, setpgrp).

       EACCES An attempt was made to change the process group ID of one of the	children  of  the
	      calling process and the child had already performed an execve (setpgid, setpgrp).

       EPERM  An  attempt was made to move a process into a process group in a different session,
	      or to change the process group ID of one of the children of the calling process and
	      the  child  was in a different session, or to change the process group ID of a ses-
	      sion leader (setpgid, setpgrp).

       ESRCH  pid does not match any process.

CONFORMING TO
       The functions setpgid and getpgrp conform to POSIX.1.  The function setpgrp  is	from  BSD
       4.2.  The function getpgid conforms to SVr4.

NOTES
       POSIX  took setpgid from the BSD function setpgrp.  Also SysV has a function with the same
       name, but it is identical to setsid(2).

       To get the prototypes under glibc, define both _XOPEN_SOURCE  and  _XOPEN_SOURCE_EXTENDED,
       or use "#define _XOPEN_SOURCE n" for some integer n larger than or equal to 500.

SEE ALSO
       getuid(2), setsid(2), tcsetpgrp(3), termios(3)

Linux					    1999-09-02				       SETPGID(2)


All times are GMT -4. The time now is 05:10 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
UNIX.COM Login
Username:
Password:  
Show Password