Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETPGRP(2)		      System Calls Manual		    GETPGRP(2)

NAME
       getpgrp -- get process group

LIBRARY
       Standard	C Library (libc, -lc)

SYNOPSIS
       #include	<unistd.h>

       pid_t
       getpgrp(void);

       pid_t
       getpgid(pid_t pid);

DESCRIPTION
       The process group of the	current	process	is returned by getpgrp().  The
       process	group  of  the	process	 identified  by	 pid  is  returned  by
       getpgid().  If pid is zero, getpgid() returns the process group of  the
       current process.

       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.

       This  system  call  is  thus  used by programs such as csh(1) to	create
       process groups  in  implementing	 job  control.	 The  tcgetpgrp()  and
       tcsetpgrp()  calls are used to get/set the process group	of the control
       terminal.

RETURN VALUES
       The getpgrp() system call always	succeeds.  Upon	successful completion,
       the getpgid() system call returns the process group  of	the  specified
       process;	otherwise, it returns a	value of -1 and	sets errno to indicate
       the error.

COMPATIBILITY
       This  version  of  getpgrp() differs from past Berkeley versions	by not
       taking a	pid_t pid  argument.   This  incompatibility  is  required  by
       ISO/IEC 9945-1:1990 ("POSIX.1").

       From the	ISO/IEC	9945-1:1990 ("POSIX.1")	Rationale:

       4.3BSD  provides	a getpgrp() system call	that returns the process group
       ID for a	specified process.  Although this function is used to  support
       job  control,  all  known job-control shells always specify the calling
       process with this function.  Thus,  the	simpler	 AT&T  System  V  UNIX
       getpgrp()  suffices,  and  the added complexity of the 4.3BSD getpgrp()
       has been	omitted	from POSIX.1.  The old functionality is	available from
       the getpgid() system call.

ERRORS
       The getpgid() system call will succeed unless:

       [ESRCH]		  there	is no process whose process ID equals pid

SEE ALSO
       getsid(2), setpgid(2), termios(4)

STANDARDS
       The getpgrp() system call is expected to	conform	to ISO/IEC 9945-1:1990
       ("POSIX.1").

HISTORY
       The getpgrp() system call appeared in  4.0BSD.	The  getpgid()	system
       call is derived from its	usage in AT&T System V Release 4 UNIX.

FreeBSD	13.2			 June 4, 1993			    GETPGRP(2)

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUES | COMPATIBILITY | ERRORS | SEE ALSO | STANDARDS | HISTORY

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=getpgid&sektion=2&manpath=FreeBSD+14.0-RELEASE+and+Ports>

home | help