.\" Copyright (c) 1980, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)getpriority.2 6.9 (Berkeley) 3/10/91 .\" .\" Modified Sat Jul 24 16:33:19 1993 by Rik Faith .\" Modified Mon Jul 1 21:59:57 1996 by Andries Brouwer .\" Modified Wed Nov 6 03:55:47 1996 by Eric S. Raymond .\" Modified, 21 Oct 01, Michael Kerrisk, .\" Corrected statement under EPERM to clarify privileges required .\" Modified, 21 Jun 02, Michael Kerrisk, .\" Clarified meaning of 0 value for 'who' argument .\" .\" Дата последней коррекции перевода 28.03.2005 .\" Перевод с английского сделал Виктор Вислобоков .\" http://www.linuxshare.ru/projects/trans/mans.html .\" .TH GETPRIORITY 2 2002-06-21 "BSD Man Page" "Руководство программиста Linux" .SH ИМЯ getpriority, setpriority \- получить/установить приоритет программы .SH ОБЗОР .B #include .br .B #include .sp .BI "int getpriority(int " which ", int " who ); .br .BI "int setpriority(int " which ", int " who ", int " prio ); .SH ОПИСАНИЕ Вызовом .B getpriority можно получить и вызовом .B setpriority можно установить приоритет планировщика для процесса, группы процесса или пользователя в зависимости от заданных значений .I which и .IR who . .I Which может принимать одно из значений .BR PRIO_PROCESS , .BR PRIO_PGRP , или .BR PRIO_USER , а .I who интерпретируется в зависимости от .I which (идентификатор процесса для .BR PRIO_PROCESS , группы процесса для .BR PRIO_PGRP , и идентификатор пользователя для .BR PRIO_USER ). Нулевое значение для .I who означает (соответственно) вызывающий процесс, группу вызывающего процесса или реальный идентификатор пользователя вызывающего процесса. .I Prio \- это значение в диапазоне от \-20 до 20 (см. замечания ниже). По умолчанию приоритет равен 0; более низкие значения соответствуют большему приоритету, который уделяет задаче планировщик. Вызов .B getpriority возвращает наивысший приоритет (наименьшее числовое значение), из приоритетов всех указанных процессов. Вызов .B setpriority устанавливает приоритеты всех указанных процессов в заданное значение. Только суперпользователь может устанавливать приоритет ниже нуля. .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Поскольку .B getpriority может возвращать значение \-1 как один из правильных результатов, необходимо очищать значение переменной .I errno перед этим вызовом и затем проверять его снова после вызова, чтобы определить, является ли \-1 ошибкой или результатом вызова. Вызов .B setpriority возвращает 0, если прошёл успешно или \-1, если завершился с ошибкой. .SH ОШИБКИ .TP .B ESRCH Не найдено процессов, которые заданы значениями .I which и .IR who . .TP .B EINVAL .I Which не является одним из значений .BR PRIO_PROCESS , .BR PRIO_PGRP , или .BR PRIO_USER . .PP В дополнение к вышеуказанным ошибкам, .B setpriority может завершиться неудачно, если: .TP .B EPERM Процесс был найден, но эффективному идентификатору пользователя этого процесса не соответствует заданный в вызове эффективный (или реальный) идентификатор пользователя. .TP .B EACCES Не-суперпользователь пытается назначить приоритет ниже нуля. .SH ЗАМЕЧАНИЯ Детали условия возникновения ошибки EPERM зависят от системы. Ниже дано описание, что по этому поводу говорит стандарт SUSv3 и далее что происходит на системах стандрта SYSV. Linux требует, чтобы реальный или эффективный идентификатор пользователя, производящего вызов совпадали с реальным идентификатором пользователя для процесса, указанного в \fIwho\fP (вместо эффективного идентификатора пользователя). Все BSD системы (SunOS 4.1.3, Ultrix 4.2, BSD 4.3, FreeBSD 4.3, OpenBSD-2.5, ...) требуют чтобы эффективный идентификатор пользователя, производящего вызов совпадал с реальным или эффективным идентифкатором пользователя для процесса, указанного в \fIwho\fP. .LP Фактический диапазон значений приоритета варьируется в зависимости от версий ядра. Linux до 1.3.36 имел диапазон значений -infinity..15. Linux начиная с 1.3.43 имеет диапазон значений -20..19 и системный вызов getpriority возвращает для этих значений величины 40..1 (отрицательные числа показывают код ошибки). Библиотечный вызов преобразует возвращаемое значение N в значение 20-N. .LP Включение заголовочного файла .I в настоящее время не требуется, но увеличивает переносимость, написанной программы. (В реальности, .I определяет структуру .I rusage с полями типа .IR struct timeval , которая определяется в .IR .) .SH "СООТВЕТСТВИЕ СТАНДАРТАМ" SVr4, 4.4BSD (эти вызовы впервые появились в 4.2BSD). .SH "СМОТРИ ТАКЖЕ" .BR nice (1), .BR fork (2), .BR renice (8) .SH ПЕРЕВОД Перевёл с английского Виктор Вислобоков 2005