sys_parm サブルーチン
目的
カーネル・ランタイム・チューナブル・パラメーターを検査または設定するためのサービスを提供します。
ライブラリー
標準 C ライブラリー (libc.a)
構文
説明
sys_parm サブルーチンは、ランタイム・オペレーティング・システム・パラメーターを照会またはカスタマイズ (あるいはその両方) するために使用されます。
注: これは、 var 構造体の情報の照会または変更に関する sysconfig の代替サービスです。 audit サブルーチンまたはコマンドは、 var 構造体に対する変更を監査するために使用できます。
sys_parm サブルーチンは、次のことを行います。
- 32 ビット・プラットフォームと 64 ビット・プラットフォームの両方で機能します。
- 使用するには適切な特権が必要です。
以下の操作がサポートされます。
| 項目 | 説明 |
|---|---|
| SYSP_GET (SYSP_GET) | var 構造体で検出された、指定されたランタイム・パラメーターの現行値を含む構造体を戻します。 |
| SYSP_SET (SYSP_SET) | 指定されたランタイム・パラメーターの値を設定します。 |
返されるか設定される可能性のあるランタイム・パラメーターは、 var.h で定義されている var 構造体にあります。
パラメーター
| 項目 | 説明 |
|---|---|
| cmd | SYSP_GET または SYSP_SET 関数を指定します。 |
| パラメーター・フラグ | 関数が実行されるパラメーターを指定します。 |
| パラメーター | システム・パラメーター値のコピー元またはコピー先となるユーザー指定の構造を指します。 parmp は、 var.hで定義されている vario 型の構造体を指します。 |
vario 構造体は、各フィールドがサイズ不変である var 構造体のさまざまなフィールドを抽象化したものです。 データのサイズは、カーネルの実行環境が 32 ビットまたは 64 ビットであるか、呼び出し側アプリケーションが 32 ビットまたは 64 ビットであるかに依存しません。
例
- v.v_iostrun の値を調べます (ディスク使用量統計を収集します)。
#include <sys/var.h> #include <stdio.h> struct vario myvar; rc=sys_parm(SYSP_GET,SYSP_V_IOSTRUN,&myvar); if(rc==0) printf("v.v_iostrun is set to %d\n",myvar.v.v_iostrun.value); - v.v_iostrun の値を変更する (ディスク使用状況統計を収集する)。
#include <sys/var.h> #include <stdio.h> struct vario myvar; myvar.v.v_iostrun.value=0; /* initialize to false */ rc=sys_parm(SYSP_SET,SYSP_V_IOSTRUN,&myvar); if(rc==0) printf("disk usage statistics are not being collected\n");
その他のパラメーターは、parmflag パラメーターを変更することによって検査または設定することができます。
戻り値
これらの操作は、サブルーチンの正常終了時に値 0 を戻します。 そうでなければ-1が返され、エラーを示すerrnoグローバル変数が設定される。
エラー・コード
| 項目 | 説明 |
|---|---|
| EACCES | 呼び出しプロセスに必要な特権がありません。 |
| EINVAL | 次の1つが起こっています。
|
| EFAULT | parmp パラメーターによって無効なアドレスが指定されました。 |
ファイル
| 項目 | 説明 |
|---|---|
| sys/var.h | 構造体定義が入っています。 |