text: setpgid(2) BSD System Calls Manual setpgid(2)
  NAME
  setpgid, setpgrp -- set process group
  SYNOPSIS
  #include <unistd.h> int setpgid(pid_t pid, pid_t pgid); pid_t setpgrp(void);
  DESCRIPTION
  Setpgid() sets the process group of the specified process pid to the specified pgid. If pid is zero, then the call applies to the current process. If the invoker is not the super-user, then the affected process must have the same effective user-id as the invoker or be a descendant of the invoking process. If the calling process is not already a session leader, setpgrp() sets the process group ID of the calling process to that of the calling process. Any new session that this creates will have no controlling ter- minal.
  RETURN VALUES
  Setpgid() returns 0 when the operation was successful. If the request failed, -1 is returned and the global variable errno indicates the rea- son.
  ERRORS effective user ID of the requested process is dif- ferent from that of the caller and the process is not a descendant.
  LEGACY SYNOPSIS
  #include <unistd.h> int setpgrp(pid_t pid, pid_t pgid); The legacy setpgrp() function is a clone of the setpgid() function, retained for calling convention compatibility with historical versions of BSD.
  COMPATIBILITY
  Use of the legacy version of the setpgrp() call will cause compiler diag- nostics. Use setpgid() instead. Use of private (and conflicting) prototypes for setpgrp() will cause com- piler diagnostics. Delete the private prototypes and include <unistd.h>.
  SEE ALSO
  getpgrp(2), compat(5)
  STANDARDS
  The setpgid() function conforms to IEEE Std 1003.1-1988 (``POSIX.1''). 4th Berkeley Distribution June 4, 1993 4th Berkeley Distribution
  Mac OS X 10.9.1 - Generated Mon Jan 6 15:16:03 CST 2014