SETPGID(2)                NetBSD System Calls Manual                SETPGID(2)

NAME
     setpgid, setpgrp -- set process group

LIBRARY
     Standard C Library (libc, -lc)

SYNOPSIS
     #include <unistd.h>

     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 pgrp is zero, then the process id of the process specified
     by pid is used instead.

     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.

     [EINVAL]           The value of the pgrp argument is less than zero.

     [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 ISO/IEC 9945-1:1990 (``POSIX.1'').

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

NetBSD 5.0_STABLE              December 18, 2003             NetBSD 5.0_STABLE
