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 が返されグローバル変数 errno が ENOENT に設定されます。 value に利用可能なバイト数のみがコピーされます。
KENV_SET 新しいカーネル環境変数を設定または追加します。 このオプションはスーパユーザのみ利用可能です。
KENV_UNSET
  カーネル環境変数 name を設定解除します。 その変数が見つからなかった場合には、-1 が返されグローバル変数 errno が EINVAL に設定されます。 このオプションはスーパユーザのみ利用可能です。
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.

“ A typical Unix /bin or /usr/bin directory contains a hundred different kinds of programs, written by dozens of egotistical programmers, each with its own syntax, operating paradigm, rules of use ... strategies for specifying options, and different sets of constraints. ”
— The Unix Haters' handbook