int
     setpgid(pid_t pid, pid_t pgrp);

     int
     setpgrp(pid_t pid, pid_t pgrp);


DESCRIPTION

     Setpgid() sets the process group of the specified process pid to the
     specified pgrp.  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.


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

     Setpgid() will fail and the process group will not be altered if:

     [EACCES]           The value of the pid argument matches the process ID
                        of a child process of the calling process, and the
                        child process has successfully executed one of the
                        exec functions.

     [EPERM]            The effective user ID of the requested process is dif-
                        ferent from that of the caller and the process is not
                        a descendant of the calling process.

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


SEE ALSO

     getpgrp(2)


STANDARDS

     The setpgid() function conforms to IEEE Std 1003.1-1988 (``POSIX.1'').


COMPATIBILITY

     Setpgrp() is identical to setpgid(), and is retained for calling conven-
     tion compatibility with historical versions of BSD.

4th Berkeley Distribution        June 4, 1993        4th Berkeley Distribution

Man(1) output converted with man2html