unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



setpgid(2)							   setpgid(2)



NAME

  setpgid, setpgrp - Sets the process group ID

SYNOPSIS

  #include <&lt;unistd.h>&gt;

  int setpgid(
	  pid_t	process_id,
	  pid_t	process_group_id);

   pid_t setpgrp(void);

  Application developers may want to specify an	#include statement for
  <&lt;sys/types.h>&gt;	before the one for <&lt;unistd.h>&gt; if programs are being developed
  for multiple platforms. The additional #include statement is not required
  on Tru64 UNIX	systems	or by ISO or X/Open standards, but may be required on
  other	vendors' systems that conform to these standards.

  The following	alternate declaration for setpgrp() does not conform to
  current standards and	is supported only for backward compatibility:

   int setpgrp(
	  pid_t	process_id,
	  pid_t	process_group_id);

STANDARDS

  Interfaces documented	on this	reference page conform to industry standards
  as follows:

  setpgid(): XSH5.0

  setpgrp(): SVID 3, XSH5.0

  Refer	to the standards(5) reference page for more information	about indus-
  try standards	and associated tags.

PARAMETERS

  process_id
	    Specifies the ID of	the process whose process group	ID is to be
	    changed.

  process_group_id
	    Specifies the new process group ID.

DESCRIPTION

  Use the setpgid() function to	add a process to an existing process group or
  to create a new process group	within a process's session.  The setpgid()
  function does	not change the process group ID	of a session leader.

  The setpgid()	function sets the process group	ID of the process identified
  by the process_id parameter. The process group ID is set to the value
  specified in the process_group_id parameter.


  If the process_id parameter contains 0 (zero), the setpgid() function	sets
  the process group ID of the calling process.	The new	value of the process
  group	ID is the one specified	in the process_group_id	parameter.

  If the process_group_id parameter contains 0 (zero), the setpgid() function
  sets the process group ID of the specified process using the process group
  ID of	the calling process.  The specified process is the one identified by
  the process_id parameter.

  The setpgid()	function supports job control.

  The setpgrp()	function sets the process group	ID of the calling process to
  be equal to the process ID of	the calling process.  If the function creates
  a new	session, the new session has no	controlling terminal.  This function
  does not change the process group ID of a session leader.

NOTES

  [Tru64 UNIX]	When compiled in the X/Open UNIX environment, calls to the
  setpgrp() function are internally renamed by prepending _E to	the function
  name.	When you are debugging a module	that includes the setpgrp() function
  and for which	_XOPEN_SOURCE_EXTENDED has been	defined, use _Esetpgrp to
  refer	to the setpgrp() call.	See standards(5) for further information.

  [Tru64 UNIX]	The backward-compatible	version	of the setpgrp() function is
  supported for	use outside of the System V habitat or X/Open-UNIX environ-
  ment.	 This version of setpgrp() behaves like	the setpgid() function.	 In
  this case, you specify a process ID and process group	ID as parameters in
  the call to setpgrp().  The setpgrp()	function does not change the process
  group	ID of a	session	leader.

RETURN VALUES

  Upon successful completion, the setpgid() function returns a value of	0
  (zero). Otherwise, the function returns a value of -1	and sets errno to
  indicate the error.

  Upon successful completion, the setpgrp() function returns the new process
  group	ID.

  [Tru64 UNIX]	The alternate version of setpgrp() returns a value of 0
  (zero) on successful completion.  Otherwise, the function returns a value
  of -1	and sets errno to indicate the error.

ERRORS

  The setpgid()	function sets errno to the specified values for	the following
  conditions:

  [EACCES]  The	value of the process_id	parameter matches the process ID of a
	    child process of the calling process and the child process has
	    successfully executed one of the exec() functions.

  [EINVAL]  The	value of the process_group_id parameter	is less	than or	equal
	    to 0 (zero), or is not a valid process ID.

  [EPERM]   The	value of the process_group_id parameter	is a valid process
	    ID,	but that process is not	in the same session as the calling
	    process.

  [EPERM]   The	process	indicated by the process_id parameter is a session
	    leader.

	    The	value of the process_id	parameter matches the process ID of a
	    child process of the calling process and the child process is not
	    in the same	session	as the calling process.

	    The	value of the process_group_id parameter	is valid but does not
	    match the process ID of the	process	indicated by the process_id
	    parameter, and there is no process with a process group ID that
	    matches the	value of the process_group_id parameter	in the same
	    session as the calling process.

  [ESRCH]   The	value of the process_id	parameter does not match the process
	    ID of the calling process or of a child process of the calling
	    process.

  No errors are	defined	for the	standard version of the	setpgrp() function.

  [Tru64 UNIX]	The backward-compatible	version	of setpgrp() sets errno	to
  the same values as setpgid().

RELATED	INFORMATION

  Functions: exec(2), fork(2), getpid(2), getsid(2), kill(2)

  Standards: standards(5)

  Guides:  Programmer's	Guide