]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/man/man2/setpgid.2
xnu-1228.7.58.tar.gz
[apple/xnu.git] / bsd / man / man2 / setpgid.2
index 6b2cdbd94627e5c69f12ee1d1b3531a94fed2bb2..36d82683af7c78ed7a74403555346739ba668557 100644 (file)
 .Sh SYNOPSIS
 .Fd #include <unistd.h>
 .Ft int
 .Sh SYNOPSIS
 .Fd #include <unistd.h>
 .Ft int
-.Fn setpgid "pid_t pid" "pid_t pgrp"
-.Ft int
-.Fn setpgrp "pid_t pid" "pid_t pgrp"
+.Fo setpgid
+.Fa "pid_t pid"
+.Fa "pid_t pgid"
+.Fc
+.Ft pid_t
+.Fo setpgrp
+.Fa void
+.Fc
 .Sh DESCRIPTION
 .Fn Setpgid
 sets the process group of the specified process
 .Ar pid
 to the specified
 .Sh DESCRIPTION
 .Fn Setpgid
 sets the process group of the specified process
 .Ar pid
 to the specified
-.Ar pgrp .
+.Ar pgid .
 If
 .Ar pid
 is zero, then the call applies to the current process.
 If
 .Ar pid
 is zero, then the call applies to the current process.
@@ -59,6 +64,12 @@ 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 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.
+.Pp
+If the calling process is not already a session leader,
+.Fn 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 terminal.
 .Sh RETURN VALUES
 .Fn Setpgid
 returns 0 when the operation was successful.
 .Sh RETURN VALUES
 .Fn Setpgid
 returns 0 when the operation was successful.
@@ -69,32 +80,81 @@ indicates the reason.
 .Fn Setpgid
 will fail and the process group will not be altered if:
 .Bl -tag -width Er
 .Fn Setpgid
 will fail and the process group will not be altered if:
 .Bl -tag -width Er
-.It Bq Er EACCESS
+.\" ===========
+.It Bq Er EACCES
 The value of the
 .Fa 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.
 The value of the
 .Fa 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.
+.\" ===========
+.It Bq Er EINVAL
+The value of the
+.Fa pgid
+argument is less than 0
+or is not a value supported by the implementation.
+.\" ===========
+.It Bq Er EPERM
+The process indicated by the
+.Fa pid
+argument is a session leader.
+.\" ===========
 .It Bq Er EPERM
 The effective user ID of the requested process is different
 from that of the caller and the process is not a descendant
 of the calling process.
 .It Bq Er EPERM
 The effective user ID of the requested process is different
 from that of the caller and the process is not a descendant
 of the calling process.
+.\" ===========
+.It Bq Er EPERM
+The value of the
+.Fa pgid argument
+is valid, but does not match the process ID
+of the process indicated by the
+.Fa pid
+argument and there is no process with a process group ID
+that matches the value of the
+.Fa pgid
+argument in the same session as the calling process.
+.\" ===========
 .It Bq Er ESRCH
 The value of the 
 .Fa pid 
 argument does not match the process ID of the calling process or of a 
 child process of the calling process.
 .El
 .It Bq Er ESRCH
 The value of the 
 .Fa pid 
 argument does not match the process ID of the calling process or of a 
 child process of the calling process.
 .El
+.Sh LEGACY SYNOPSIS
+.Fd #include <unistd.h>
+.Pp
+.Ft int
+.br
+.Fo setpgrp
+.Fa "pid_t pid"
+.Fa "pid_t pgid"
+.Fc ;
+.Pp
+The legacy
+.Fn setpgrp
+function is a clone of the
+.Fn setpgid
+function, retained for calling convention compatibility
+with historical versions of
+.Bx .
+.Sh COMPATIBILITY
+Use of the legacy version of the
+.Fn setpgrp
+call will cause compiler diagnostics.
+Use
+.Fn setpgid
+instead.
+.Pp
+Use of private (and conflicting) prototypes for
+.Fn setpgrp
+will cause compiler diagnostics.
+Delete the private prototypes and include
+.In unistd.h .
 .Sh SEE ALSO
 .Sh SEE ALSO
-.Xr getpgrp 2
+.Xr getpgrp 2 ,
+.Xr compat 5
 .Sh STANDARDS
 The
 .Fn setpgid
 function conforms to 
 .St -p1003.1-88 .
 .Sh STANDARDS
 The
 .Fn setpgid
 function conforms to 
 .St -p1003.1-88 .
-.Sh COMPATIBILITY
-.Fn Setpgrp
-is identical to
-.Fn setpgid ,
-and is retained for calling convention compatibility with historical
-versions of
-.Bx .