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.

This philosophy, in the hands of amateurs, leads to inexplicably mind-numbing botches like the existence of two programs, “head” and “tail,” which print the first part or the last part of a file, depending. Even though their operations are duals of one another, “head” and “tail” are different programs, written by different authors, and take different options!
— The Unix Haters' handbook