日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
SYSCTL(3) FreeBSD ライブラリ関数マニュアル SYSCTL(3) 名称 sysctl, sysctlbyname, sysctlnametomib -- システム情報を取得または設定する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/types.h> #include <sys/sysctl.h> int sysctl(const int *name, u_int namelen, void *oldp, size_t *oldlenp, const void *newp, size_t newlen); int sysctlbyname(const char *name, void *oldp, size_t *oldlenp, const void *newp, size_t newlen); int sysctlnametomib(const char *name, int *mibp, size_t *sizep); 解説 sysctl() 関数は、システム情報を取り出し、適切な特権のあるプロセスがシステ ム情報を設定することを許可します。sysctl() から利用可能な情報は、整数、文 字列とテーブルで構成されます。情報は、sysctl(8) ユーティリティを使用して コマンドインタフェースから取り出して設定できます。 下記に明示的に注意された場合を除いて、sysctl() は、要求されたデータの一貫 したスナップショットを返します。メモリへ目的のバッファをロックすることに より一貫性が得られるので、データは、ブロッキングなしでコピーできます。 sysctl() への呼び出しは、デッドロックを回避するためにシリアル化されます。 状態は、長さが namelen の整数の配列である name にリストされる、``管理情報 ベース (Management Information Base)'' (MIB) スタイル名を使用して記述され ます。 sysctlbyname() 関数は、名前の ASCII 表現を受け入れ、整数名前ベクトルを内 部で調べます。それを別にすれば、標準の sysctl() 関数と同じように振る舞い ます。 情報は、oldp によって指定されたバッファにコピーされます。バッファのサイズ は、呼び出しの前に oldlenp によって指定された位置によって与えられ、その位 置は、成功した呼び出しの後に、そしてエラーコード ENOMEM で返る呼び出しの 後にコピーされたデータの量を与えます。利用可能なデータの量が供給された バッファのサイズより大きな場合、呼び出しは、提供されるバッファに適合する だけのデータを供給し、エラーコード ENOMEM で返ります。古い値が要求されな いなら、oldp と oldlenp は、NULL に設定されるべきです。 利用可能なデータのサイズは、oldp を NULL 引数として sysctl() を呼ぶことに より決定できます。利用可能なデータのサイズは、oldlenp によって指される位 置の中に返されます。いくつかの操作については、空間の量がしばしば変わるか もしれません。これらの操作については、返されたサイズがその後すぐにデータ を返す呼び出しのために十分大きくなるように、システムは、切り上げることを 試みます。 新しい値を設定するために、newp は、要求された値が得られるための長さ newlen のバッファを指すために設定されます。新しい値が設定されない場合、 newp は、NULL に、newlen は、0 に設定されるべきです。 sysctlnametomib() 関数は、名前の ASCII 表現を受け入れ、整数名前ベクトルを 調べて、mibp によって指される mib 配列中に数値表現を返します。mib 配列中 の要素の数は、呼び出しの前に sizep によって指定された位置によって与えられ ます。また、その位置は、成功した呼び出しの後でコピーされたエントリの数を 与えます。結果の mib と size は、要求された ASCII 名に関連するデータを取 得するために後の sysctl() 呼び出しで使用できます。このインタフェースは、 同じ変数 (sysctl() 関数は、sysctlbyname() 関数によって行なわれる同じ要求 の約 1/3 時間で実行します) を繰り返し要求したいアプリケーションによって使 用することを対象としています。さらに、sysctlnametomib() 関数は、mib 接頭 辞を取って来て、最終構成要素に加えるために役立ちます。例えば pid の 100 未満のプロセスのためのプロセス情報を取って来るには、次のようにします。 int i, mib[4]; size_t len; struct kinfo_proc kp; /* mib の最初の 3 つの構成要素を書き込む */ len = 4; sysctlnametomib("kern.proc.pid", mib, &len); /* pid < 100 のエントリを取って来て印刷します */ for (i = 0; i < 100; i++) { mib[3] = i; len = sizeof(kp); if (sysctl(mib, 4, &kp, &len, NULL, 0) == -1) perror("sysctl"); else if (len > 0) printkproc(&kp); } トップ (第 1) レベルの名前は、次のように、<sys/sysctl.h> で CTL_ 接頭辞を 付けて定義されています。次のレベルとその後のレベルは、ここにリストされる インクルードファイルで見つけられ、下記の個別のセクションで説明されます。 名前 次レベル名 説明 CTL_DEBUG <sys/sysctl.h> デバッギング CTL_VFS <sys/mount.h> ファイルシステム CTL_HW <sys/sysctl.h> 一般的な CPU, I/O CTL_KERN <sys/sysctl.h> カーネルの上限 CTL_MACHDEP <sys/sysctl.h> マシン依存 CTL_NET <sys/socket.h> ネットワーク CTL_USER <sys/sysctl.h> ユーザレベル CTL_VM <vm/vm_param.h> 仮想メモリ 例えば、次は、システムで許容されたプロセスの最大の数を取り出します。 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); システムユーティリティの標準の検索パスを取り出すためには、次の通りです: 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); CTL_DEBUG デバッグ変数は、システムによって異なります。デバッグ変数は、それについて 知っている sysctl() を再コンパイルする必要なしに加えるか削除できます。そ れが実行されるごとに、sysctl() は、カーネルからのデバッグ変数のリストを得 て、それらの現在値を表示します。システムは、debug0 から debug19 と名前が 付けられた 20 の (struct ctldebug) 変数を定義します。それらの関連する変数 の位置で個別にそれらを初期化することができるように、それらは、個別の変数 として宣言されます。ローダは、変数が 2 つ以上の場所で初期化される場合に、 エラーを出すことによって、同じ変数が複数の使用されるのを防ぎます。例え ば、変数 dospecialcheck をデバッグ変数としてエクスポートするために、次の 宣言が使用されます。 int dospecialcheck = 1; struct ctldebug debug5 = { "dospecialcheck", &dospecialcheck }; CTL_VFS 識別された第 2 レベルの名前、VFS_GENERIC、は、すべてのファイルシステムに 関する一般的な情報を得るために使用されます。その第 3 レベルの識別子の 1 つは、最も高い有効なファイルシステムタイプ番号を与える VFS_MAXTYPENUM で す。その、第 3 レベルの識別子は、第 4 レベルの識別子 (その使用の例として getvfsbyname(3) を参照) として与えられたファイルシステムタイプに関する構 成情報を返す VFS_CONF です。残りの第 2 レベルの識別子は、statfs(2) 呼び出 しによって、または VFS_CONF から返されたファイルシステムタイプ番号です。 各ファイルシステムのために利用可能な第 3 レベル識別子は、そのファイルシス テムのためにマウント引数構造体を定義するヘッダファイルで与えられます。 CTL_HW CTL_HW レベルのために利用可能な文字列と整数の情報は、下記に詳しく述べられ ます。変更可能性の列は、適切な特権のあるプロセスが値を変更できるかどうか を示します。 第 2 レベル名 タイプ 変更可能性 HW_MACHINE 文字列 no HW_MODEL 文字列 no HW_NCPU 整数 no HW_BYTEORDER 整数 no HW_PHYSMEM 整数 no HW_USERMEM 整数 no HW_PAGESIZE 整数 no HW_FLOATINGPT 整数 no HW_MACHINE_ARCH 文字列 no HW_REALMEM 整数 no HW_AVAILPAGES 整数 no HW_MACHINE マシンクラス。 HW_MODEL マシンモデル。 HW_NCPU CPU の数。 HW_BYTEORDER バイト順 (4321 または 1234)。 HW_PHYSMEM カーネル、プリロードされたモジュールと (x86 の) dcons バッファに よって使用される量の (バイト単位の) 物理メモリの量。 HW_USERMEM 接続されていない (バイト単位の) メモリの量。 HW_PAGESIZE ソフトウェアのページサイズ。 HW_FLOATINGPT 浮動小数点サポートがハードウェアにあるなら、0 でない。 HW_MACHINE_ARCH マシンに依存するアーキテクチャタイプ。 HW_REALMEM ファームウェアによって報告された (バイト単位の) メモリの量。その 値は、時々健全ではありません。その場合に、カーネルは、代わりに、 最大のメモリアドレスを報告します。 HW_AVAILPAGES バイト単位ではなく、ページ単位で測定された HW_PHYSMEM と同じ値。 CTL_KERN CTL_KERN レベルのために利用可能な文字列と整数の情報は、下記に詳しく述べら れます。変更可能性の列は、適切な特権のあるプロセスが値を変更できるかどう かを示します。現在利用可能なデータのタイプは、プロセス情報、システム vnodes、オープンファイルエントリ、ルーティングテーブルエントリ、仮想メモ リ統計、ロードアベレージ (負荷平均) 履歴とクロックレート情報です。 第 2 レベル名 タイプ 変更可能性 KERN_ARGMAX 整数 no KERN_BOOTFILE 文字列 yes KERN_BOOTTIME struct timeval no KERN_CLOCKRATE struct clockinfo no KERN_FILE struct xfile no KERN_HOSTID 整数 yes KERN_HOSTUUID 文字列 yes KERN_HOSTNAME 文字列 yes KERN_JOB_CONTROL 整数 no KERN_MAXFILES 整数 yes KERN_MAXFILESPERPROC 整数 yes KERN_MAXPROC 整数 no KERN_MAXPROCPERUID 整数 yes KERN_MAXVNODES 整数 yes KERN_NGROUPS 整数 no KERN_NISDOMAINNAME 文字列 yes KERN_OSRELDATE 整数 no KERN_OSRELEASE 文字列 no KERN_OSREV 整数 no KERN_OSTYPE 文字列 no KERN_POSIX1 整数 no KERN_PROC node 適用不可 KERN_PROF node 適用不可 KERN_QUANTUM 整数 yes KERN_SAVED_IDS 整数 no KERN_SECURELVL 整数 上昇のみ KERN_UPDATEINTERVAL 整数 no KERN_VERSION 文字列 no KERN_VNODE struct xvnode no KERN_ARGMAX execve(2) への引数の最大のバイト。 KERN_BOOTFILE カーネルをロードするためのファイルの完全なパス名。 KERN_BOOTTIME struct timeval 構造体が返されます。この構造体は、システムがブート された時刻を含んでいます。 KERN_CLOCKRATE struct clockinfo 構造体が返されます。この構造体は、クロック、統計 クロックとプロファイルクロック周波数、マイクロ秒/hz チックとス キュー (ねじれ) レートを含んでいます。 KERN_FILE ファイルテーブル全体を返します。返されたデータは、サイズが、シス テムのそのようなオブジェクトの現在の数に依存する struct xfile の 配列から成ります。 KERN_HOSTID ホスト ID を取得するか設定します。 KERN_HOSTUUID ホストの一般的にユニークな識別子 (UUID) を取得するか、または設定 します。 KERN_HOSTNAME ホスト名を取得するか設定します。 KERN_JOB_CONTROL ジョブコントロールがこのシステムで利用可能な場合、1 を返し、そう でなければ 0 を返します。 KERN_MAXFILES システムでオープンできるファイルの最大の数。 KERN_MAXFILESPERPROC 1 つのプロセスがオープンできるファイルの最大の数。この制限は、 オープン要求の時に、ゼロでない実効 UID のあるプロセスにだけ適用さ れます。制限または実効 UID が変更される場合、既にオープンされた ファイルは、影響されません。 KERN_MAXPROC システムが許可する同時プロセスの最大の数。 KERN_MAXPROCPERUID システムが 1 つの実効 UID のために許可する、同時プロセスの最大の 数。この制限は、フォーク (fork) 要求の時に、ゼロでない実効 UID の あるプロセスにだけ適用されます。制限が変更される場合、既に開始さ れたプロセスは、影響されません。 KERN_MAXVNODES システムで利用可能な vnodes の最大の数。 KERN_NGROUPS 補足グループの最大の数。 KERN_NISDOMAINNAME 現在の YP/NIS ドメインの名前。 KERN_OSRELDATE MmmRxx 形式のカーネルリリースバージョン。ここで、M は、メジャー バージョン、mm は、2 桁のマイナバージョン、R は、リリースブランチ であれば 0、そうでなければ 1、xx は、利用可能な API が変わった時 に更新されます。 ユーザランドリリースバージョンは、<osreldate.h> から入手できま す。現在インストールされているユーザランドのリリースバージョンを 取得することが必要な場合には、このファイルを解析して下さい。 KERN_OSRELEASE システムリリース文字列。 KERN_OSREV システム改訂文字列。 KERN_OSTYPE システムタイプ文字列。 KERN_POSIX1 システムが準拠することを試みる IEEE Std 1003.1 (``POSIX.1'') の バージョン。 KERN_PROC 特定の実行しているプロセスに関する選択された情報を返します。 次の名前のために、struct kinfo_proc 構造体の配列が返されます。そ のサイズは、システムでのそのようなオブジェクトの現在の数に依存し ます。 第 3 レベル名 第 4 レベル KERN_PROC_ALL なし KERN_PROC_PID プロセス ID KERN_PROC_PGRP プロセスグループ KERN_PROC_TTY tty デバイス KERN_PROC_UID ユーザ ID KERN_PROC_RUID 実ユーザ ID 第 3 レベル名が KERN_PROC_ARGS であれば、コマンド行の引数の配列が 平板な形式、すなわち、0 で終了する引数が互いに続く形式、で返され ます。配列の合計サイズが返されます。この方法でプロセスが自身のプ ロセスタイトルを設定することも可能です。3 番目のレベル名は、プロ セスのテキストファイルのパスが格納される、KERN_PROC_PATHNAME で す。KERN_PROC_PATHNAME に関して、-1 のプロセス ID は、現在のプロ セスを意味しています。 第 3 レベル名 第 4 レベル KERN_PROC_ARGS プロセス ID KERN_PROC_PATHNAME プロセス ID KERN_PROF カーネルに関するプロファイル情報を返します。カーネルがプロファイ ルのためのコンパイルがされていないなら、KERN_PROF 値のいずれかを 取り出す試みは、ENOENT で失敗します。文字列と整数のプロファイル情 報のための第 3 レベルの名前は、下記に詳しく述べられます。変更可能 性の列は、適切な特権のあるプロセスが値を変更できるかどうかを示し ます。 第 3 レベル名 タイプ 変更可能性 GPROF_STATE 整数 yes GPROF_COUNT u_short[] yes GPROF_FROMS u_short[] yes GPROF_TOS struct tostruct yes GPROF_GMONPARAM struct gmonparam no 変数は、次の通りです: GPROF_STATE プロファイルが実行されているか停止しているかを示す GMON_PROF_ON または GMON_PROF_OFF を返します。 GPROF_COUNT 統計プログラムカウンタの配列の総数。 GPROF_FROMS 呼び出し点からのプログラムカウンタによってインデックス付 けされた配列。 GPROF_TOS 呼び出しの目標とそれらの総数について記述する struct tostruct の配列。 GPROF_GMONPARAM 上記の配列のサイズを与える構造体。 KERN_QUANTUM 他のプロセスが実行キューにある場合、プロセスが切り替える (プリエ ンプトする) ことなく実行が許されるマイクロ秒単位の最大の期間。 KERN_SAVED_IDS 退避セットグループ ID (グループ ID 設定) と退避セットユーザ ID (ユーザ ID 設定) が利用可能な場合、1 を返します。 KERN_SECURELVL システムセキュリティレベル。このレベルは、適切な特権のあるプロセ スによって上昇されることができます。 KERN_VERSION システムバージョン文字列。 KERN_VNODE vnode テーブル全体を返します。vnode テーブルが必ずしもシステムの 一貫したスナップショットではないことに注意してください。返された データは、そのサイズがシステムでのそのようなオブジェクトの現在の 数に依存する配列から成ります。配列の各要素は、struct xvnode から 成ります。 CTL_NET TL_NET レベルに利用可能な文字列と整数の情報は、下記に詳しく述べられます。 変更可能性の列は、適切な特権のあるプロセスが値を変更できるかどうかを示し ます。 第 2 レベル名 タイプ 変更可能性 PF_ROUTE ルーティングメッセージ no PF_INET IPv4 値 yes PF_INET6 IPv6 値 yes PF_ROUTE ルーティングテーブル全体またはそのサブセットを返します。データ は、一連のルーティングメッセージとして返されます (ヘッダファイ ル、フォーマットと意味に関しては、route(4) を参照)。各メッセージ の長さは、メッセージヘッダに含まれています。 第 3 のレベル名は、現在常に 0 であるプロトコル番号です。第 4 のレ ベル名は、アドレスファミリで、それは、すべてのアドレスファミリを 選択するために 0 に設定できます。第 5 レベル名、第 6 のレベル名と 第 7 のレベル名は、次の通りです: 第 5 レベル 第 6 レベル 第 7 レベル NET_RT_FLAGS rtflags None NET_RT_DUMP None None または fib number NET_RT_IFLIST 0 または if_index None NET_RT_IFMALIST 0 または if_indexNone NET_RT_IFLISTL 0 または if_index None NET_RT_NHOPS None fib number NET_RT_IFMALIST 名は、0 が指定された場合は、すべてのインタフェー スの、そうでなければ if_index で指定されたインタフェースのマルチ キャストグループメンバーシップに関する情報を返します。 NET_RT_IFLISTL は、インタフェースがバイナリ互換性を壊さずに拡張さ れることを可能にする追加のフィールドを付けてメッセージヘッダの構 造体を返しますが、NET_RT_IFLIST に似ています。NET_RT_IFLISTL は、 次のメッセージヘッダの構造体の 'l' バージョンを使用します: struct if_msghdrl と struct ifa_msghdrl。 NET_RT_NHOPS は、与えられた fib の指定されたアドレスファミリのた めのすべての次中継点 (nexthop) を返します。 PF_INET IPv4 (インターネットプロトコルバージョン 4) に関する各種のグロー バル情報を取得するか設定します。第 3 のレベル名は、プロトコルで す。第 4 のレベル名は、変数名です。現在定義されたプロトコルと名前 は、次の通りです: プロトコル 変数 タイプ 変更可能性 icmp bmcastecho 整数 yes icmp maskrepl 整数 yes ip forwarding 整数 yes ip redirect 整数 yes ip ttl 整数 yes udp checksum 整数 yes 変数は、次の通りです: icmp.bmcastecho ブロードキャストかマルチキャストのアドレスへの ICMP エ コー要求が応答される場合 1 を返します。 icmp.maskrepl ICMP ネットワークマスク要求が応答される場合 1 を返しま す。 ip.forwarding IP フォワーディング (転送) が、ホストがルータとして作動す る意味を持った、ホストのために可能になる場合 1 を返しま す。 ip.redirect ICMP リダイレクト (出力先変更) がホストによって送ることが できる場合、1 を返します。このオプションは、ホストが IP パケットをルーティングしていなければ、無視され、そして、 通常すべてのシステムで使用可能にするべきです。 ip.ttl システムが起点となった IP パケットの最大の有効期限 (ホッ プカウント) 値。この値は、ICMP にではなく通常のトランス ポート (輸送) プロトコルに適応されます。 udp.checksum UDP チェックサムが計算されチェックされている場合、1 を返 します。UDP チェックサムを無効にすることは、強く推奨され ません。 変数 net.inet.*.ipsec については、ipsec(4) を参照してくだ さい。 PF_INET6 IPv6 (インターネットプロトコルバージョン 6) に関する各種のグロー バル情報を取得するか設定します。第 3 のレベル名は、プロトコルで す。第 4 のレベル名は、変数名です。 変数 net.inet6.* については、inet6(4) を参照してください。変数 net.inet6.*.ipsec6 については、ipsec(4) を参照してください。 CTL_USER CTL_USER レベルに利用可能な文字列と整数の情報は、下記に詳しく述べられま す。変更可能性の列は、適切な特権のあるプロセスが値を変更できるかどうかを 示します。 第 2 レベル名 タイプ 変更可能性 USER_BC_BASE_MAX 整数 no USER_BC_DIM_MAX 整数 no USER_BC_SCALE_MAX 整数 no USER_BC_STRING_MAX 整数 no USER_COLL_WEIGHTS_MAX 整数 no USER_CS_PATH 文字列 no USER_EXPR_NEST_MAX 整数 no USER_LINE_MAX 整数 no USER_LOCALBASE 文字列 no USER_POSIX2_CHAR_TERM 整数 no USER_POSIX2_C_BIND 整数 no USER_POSIX2_C_DEV 整数 no USER_POSIX2_FORT_DEV 整数 no USER_POSIX2_FORT_RUN 整数 no USER_POSIX2_LOCALEDEF 整数 no USER_POSIX2_SW_DEV 整数 no USER_POSIX2_UPE 整数 no USER_POSIX2_VERSION 整数 no USER_RE_DUP_MAX 整数 no USER_STREAM_MAX 整数 no USER_TZNAME_MAX 整数 no USER_BC_BASE_MAX bc(1) ユーティリティの最大 ibase/obase 値。 USER_BC_DIM_MAX bc(1) ユーティリティの最大配列サイズ。 USER_BC_SCALE_MAX bc(1) ユーティリティの最大スケール値。 USER_BC_STRING_MAX bc(1) ユーティリティの最大文字列長。 USER_COLL_WEIGHTS_MAX ロケール定義ファイル中の LC_COLLATE 順序キーワードの任意のエント リに割り当てることができる重みの最大の数。 USER_CS_PATH すべての標準のユーティリティを見つける PATH 環境変数の値を返しま す。 USER_EXPR_NEST_MAX expr(1) ユーティリティによって、丸括弧内でネストできる式の最大の 数。 USER_LINE_MAX テキスト処理ユーティリティの入力行の最大のバイト長。 USER_LOCALBASE ポートまたはパッケージによって提供されるリソースにアクセスする必 要があるシステムユーティリティにコンパイルされた localbase の値を 返します。 USER_POSIX2_CHAR_TERM システムが IEEE Std 1003.2 (``POSIX.2'') で記述されたすべての操作 の能力がある少なくとも 1 つの端末タイプをサポートする場合、1 を返 し、そうでなければ 0 を返します。 USER_POSIX2_C_BIND システムの C 言語開発機能が C 言語バインディングオプションをサ ポートする場合 1 を返し、そうでなければ 0 を返します。 USER_POSIX2_C_DEV システムが C 言語開発ユーティリティオプションをサポートする場合 1 を返し、そうでなければ 0 を返します。 USER_POSIX2_FORT_DEV システムが FORTRAN 開発ユーティリティオプションをサポートする場合 1 を返し、そうでなければ 0 を返します。 USER_POSIX2_FORT_RUN システムが FORTRAN ランタイムユーティリティオプションをサポートす る場合 1 を返し、そうでなければ 0 を返します。 USER_POSIX2_LOCALEDEF システムがロケールの生成をサポートする場合 1 を返し、そうでなけれ ば 0 を返します。 USER_POSIX2_SW_DEV システムがソフトウェア開発ユーティリティオプションをサポートする 場合 1 を返し、そうでなければ 0 を返します。 USER_POSIX2_UPE システムがユーザポータビリティユーティリティオプションをサポート する場合 1 を返し、そうでなければ 0 を返します。 USER_POSIX2_VERSION システムが準拠することを試みる IEEE Std 1003.2 (``POSIX.2'') の バージョン。 USER_RE_DUP_MAX インターバル (間隔) 記法を使用するときに許される正規表現の繰り返 し発生の最大の数。 USER_STREAM_MAX プロセスがどの時点でもオープンしておくことができるストリームの最 小の数と最大の数。 USER_TZNAME_MAX 時間帯の名前に対してサポートされるタイプの最小の数と最大の数。 CTL_VM CTL_VM レベルに利用可能な文字列と整数の情報は、下記に詳しく述べられます。 変更可能性の列は、適切な特権のあるプロセスが値を変更できるかどうかを示し ます。 第 2 レベル名 タイプ 変更可能性 VM_LOADAVG struct loadavg no VM_TOTAL struct vmtotal no VM_SWAPPING_ENABLED 整数 たぶん VM_V_FREE_MIN 整数 yes VM_V_FREE_RESERVED 整数 yes VM_V_FREE_TARGET 整数 yes VM_V_INACTIVE_TARGET 整数 yes VM_V_PAGEOUT_FREE_MIN 整数 yes VM_OVERCOMMIT 整数 yes VM_LOADAVG ロードアベレージ (負荷平均) 履歴を返します。返されたデータは、 struct loadavg から成ります。 VM_TOTAL システム広範の仮想メモリ統計を返します。返されたデータは、struct vmtotal から成ります。 VM_SWAPPING_ENABLED プロセススワップが使用可能な場合 1 を返し、使用不可能な場合 0 を 返します。カーネルがスワップを利用不可能で構築された場合、この変 数は、永久に 0 に設定されます。 VM_V_FREE_MIN メモリを待っているプロセスが呼び起こされる前に、利用可能とするた めに必要なメモリの最小の量 (キャッシュメモリ+空きメモリ)。 VM_V_FREE_RESERVED プロセスは、ページアウトデーモンを呼び起こし、空きページとキャッ シュページの数がこの値まで下落する場合、メモリを待ちます。 VM_V_FREE_TARGET ページアウトデーモンが維持しようとする空きメモリの合計の量 (キャッシュメモリを含む)。 VM_V_INACTIVE_TARGET ページアウトデーモンが、実行されるときに、達成するべきアクティブ でないページの望ましい数。アクティブでないページは、必要なとき に。プロセスアドレス空間に素早く挿入できます。 VM_V_PAGEOUT_FREE_MIN 空きメモリとキャッシュメモリの量がこの値を下回る場合、ページアウ トデーモンは、デッドロックを回避するために "メモリ節約モード" に 入ります。 VM_OVERCOMMIT tuning(7) に説明されるように振る舞いをオーバコミット (overcommit) します。 戻り値 成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno にエラーを示す値が設定されます。 関連ファイル <sys/sysctl.h> トップレベルの識別子、第 2 レベルのカーネルとハード ウェアの識別子、そしてユーザレベルの識別子の定義 <sys/socket.h> 第 2 レベルのネットワーク識別子の定義 <sys/gmon.h> 第 3 レベルのプロファイル識別子の定義 <vm/vm_param.h> 第 2 レベルの仮想メモリ識別子の定義 <netinet/in.h> 第 3 レベルの IPv4/IPv6 識別子と第 4 レベルの IPv4/IPv6 識別子の定義 <netinet/icmp_var.h> 第 4 レベルの ICMP 識別子の定義 <netinet/icmp6.h> 第 4 レベルの ICMPv6 識別子の定義 <netinet/udp_var.h> 第 4 レベルの UDP 識別子の定義 エラー 次のエラーが報告されます。 [EFAULT] バッファ name, oldp, newp あるいは長さポインタ oldlenp は、無効のアドレスを含んでいます。 [EINVAL] name 配列は、2 未満か CTL_MAXNAME 以上です。 [EINVAL] NULL でない newp が与えられ、newlen のその指定された長 さは、大きすぎるか、小さすぎます。 [ENOMEM] oldlenp によって指される長さは、要求された値を保持する ためには短すぎるます。 [ENOMEM] oldlenp によって指される長さ、または、返されたデータの だいたいのサイズのどちらかの小さいほうが、ロックされた メモリのシステム制限を超えています。 [ENOMEM] 返されるデータのだいたいのサイズが小さいならバッファ oldp、またはバッファの一部をロックすることは、プロセス がプロセスごとのロックされたメモリ制限を超えてしまいま す。 [ENOTDIR] name 配列は、末端の名前ではなく中間を指定しています。 [EISDIR] name 配列は、末端の名前を指定していますが、実際の名前 は、末端ではありません。 [ENOENT] name 配列は、未知の値を指定しています。 [EPERM] 読み込み専用の値を設定しようとしました。 [EPERM] 適切な特権のないプロセスが値を設定しようとしました。 関連項目 confstr(3), kvm(3), sysconf(3), sysctl(8) 歴史 sysctl() は、4.4BSD ではじめて登場しました。 FreeBSD 13.2 October 30, 2020 FreeBSD 13.2