The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

setpriority (2)
  • setpriority (2) ( FreeBSD man: Системные вызовы )
  • >> setpriority (2) ( Русские man: Системные вызовы )
  • setpriority (2) ( Linux man: Системные вызовы )
  • setpriority (3) ( POSIX man: Библиотечные вызовы )
  •  

    ИМЯ

    getpriority, setpriority - получить/установить приоритет программы  

    ОБЗОР

    #include <sys/time.h>
    #include <sys/resource.h>

    int getpriority(int which, int who);
    int setpriority(int which, int who, int prio);  

    ОПИСАНИЕ

    Вызовом getpriority можно получить и вызовом setpriority можно установить приоритет планировщика для процесса, группы процесса или пользователя в зависимости от заданных значений which и who. Which может принимать одно из значений PRIO_PROCESS, PRIO_PGRP, или PRIO_USER, а who интерпретируется в зависимости от which (идентификатор процесса для PRIO_PROCESS, группы процесса для PRIO_PGRP, и идентификатор пользователя для PRIO_USER). Нулевое значение для who означает (соответственно) вызывающий процесс, группу вызывающего процесса или реальный идентификатор пользователя вызывающего процесса. Prio - это значение в диапазоне от -20 до 20 (см. замечания ниже). По умолчанию приоритет равен 0; более низкие значения соответствуют большему приоритету, который уделяет задаче планировщик.

    Вызов getpriority возвращает наивысший приоритет (наименьшее числовое значение), из приоритетов всех указанных процессов. Вызов setpriority устанавливает приоритеты всех указанных процессов в заданное значение. Только суперпользователь может устанавливать приоритет ниже нуля.  

    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

    Поскольку getpriority может возвращать значение -1 как один из правильных результатов, необходимо очищать значение переменной errno перед этим вызовом и затем проверять его снова после вызова, чтобы определить, является ли -1 ошибкой или результатом вызова. Вызов setpriority возвращает 0, если прошёл успешно или -1, если завершился с ошибкой.  

    ОШИБКИ

    ESRCH
    Не найдено процессов, которые заданы значениями which и who.
    EINVAL
    Which не является одним из значений PRIO_PROCESS, PRIO_PGRP, или PRIO_USER.

    В дополнение к вышеуказанным ошибкам, setpriority может завершиться неудачно, если:

    EPERM
    Процесс был найден, но эффективному идентификатору пользователя этого процесса не соответствует заданный в вызове эффективный (или реальный) идентификатор пользователя.
    EACCES
    Не-суперпользователь пытается назначить приоритет ниже нуля.
     

    ЗАМЕЧАНИЯ

    Детали условия возникновения ошибки EPERM зависят от системы. Ниже дано описание, что по этому поводу говорит стандарт SUSv3 и далее что происходит на системах стандрта SYSV. Linux требует, чтобы реальный или эффективный идентификатор пользователя, производящего вызов совпадали с реальным идентификатором пользователя для процесса, указанного в who (вместо эффективного идентификатора пользователя). Все BSD системы (SunOS 4.1.3, Ultrix 4.2, BSD 4.3, FreeBSD 4.3, OpenBSD-2.5, ...) требуют чтобы эффективный идентификатор пользователя, производящего вызов совпадал с реальным или эффективным идентифкатором пользователя для процесса, указанного в who.

    Фактический диапазон значений приоритета варьируется в зависимости от версий ядра. Linux до 1.3.36 имел диапазон значений -infinity..15. Linux начиная с 1.3.43 имеет диапазон значений -20..19 и системный вызов getpriority возвращает для этих значений величины 40..1 (отрицательные числа показывают код ошибки). Библиотечный вызов преобразует возвращаемое значение N в значение 20-N.

    Включение заголовочного файла <sys/time.h> в настоящее время не требуется, но увеличивает переносимость, написанной программы. (В реальности, <sys/resource.h> определяет структуру rusage с полями типа structtimeval, которая определяется в <sys/time.h>.)  

    СООТВЕТСТВИЕ СТАНДАРТАМ

    SVr4, 4.4BSD (эти вызовы впервые появились в 4.2BSD).  

    СМОТРИ ТАКЖЕ

    nice(1), fork(2), renice(8)  

    ПЕРЕВОД

    Перевёл с английского Виктор Вислобоков <corochoone@perm.ru> 2005


     

    Index

    ИМЯ
    ОБЗОР
    ОПИСАНИЕ
    ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
    ОШИБКИ
    ЗАМЕЧАНИЯ
    СООТВЕТСТВИЕ СТАНДАРТАМ
    СМОТРИ ТАКЖЕ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру