1.\" Copyright (c) 1980, 1991 The Regents of the University of California. 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. 9.\" 2. Redistributions in binary form must reproduce the above copyright 10.\" notice, this list of conditions and the following disclaimer in the 11.\" documentation and/or other materials provided with the distribution. 12.\" 3. All advertising materials mentioning features or use of this software 13.\" must display the following acknowledgement: 14.\" This product includes software developed by the University of 15.\" California, Berkeley and its contributors. 16.\" 4. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.\" from: @(#)getpriority.2 6.9 (Berkeley) 3/10/91 33.\" $Id: getpriority.2,v 1.3 1993/11/25 00:39:01 jtc Exp $ 34.\" 35.Dd March 10, 1991 36.Dt GETPRIORITY 2 37.Os BSD 4 38.Sh NAME 39.Nm getpriority , 40.Nm setpriority 41.Nd get/set program scheduling priority 42.Sh SYNOPSIS 43.Fd #include <sys/time.h> 44.Fd #include <sys/resource.h> 45.Ft int 46.Fn getpriority "int which" "int who" 47.Ft int 48.Fn setpriority "int which" "int who" "int prio" 49.Sh DESCRIPTION 50The scheduling 51priority of the process, process group, or user, as indicated by 52.Fa which 53and 54.Fa who 55is obtained with the 56.Fn getpriority 57call and set with the 58.Fn setpriority 59call. 60.Fa Which 61is one of 62.Dv PRIO_PROCESS , 63.Dv PRIO_PGRP , 64or 65.Dv PRIO_USER , 66and 67.Fa who 68is interpreted relative to 69.Fa which 70(a process identifier for 71.Dv PRIO_PROCESS , 72process group 73identifier for 74.Dv PRIO_PGRP , 75and a user ID for 76.Dv PRIO_USER ) . 77A zero value of 78.Fa who 79denotes the current process, process group, or user. 80.Fa Prio 81is a value in the range -20 to 20. The default priority is 0; 82lower priorities cause more favorable scheduling. 83.Pp 84The 85.Fn getpriority 86call returns the highest priority (lowest numerical value) 87enjoyed by any of the specified processes. The 88.Fn setpriority 89call sets the priorities of all of the specified processes 90to the specified value. Only the super-user may lower priorities. 91.Sh RETURN VALUES 92Since 93.Fn getpriority 94can legitimately return the value -1, it is necessary 95to clear the external variable 96.Va errno 97prior to the 98call, then check it afterward to determine 99if a -1 is an error or a legitimate value. 100The 101.Fn setpriority 102call returns 0 if there is no error, or 103-1 if there is. 104.Sh ERRORS 105.Fn Getpriority 106and 107.Fn setpriority 108will fail if: 109.Bl -tag -width Er 110.It Bq Er ESRCH 111No process was located using the 112.Fa which 113and 114.Fa who 115values specified. 116.It Bq Er EINVAL 117.Fa Which 118was not one of 119.Dv PRIO_PROCESS , 120.Dv PRIO_PGRP , 121or 122.Dv PRIO_USER . 123.El 124.Pp 125.Bl -tag -width Er 126In addition to the errors indicated above, 127.Fn setpriority 128will fail if: 129.It Bq Er EPERM 130A process was located, but neither its effective nor real user 131ID matched the effective user ID of the caller. 132.It Bq Er EACCES 133A non super-user attempted to lower a process priority. 134.El 135.Sh SEE ALSO 136.Xr nice 1 , 137.Xr fork 2 , 138.Xr renice 8 139.Sh HISTORY 140The 141.Fn getpriority 142function call appeared in 143.Bx 4.2 . 144