tail head cat sleep
QR code linking to this page

manページ  — KENV

名称

kenv – カーネル環境

内容

ライブラリ

Standard C Library (libc, -lc)

書式

#include <kenv.h>

int
kenv(int action, const char *name, char *value, int len);

解説

kenv() システムコールはカーネル環境変数を操作します。 カーネル環境の中の全てのエントリをダンプする能力と同様に、ユーザランドで よく知られている環境変数を取得、設定、設定解除する動作をサポートしています。

action 引数は、以下の中の 1 つを取ることが可能です:
KENV_GET カーネル環境変数に関連付けられた値を返します。 その変数が見つからない場合には、-1 が返されグローバル変数 errnoENOENT に設定されます。 value に利用可能なバイト数のみがコピーされます。
KENV_SET 新しいカーネル環境変数を設定または追加します。 このオプションはスーパユーザのみ利用可能です。
KENV_UNSET
  カーネル環境変数 name を設定解除します。 その変数が見つからなかった場合には、-1 が返されグローバル変数 errnoEINVAL に設定されます。 このオプションはスーパユーザのみ利用可能です。
KENV_DUMP value を埋め尽くすだけのカーネル環境変数をダンプします。 value NULL の場合には、 kenv() は環境変数全体をコピーするために必要なバイト数を返すでしょう。

name 引数は作用されるべき環境変数の名前です。 KENV_DUMP の場合には、無視されます。

value 引数は、 KENV_SET の場合には環境変数 name に設定するべき値、または KENV_DUMP および KENV_GET の場合には kenv() が返すデータをコピーするべき場所を指し示す値、のどちらかを含みます。 value NULL KENV_DUMP の場合には、 kenv() は環境変数全体をコピーするために必要なバイト数を返すでしょう。

len 引数は value が指す記憶領域が何バイトかを示します。

戻り値

KENV_SET および KENV_UNSET で成功した場合には、 kenv() システムコールは 0 を返します。 KENV_DUMP および KENV_GET で成功した場合には、 value にコピーされたバイト数を返します。 エラーが発生した場合には、値 -1 が返されグローバル変数 errno がそのエラーを示すために設定されます。

エラー

kenv() システムコールは、以下の場合に失敗します:
[EINVAL]
  action 引数が有効なオプションではありません。または KENV_SET のための value 引数の長さが 1 未満です。
[ENOENT]
  KENV_SET または KENV_UNSET のための name の値が見つけられませんでした。
[EPERM]
  スーパユーザではないユーザがカーネル環境変数を設定または 設定解除しようとしました。
[EFAULT]
  ユーザ引数にコピーまたは値をコピーしようとしたときに、 不正なアドレスに遭遇しました。
[ENAMETOOLONG]
  ユーザによって与えられた変数の名前が KENV_MNAMELEN より長過ぎました、または変数の値が KENV_MVALLEN より長過ぎました。

関連項目

kenv(1)

作者

このマニュアルページは Chad David <davidc@FreeBSD.org> が書きました。

kenv() システムコールは Maxime Henrion <mux@FreeBSD.org> が書きました。


KENV (2) April 17, 2002

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

I'm not interested in developing a powerful brain. All I'm after is just a mediocre brain, something like the President of the American Telephone and Telegraph Company.
— Alan Turing