doc/ja_JP.eucJP/man/man3/sysctl.3
Kazuo Horikawa cb5d1a9147 Replace jpman project specific RCS keyword with $FreeBSD.
jpman project specific RCS keyword (jpman %Id) is obsolete,
after manual entries are stored in freefall CVS repository.
This old Id is useless and more worse it confuses users and bug reporters.
So, this old Id is removed.

Submitted by:jpman project <man-jp@jp.FreeBSD.org>
2001-05-14 01:10:24 +00:00

889 lines
23 KiB
Groff

.\" Copyright (c) 1993
.\" The Regents of the University of California. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by the University of
.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" @(#)sysctl.3 8.4 (Berkeley) 5/9/95
.\"
.\" $FreeBSD$
.Dd May 9, 1995
.Dt SYSCTL 3
.Os
.Sh 名称
.Nm sysctl ,
.Nm sysctlbyname
.Nd システム情報を取得または設定
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <sys/sysctl.h>
.Ft int
.Fn sysctl "int *name" "u_int namelen" "void *oldp" "size_t *oldlenp" "void *newp" "size_t newlen"
.Ft int
.Fn sysctlbyname "const char *name" "void *oldp" "size_t *oldlenp" "void *newp" "size_t newlen"
.Sh 解説
.Fn sysctl
関数はシステム情報を取り出し、該当する特権のあるプロセスが
システム情報を設定できるようにします。
.Fn sysctl
で利用できる情報は、整数、
ストリング、およびテーブルで構成されます。情報は、
.Xr sysctl 8
ユーティリティ
を使用してコマンドインタフェースから取り出しおよび設定できます。
.Pp
以降で明確に記載した場合を除いて、
.Fn sysctl
は、要求されたデータの一貫した
スナップショットを返します。一貫性を保つために、メモリへの宛先バッファが
ロックされるので、データはブロックなしにコピーできます。
.Fn sysctl
の呼び出しはデッドロックを回避するためにシリアル化されています。
.Pp
状態は ``管理情報ベース'' (Management Information Base、MIB)
スタイルの名前を使用して記述され、
.Fa name
にリストされます。
.Fa name
は長さが
.Fa namelen
の整数の配列です。
.Pp
.Fn sysctlbyname
関数は、名前の
ASCII
表現を受け入れ、整数の名前ベクトルを
内部的に検索します。それ以外は、標準の
.Fn sysctl
関数と同じように機能します。
.Pp
情報は
.Fa oldp
で指定したバッファにコピーされます。バッファのサイズは、呼び
出しの前に
.Fa oldlenp
で指定した位置で与えられます。この位置は、呼び出しが
正常に完了した後およびエラーコード
ENOMEM
で返った後にコピーされるデータの
量を与えます。利用できるデータの量が指定のバッファサイズより大きい場合、
呼び出しは、指定バッファにちょうど入る量のデータだけを与え、エラーコード
ENOMEM
で返ります。古い値が不要な場合は、
.Fa oldp
.Fa oldlenp
NULL
設定してください。
.Pp
利用できるデータのサイズを決定するには、
.Fa oldp
NULL
パラメータを指定して
.Fn sysctl
を呼び出します。利用できるデータのサイズが、
.Fa oldlenp
の指す位置に
返されます。操作によっては空間の量が頻繁に変化することがあります。
そのような操作の場合、システムは量を切り上げようとします。返されたサイズ
が、その後まもなくデータを返す呼び出しに十分であるようにするためです。
.Pp
新しい値を設定するため、
.Fa newp
は、長さが
.Fa newlen
のバッファを指すように
設定されます。このバッファから、要求された値が取得されます。新しい値が
設定されないと、
.Fa newp
NULL
に設定され、
.Fa newlen
0 に設定されます。
.Pp
一番上のレベルの名前は
.Pa <sys/sysctl.h>
CTL_
接頭語付きで定義されます。
次のとおりです。次のレベルおよびそれ以下のレベルは、ここにリストする
インクルードファイル内にあり、以降の個別のセクションで説明します。
.Pp
.Bl -column CTLXMACHDEPXXX "Next level namesXXXXXX" -offset indent
.It Sy Pa 名前 次のレベル名 解説
.It CTL\_DEBUG sys/sysctl.h デバッグ
.It CTL\_VFS sys/mount.h ファイルシステム
.It CTL\_HW sys/sysctl.h 一般的な CPU、I/O
.It CTL\_KERN sys/sysctl.h カーネルの最高限界
.It CTL\_MACHDEP sys/sysctl.h マシン依存
.It CTL\_NET sys/socket.h ネットワーキング
.It CTL\_USER sys/sysctl.h ユーザレベル
.It CTL\_VM vm/vm_param.h 仮想メモリ
.El
.Pp
たとえば、システムで許容されるプロセスの最大数を取り出す方法は
次のとおりです。
.Pp
.Bd -literal -offset indent -compact
int mib[2], maxproc;
size_t len;
mib[0] = CTL_KERN;
mib[1] = KERN_MAXPROC;
len = sizeof(maxproc);
sysctl(mib, 2, &maxproc, &len, NULL, 0);
.Ed
.Pp
システムユーティリティの標準検索パスを取り出す方法は次のとおりです。
.Pp
.Bd -literal -offset indent -compact
int mib[2];
size_t len;
char *p;
mib[0] = CTL_USER;
mib[1] = USER_CS_PATH;
sysctl(mib, 2, NULL, &len, NULL, 0);
p = malloc(len);
sysctl(mib, 2, p, &len, NULL, 0);
.Ed
.Sh CTL_DEBUG
デバッグ変数はシステムごとにさまざまです。デバッグ変数を追加または
削除するとき、それを認識するように
.Fn sysctl
をコンパイルし直す必要はありません。実行のたびに、
.Fn sysctl
が、カーネルからデバッグ変数の
リストを取得し、その現在値を表示するからです。システムは
20 個の
.Ns ( Va struct ctldebug )
変数を定義します。これらは
.Nm debug0
から
.Nm debug19
という
名前になります。これらは別個の変数として宣言されるので、対応変数の位置で
個別に初期化できます。ローダーは、変数が複数の場所で初期化されたときは
エラーを出して、同じ変数が複数に使用されるのを回避します。たとえば、変数
.Nm dospecialcheck
をデバッグ変数としてエクスポートする場合には、次の宣言が
使用できます。
.Bd -literal -offset indent -compact
int dospecialcheck = 1;
struct ctldebug debug5 = { "dospecialcheck", &dospecialcheck };
.Ed
.Sh CTL_VFS
明瞭な第
2 レベルの名称
VFS_GENERIC
は、すべてのファイルシステムに関する
一般情報を取得するのに使用します。これの第
3 レベルの識別子の
1 つは
VFS_MAXTYPENUM
で、最も大きいファイルシステムタイプの番号を与えます。別の
3 レベルの識別子は
VFS_CONF
で、第
4 レベルの識別子として与えられた
ファイルシステムタイプに関する構成を返します
(
使用法の例は
.Xr getvfsbyname 3
を参照
)
。残りの第
2 レベルの識別子は、
.Xr statfs 2
呼び出しまたは
VFS_CONF
返すファイルシステムタイプ番号です。各ファイルシステムについて利用できる第
3 レベルの識別子は、そのファイルシステムのマウント引数構造を定義する
ヘッダファイルで指定されます。
.Sh CTL_HW
CTL_HW
レベルに関して利用できるストリングと整数については以下で詳しく
説明します。変更可能性の列は、適切な特権のあるプロセスが値を
変更できるかどうかを示します。
.Bl -column "Second level nameXXXXXX" integerXXX -offset indent
.It Sy Pa 2 レベル名 タイプ 変更可能
.It HW\_MACHINE ストリング いいえ
.It HW\_MODEL ストリング いいえ
.It HW\_NCPU 整数 いいえ
.It HW\_BYTEORDER 整数 いいえ
.It HW\_PHYSMEM 整数 いいえ
.It HW\_USERMEM 整数 いいえ
.It HW\_PAGESIZE 整数 いいえ
.It HW\_FLOATINGPOINT 整数 いいえ
.It HW\_MACHINE\_ARCH ストリング いいえ
.\".It HW\_DISKNAMES 整数 いいえ
.\".It HW\_DISKSTATS 整数 いいえ
.El
.Pp
.Bl -tag -width "123456"
.It Li HW_MACHINE
マシンクラス
.It Li HW_MODEL
マシンモデル
.It Li HW_NCPU
CPU
の数
.ne 1i
.It Li HW_BYTEORDER
バイト順
(4,321、または 1,234)
.It Li HW_PHYSMEM
物理メモリのバイト
.It Li HW_USERMEM
カーネルでないメモリのバイト
.It Li HW_PAGESIZE
ソフトウェアのページサイズ
.It Li HW_FLOATINGPOINT
浮動小数点サポートがハードウェアにある場合はゼロでない
.It Li HW_MACHINE_ARCH
マシンはアーキテクチャタイプに依存
.\".It Fa HW_DISKNAMES
.\".It Fa HW_DISKSTATS
.El
.Sh CTL_KERN
CTL_KERN
レベルに関して利用できるストリングと整数の情報について以下に詳しく
説明します。変更可能性の列は、該当する特権のあるプロセスが値を
変更するかどうかを示します。現時点で利用できるデータのタイプは、
プロセス情報、システム
vnode、開いたファイルのエントリ、
ルーティングテーブルのエントリ、仮想メモリ統計、負荷平均履歴、および
クロックレート情報です。
.Pp
.Bl -column "KERNXMAXFILESPERPROCXXX" "struct clockrateXXX" -offset indent
.It Sy Pa 2 レベル名 タイプ 変更可能
.It KERN\_ARGMAX 整数 いいえ
.It KERN\_BOOTFILE ストリング はい
.It KERN\_BOOTTIME struct timeval いいえ
.It KERN\_CLOCKRATE struct clockinfo いいえ
.It KERN\_FILE struct file いいえ
.It KERN\_HOSTID 整数 はい
.It KERN\_HOSTNAME ストリング はい
.It KERN\_JOB\_CONTROL 整数 いいえ
.It KERN\_MAXFILES 整数 はい
.It KERN\_MAXFILESPERPROC 整数 はい
.It KERN\_MAXPROC 整数 いいえ
.It KERN\_MAXPROCPERUID 整数 はい
.It KERN\_MAXVNODES 整数 はい
.It KERN\_NGROUPS 整数 いいえ
.It KERN\_NISDOMAINNAME ストリング はい
.It KERN\_OSRELDATE 整数 いいえ
.It KERN\_OSRELEASE ストリング いいえ
.It KERN\_OSREV 整数 いいえ
.It KERN\_OSTYPE ストリング いいえ
.It KERN\_POSIX1 整数 いいえ
.It KERN\_PROC struct proc いいえ
.It KERN\_PROF node 適用不可
.It KERN\_SAVED\_IDS 整数 いいえ
.It KERN\_SECURELVL 整数 累乗のみ
.It KERN\_UPDATEINTERVAL 整数 いいえ
.It KERN\_VERSION ストリング いいえ
.It KERN\_VNODE struct vnode いいえ
.El
.ne 1i
.Pp
.Bl -tag -width "123456"
.It Li KERN_ARGMAX
.Xr execve 2
への引数の最大バイト数
.It Li KERN_BOOTFILE
カーネルがロードされた元のファイルの完全なパス名
.It Li KERN_BOOTTIME
.Va struct timeval
構造が返されます。この構造には、システムが起動された時刻が
入れられます。
.It Li KERN_CLOCKRATE
.Va struct clockinfo
構造が返されます。この構造には、クロック、統計クロック、
およびプロファイル化クロック頻度、マイクロ秒
/hz
チック、およびねじれレート
が入れられます。
.It Li KERN_FILE
ファイルテーブル全体を返します。返されたデータは、
1 つの
.Va struct filehead
.Va struct file
の配列が続いたものになります。ファイルのサイズは、
システム内のそのようなオブジェクトの現在の数で決まります。
.It Li KERN_HOSTID
ホスト
ID
を取得または設定します。
.It Li KERN_HOSTNAME
ホスト名を取得または設定します。
.It Li KERN_JOB_CONTROL
このシステムで情報制御が利用できる場合は
1 を返します。そうでない場合は
0 を返します。
.It Li KERN_MAXFILES
システムで開けるファイルの最大数
.It Li KERN_MAXFILESPERPROC
1 つのプロセスについて開けるファイルの最大数。この制限が適用されるのは、
開くという要求があった時点で、ゼロでない有効な
uid
のあるプロセスだけです。
制限または有効な
uid
が変更されても、既に開かれているファイルは影響を受けません。
.It Li KERN_MAXPROC
システム内で許される同時プロセスの最大数
.It Li KERN_MAXPROCPERUID
1 つの有効な
uid
についてシステムが許容する同時プロセスの最大数。この限界が
適用されるのは、フォーク要求の時点で、ゼロでない有効な
uid
のあるプロセス
だけです。限界が変更されても、既に開始されているプロセスは影響を
受けません。
.It Li KERN_MAXVNODES
システムで利用できる
vnode
の最大数
.It Li KERN_NGROUPS
補充グループの最大数
.It Li KERN_NISDOMAINNAME
現在の
YP/NIS
ドメインの名前
.It Li KERN_OSRELDATE
システムのリリース日付。形式は
YYYYMM (1996
1 月は
199601 と
コード化されます
)。
.It Li KERN_OSRELEASE
システムリリースストリング
.It Li KERN_OSREV
システム改訂ストリング
.It Li KERN_OSTYPE
システムタイプストリング
.It Li KERN_POSIX1
システムが準拠しようとしている
ISO/IEC 9945 (POSIX 1003.1)
のバージョン
.It Li KERN_PROC
プロセステーブル全体またはそのサブセットを返します。
.Va struct kinfo_proc
構造の配列が返され、配列のサイズはシステム内のそのようなオブジェクトの
現在の数で決まります。第
3 レベルと第
4 レベルは次のとおりです。
.Bl -column "Third level nameXXXXXX" "Fourth level is:XXXXXX" -offset indent
.It Pa 3 レベル名 4 レベル名
.It KERN\_PROC\_ALL なし
.It KERN\_PROC\_PID プロセス ID
.It KERN\_PROC\_PGRP プロセスグループ
.It KERN\_PROC\_TTY tty デバイス
.It KERN\_PROC\_UID ユーザ ID
.It KERN\_PROC\_RUID リアルユーザ ID
.El
.It Li KERN_PROF
カーネルに関するプロファイル化情報を返します。カーネルをプロファイル化用に
コンパイルしないと、
KERN_PROF
値を取り出そうとしても、
EOPNOTSUPP
で処理は失敗します。ストリング用の第
3 レベル名および整数プロファイル化情報について
以下に詳しく説明します。
(
変更可能性の列は、該当する特権のあるプロセスが値を
変更できるかどうかを示します。
.Bl -column "GPROFXGMONPARAMXXX" "struct gmonparamXXX" -offset indent
.It Sy Pa 3 レベル名 タイプ 変更可能
.It GPROF\_STATE 整数 はい
.It GPROF\_COUNT u_short[\|] はい
.It GPROF\_FROMS u_short[\|] はい
.It GPROF\_TOS struct tostruct はい
.It GPROF\_GMONPARAM struct gmonparam いいえ
.El
.Pp
変数は次のとおりです。
.Bl -tag -width "123456"
.It Li GPROF_STATE
GMON_PROF_ON
または
GMON_PROF_OFF
を返して、プロファイル化が
進行中であるか、または停止しているかを示します。
.It Li GPROF_COUNT
統計プログラムカウンタカウントの配列
.It Li GPROF_FROMS
呼び出し点のプログラムカウントでインデックス処理された配列
.It Li GPROF_TOS
呼び出しの宛先とそのカウントを記述する
.Va struct tostruct
の配列
.It Li GPROF_GMONPARAM
上記の配列のサイズを指定する構造
.El
.ne 1i
.It Li KERN_SAVED_IDS
保存された
set-group
および保存された
set-user ID
が利用できる場合は
1 を
返します。
.It Li KERN_SECURELVL
システムのセキュリティレベル。このレベルは、該当する特権のあるプロセス
によって上げることができます。下げることはできません。
.It Li KERN_VERSION
システムバージョンストリング
.It Li KERN_VNODE
vnode
テーブル全体を返します。
vnode
テーブルは必ずしもシステムの一貫した
スナップショットではないことに注意してください。返されるデータは配列で
構成され、配列のサイズは、システム内のそのようなオブジェクトの現在の数で
決まります。配列の各要素に含まれるのは、
vnode
のカーネルアドレス
.Va struct vnode *
vnode
自体
.Va struct vnode
が続いたものです。
.It Li KERN_UPDATEINTERVAL
.Xr update 4
プロセス内の
.Xr sync 2
呼び出しの間の間隔
.El
.Sh CTL_MACHDEP
定義された変数の集合はアーキテクチャに依存します。次の変数が
i386
アーキテクチャ用に定義されています。
.Bl -column "CONSOLE_DEVICEXXX" "struct bootinfoXXX" -offset indent
.It Sy Pa 2 レベル名 タイプ 変更可能
.It Li CPU\_CONSDEV dev_t いいえ
.It Li CPU\_ADJKERNTZ int はい
.It Li CPU\_DISRTCSET int はい
.It Li CPU\_BOOTINFO struct bootinfo いいえ
.It Li CPU\_WALLCLOCK int はい
.El
.Sh CTL_NET
CTL_NET
レベルに利用できるストリングと整数については以下に詳しく
説明します。変更可能性の列は、該当する特権のあるプロセスが値を
変更できるかどうかを示します。
.Bl -column "Second level nameXXXXXX" "routing messagesXXX" -offset indent
.It Sy Pa 2 レベル名 タイプ 変更可能
.It PF\_ROUTE ルーティングメッセージ いいえ
.It PF\_INET インターネット値 はい
.El
.Pp
.Bl -tag -width "123456"
.It Li PF_ROUTE
ルーティングテーブル全体またはそのサブセットを返します。データは、
ルーティングメッセージのシーケンスとして返されます
(
ヘッダファイル、形式、
および意味については
.Xr route 4
を参照
)。各メッセージの長さはメッセージヘッダ
に組み込まれています。
.Pp
3 レベル名はプロトコル番号で、現時点では必ず
0 です。第
4 レベル名は
アドレスファミリで、これを
0 に設定するとすべてのアドレスファミリを
選択できます。第
5 レベル名と第
6 レベル名は次のとおりです。
.Bl -column "Fifth level nameXXXXXX" "Sixth level is:XXX" -offset indent
.It Pa 5 レベル名 6 レベル
.It NET_RT_FLAGS rtflags
.It NET_RT_DUMP なし
.It NET_RT_IFLIST なし
.El
.It Li PF_INET
インターネットプロトコルに関する各種のグローバルな情報を取得または
設定します。第
3 レベル名はプロトコルです。第
4 レベル名は変数名です。
現時点で定義されているプロトコルと名前は次のとおりです。
.ne 1i
.Bl -column ProtocolXX VariableXX TypeXX ChangeableXX
.It Pa プロトコル 変数 タイプ 変更可能
.It icmp bmcastecho 整数 はい
.It icmp maskrepl 整数 はい
.It ip forwarding 整数 はい
.It ip redirect 整数 はい
.It ip ttl 整数 はい
.It udp checksum 整数 はい
.El
.Pp
変数は次のとおりです。
.Bl -tag -width "123456"
.It Li icmp.bmcastecho
ブロードキャストまたはマルチキャストのアドレスへの
ICMP
エコー要求が
応答される必要がある場合は
1 を返します。
.It Li icmp.maskrepl
ICMP
ネットワークマスク要求が応答される必要がある場合は
1 を返します。
.It Li ip.forwarding
IP
転送がホストについて有効なときは
1 を返します。つまり、ホストがルーター
として機能しているときです。
.It Li ip.redirect
ICMP
再転送がホストによって送信できるときは
1 を返します。このオプション
は、ホストが
IP
パケットをルーティングしていない場合は無視されます。また、
このオプションは通常、すべてのシステムで有効にしておく必要があります。
.It Li ip.ttl
システムがソースになっている
IP
パケットの最大寿命
(
ホップ数
)
値。この値は
通常のトランスポートプロトコルに適用されます。
ICMP
にではありません。
.It Li udp.checksum
UDP
チェックサムが計算およびチェックされているときは
1 を返します。
UDP
チェックサムは無効にしておくことを強くお勧めします。
.El
.Sh CTL_USER
CTL_USER
レベルに利用できるストリングと整数について以下に詳しく説明します。
変更可能性の列は、該当する特権のあるプロセスが値を変更できるかどうかを
示します。
.Bl -column "USER_COLL_WEIGHTS_MAXXXX" "integerXXX" -offset indent
.It Sy Pa 2 レベル名 タイプ 変更可能
.It USER\_BC\_BASE\_MAX 整数 なし
.It USER\_BC\_DIM\_MAX 整数 なし
.It USER\_BC\_SCALE\_MAX 整数 なし
.It USER\_BC\_STRING\_MAX 整数 なし
.It USER\_COLL\_WEIGHTS\_MAX 整数 なし
.It USER\_CS\_PATH ストリング なし
.It USER\_EXPR\_NEST\_MAX 整数 なし
.It USER\_LINE\_MAX 整数 なし
.It USER\_POSIX2\_CHAR\_TERM 整数 なし
.It USER\_POSIX2\_C\_BIND 整数 なし
.It USER\_POSIX2\_C\_DEV 整数 なし
.It USER\_POSIX2\_FORT\_DEV 整数 なし
.It USER\_POSIX2\_FORT\_RUN 整数 なし
.It USER\_POSIX2\_LOCALEDEF 整数 なし
.It USER\_POSIX2\_SW\_DEV 整数 なし
.It USER\_POSIX2\_UPE 整数 なし
.It USER\_POSIX2\_VERSION 整数 なし
.It USER\_RE\_DUP\_MAX 整数 なし
.It USER\_STREAM\_MAX 整数 なし
.It USER\_TZNAME\_MAX 整数 なし
.El
.Bl -tag -width "123456"
.Pp
.It Li USER_BC_BASE_MAX
.Xr bc 1
ユーティリティ内の最大
ibase/obase
.It Li USER_BC_DIM_MAX
.Xr bc 1
ユーティリティ内の最大配列サイズ
.It Li USER_BC_SCALE_MAX
.Xr bc 1
ユーティリティ内の最大スケール値
.It Li USER_BC_STRING_MAX
.Xr bc 1
ユーティリティ内の最大ストリング長
.It Li USER_COLL_WEIGHTS_MAX
ロケール定義ファイル内の
LC_COLLATE
順序キーワードのエントリに割り
当てできる重みの最大数
.It Li USER_CS_PATH
すべての標準ユーティリティを検出する環境変数
.Ev PATH
の値を返します。
.It Li USER_EXPR_NEST_MAX
.Xr expr 1
ユーティリティによって、丸括弧内にネストできる式の最大数
.It Li USER_LINE_MAX
テキスト処理ユーティリティ入力行の最大長
(
バイト単位
)
.It Li USER_POSIX2_CHAR_TERM
POSIX 1003.2
に記述されたすべての操作ができる少なくとも
1 つの端末タイプを
システムがサポートする場合は
1 を返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_C_BIND
システムの
C
言語開発機能が、
C
言語バインディングオプションをサポートする
場合は
1 を返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_C_DEV
システムが
C
言語開発ユーティリティオプションをサポートする場合は
1 を
返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_FORT_DEV
システムが
FORTRAN
開発ユーティリティオプションをサポートする場合は
1 を
返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_FORT_RUN
システムが
FORTRAN
ランタイムユーティリティオプションをサポートする場合は
1 を返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_LOCALEDEF
システムがロケールの作成をサポートする場合は
1 を返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_SW_DEV
システムがソフトウェア開発ユーティリティオプションをサポートする場合は
1 を
返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_UPE
システムがユーザポータビリティ・ユーティリティオプションをサポートする
場合は
1 を返します。そうでない場合は
0 を返します。
.It Li USER_POSIX2_VERSION
システムが準拠しようとしている
POSIX 1003.2
のバージョン
.It Li USER_RE_DUP_MAX
間隔表記を使用しているときに、許容される正規表現の反復発生の最大数
.ne 1i
.It Li USER_STREAM_MAX
プロセスが同時に開いておけるストリームの最大数の最小
.It Li USER_TZNAME_MAX
時間帯の名前についてサポートされるタイプの最大数の最小
.El
.Sh CTL_VM
CTL_VM
レベルで利用できるストリングと整数について以下で詳しく説明します。
変更可能性の列は、該当する特権のあるプロセスが値を変更できるかどうかを
示します。
.Bl -column "Second level nameXXXXXX" "struct loadavgXXX" -offset indent
.It Sy Pa 2 レベル名 タイプ 変更可能
.It VM\_LOADAVG struct loadavg いいえ
.It VM\_METER struct vmtotal いいえ
.It VM\_PAGEOUT\_ALGORITHM 整数 はい
.It VM\_SWAPPING\_ENABLED 整数 おそらく
.It VM\_V\_CACHE\_MAX 整数 はい
.It VM\_V\_CACHE\_MIN 整数 はい
.It VM\_V\_FREE\_MIN 整数 はい
.It VM\_V\_FREE\_RESERVED 整数 はい
.It VM\_V\_FREE\_TARGET 整数 はい
.It VM\_V\_INACTIVE\_TARGET 整数 はい
.It VM\_V\_PAGEOUT\_FREE\_MIN 整数 はい
.El
.Pp
.Bl -tag -width "123456"
.It Li VM_LOADAVG
負荷平均履歴を返します。返されたデータは
.Va struct loadavg
で構成されます。
.It Li VM_METER
システム全体に渡る仮想メモリ統計を返します。返されたデータは
.Va struct vmtotal
で構成されます。
.It Li VM_PAGEOUT_ALGORITHM
統計ベースの管理アルゴリズムが使用される場合は
0 です。
近 LRU
( near-LRU )
アルゴリズムが使用される場合は
1 です。
.It Li VM_SWAPPING_ENABLED
プロセススワップが有効な場合は
1 です。無効な場合は
0 です。スワップを
無効にしてカーネルが構築された場合、この変数は永続的に
0 に設定されます。
.It Li VM_V_CACHE_MAX
キャッシュ待ち行列の最大希望サイズ
.It Li VM_V_CACHE_MIN
キャッシュ待ち行列の最小希望サイズ。キャッシュ待ち行列のサイズがこの
値よりはるかに低いと、ページアウトデーモンが起動されます。
.It Li VM_V_FREE_MIN
メモリを待っているプロセスが起動する前に、利用できるようになる必要のある
メモリの最小量
(
キャッシュメモリ+空きメモリ
)。
.It Li VM_V_FREE_RESERVED
空きページとキャッシュページがこの値より低いと、プロセスは
ページアウトデーモンを起動し、メモリを待機します。
.It Li VM_V_FREE_TARGET
ページアウトデーモンが維持しようとする空きメモリの合計量
(
キャッシュメモリを
含む
)。
.It Li VM_V_INACTIVE_TARGET
ページアウトデーモンが、実行されるときに、到達する必要のあるアクティブ
でないページの希望数。アクティブでないページは、必要なときに、
プロセスアドレス内に素早く挿入できます。
.It Li VM_V_PAGEOUT_FREE_MIN
空きメモリとキャッシュメモリの量がこの値より低い場合、ページアウトデーモン
はデッドロックを避けるために "メモリ維持モード" に入ります。
.El
.Sh 戻り値
.Fn sysctl
.Fn sysctlbyname
は正常に完了したとき
0 を返します。そうでない
場合は
\-1 が返され、
.Va errno
が適宜設定されます。
.Sh エラー
次のエラーが報告される可能性があります。
.Bl -tag -width Er
.It Bq Er EFAULT
バッファ
.Fa name、
.Fa oldp、
.Fa newp、または長さポインタ
.Fa oldlenp
に無効な
アドレスが含まれています。
.It Bq Er EINVAL
.Fa name
配列が
2 未満であるか、または
CTL_MAXNAME
より大きくなっています。
.It Bq Er EINVAL
NULL
でない
.Fa newp
が指定され、
.Fa newlen
内の指定の長さが
大きすぎるかまたは小さすぎます。
.It Bq Er ENOMEM
.Fa oldlenpis
が指す長さが短すぎて、要求された値を保持できません。
.It Bq Er ENOTDIR
.Fa name
配列が、端の名前ではなく、中間の名前を指定しています。
.It Bq Er EOPNOTSUPP
.Fa name
配列が未知の値を指定しています。
.It Bq Er EPERM
読み取り専用値を設定しようとしました。
.It Bq Er EPERM
該当する特権のないプロセスが値を設定しようとしました。
.El
.Sh ファイル
.Bl -tag -width <netinet/icmpXvar.h> -compact
.It Pa <sys/sysctl.h>
一番上のレベルの識別子の定義、
2 番めのレベルのカーネルおよび
ハードウェア識別子、およびユーザレベル識別子
.It Pa <sys/socket.h>
2 レベルのネットワーク識別子の定義
.It Pa <sys/gmon.h>
3 レベルのプロファイル化識別子についての定義
.It Pa <vm/vm_param.h>
2 レベルの仮想メモリ識別子についての定義
.It Pa <netinet/in.h>
3 レベルのインターネット識別子と第
4 レベルの
IP
識別子についての定義
.It Pa <netinet/icmp_var.h>
4 レベルの
ICMP
識別子についての定義
.It Pa <netinet/udp_var.h>
4 レベルの
UDP
識別子についての定義
.El
.Sh 関連項目
.Xr sysconf 3 ,
.Xr sysctl 3
.Sh 歴史
.Fn sysctl
関数は
.Bx 4.4
で最初に取り入れられました。