Unix-system-calls-getpriority
[top]#
[[File:]]
[[File:]] |
|Web |This Site
- 初心者向けのUnix *
- Unix-ホーム
- Unix-はじめに
- Unix-ファイル管理
- Unix-ディレクトリ
- Unix-ファイル権限
- Unix-環境
- Unix-基本ユーティリティ
- Unix-パイプとフィルタ
- Unix-プロセス
- Unix-コミュニケーション
- Unix-The Vi Editor
- Unix Shellプログラミング*
- Unix-シェルとは?
- Unix-変数の使用
- Unix-特殊変数
- Unix-配列の使用
- Unix-基本的な演算子
- Unix-意思決定
- Unix-シェルループ
- Unix-ループ制御
- Unix-シェル置換
- Unix-引用メカニズム
- Unix-IOリダイレクト
- UNIX-シェル関数
- Unix-マンページヘルプ
- 高度なUnix *
- Unix-正規表現
- Unix-ファイルシステムの基本
- Unix-ユーザー管理
- Unix-システムパフォーマンス
- Unix-システムログ
- Unix-信号とトラップ
- Unixの便利なリファレンス*
- Unix-便利なコマンド
- Unix-クイックガイド
- Unix-組み込み関数
- Unix-システムコール
- Unix-コマンドリスト
- Unixの役立つリソース*
- Unix役立つリソース
選択した読書
Copyright©2014 by finddevguides
Home | References | Discussion Forums | About TP |
getpriority()-Unix、Linuxシステムコール
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]
広告
NAME
getpriority、setpriority-プログラムのスケジューリング優先度の取得/設定
概要
- #include <sys/time.h> * *#include <sys/resource.h> *
説明
_which_および_who_で示されるプロセス、プロセスグループ、またはユーザーのスケジューリング優先順位は、 getpriority ()呼び出しで取得され、 setpriority ()呼び出しで設定されます。
値_which_は PRIO_PROCESS 、 PRIO_PGRP 、または PRIO_USER のいずれかであり、who_は_which( PRIO_PROCESS のプロセスID、 PRIO_PGRP のプロセスグループID、および PRIO_USERのユーザーIDに対して相対的に解釈されます。 )。 _who_のゼロ値は、(それぞれ)呼び出しプロセス、呼び出しプロセスのプロセスグループ、または呼び出しプロセスの実際のユーザーIDを示します。 _Prio_は、-20〜19の範囲の値です(ただし、以下の注を参照してください)。 デフォルトの優先度は0です。優先順位が低いと、より有利なスケジューリングが行われます。
返り値
エラー
Tag
説明
_which_は、 PRIO_PROCESS 、 PRIO_PGRP 、または PRIO_USER のいずれでもありませんでした。
指定された_which_および_who_値を使用してプロセスが見つかりませんでした。
上記のエラーに加えて、 setpriority ()は次の場合に失敗する可能性があります。
プロセスは見つかりましたが、その実効ユーザーIDは呼び出し元の実効ユーザーIDまたは実ユーザーIDのいずれとも一致せず、特権もありません(Linuxの場合: CAP_SYS_NICE 機能がありませんでした)。 しかし、下記の注を参照してください。
呼び出し元はプロセスの優先度を下げようとしましたが、必要な特権を持っていませんでした(Linuxの場合: CAP_SYS_NICE 機能を持っていませんでした)。 Linux 2.6.12以降、このエラーは、呼び出し元がターゲットプロセスの RLIMIT_NICE ソフトリソース制限の範囲外のプロセス優先度を設定しようとした場合にのみ発生します。詳細については、 getrlimit (2)を参照してください。
ノート
EPERMの条件の詳細は、システムによって異なります。 上記の説明はPOSIX.1-2001が述べていることであり、すべてのSystem Vに似たシステムで守られているようです。 2.6.12より前のLinuxカーネルでは、呼び出し元の実際のユーザーIDまたは有効なユーザーIDが、プロセスの実際のユーザー_who_(有効なユーザーIDではなく)と一致する必要がありました。 Linux 2.6.12以降では、呼び出し元の実効ユーザーIDがプロセス_who_の実際のユーザーIDまたは実効ユーザーIDと一致する必要があります。 すべてのBSD系システム(SunOS 4.1.3、Ultrix 4.2、4.3BSD、FreeBSD 4.3、OpenBSD-2.5、…)は、Linux> = 2.6.12と同じように動作します。
実際の優先順位の範囲は、カーネルのバージョンによって異なります。 1.3.36より前のLinuxには-infinity..15がありました。 カーネル1.3.43以降、Linuxの範囲は-20..19です。 カーネル内では、ナイス値は対応する範囲40..1を使用して実際に表されます(負の数はエラーコードであるため)。これらは setpriority ()および getpriority ()システムコールで使用される値です。 これらのシステムコールのglibcラッパー関数は、式_unice = 20-knice_に従って、nice値のユーザーランド表現とカーネル表現の間の変換を処理します。
一部のシステムでは、nice値の範囲は-20..20です。
_ <sys/time.h> を含めることは最近では必要ありませんが、移植性が向上します。 (実際、 <sys/resource.h> は、 <sys/time.h> _で定義されている_struct timeval_型のフィールドを持つ_rusage_構造体を定義します。)
準拠
SVr4、4.4BSD(これらの関数呼び出しは4.2BSDで初めて登場)、POSIX.1-2001。
関連項目
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]
広告
Advertisements |