getconf Linuxの構成値を取得するコマンド

getconfとは、sysconf()の構成値を取得するLinuxコマンドです。この記事では、getconfコマンドの使い方をご紹介します。

getconf -a
getconf system_var
getconf path_var pathname

引数

get_confコマンドには次に示す引数を指定する。

system_var
sysconf または confstr で定義されたシステム設定変数を指定する。
変数名 説明
ARG_MAX 引数の最大長
CHILD_MAX ユーザーIDごとの同時プロセスの最大数
HOST_NAME_MAX ホスト名の最大長
LOGIN_NAME_MAX ログイン名の最大長
NGROUPS_MAX 補助グループIDの最大数
OPEN_MAX プロセスが同時にオープンできるファイルの最大数
PAGE_SIZE ページサイズ(バイト単位)
STREAM_MAX プロセスが同時にオープンできるストリームの最大数
TTY_NAME_MAX 端末デバイス名の最大長
TZNAME_MAX タイムゾーン名の最大バイト数
LINE_MAX 標準入力またはファイルからのユーティリティの入力行の最大長
LINK_MAX ファイルへのリンクの最大数

Linuxシステムにおいて、ユーザは少なくともひとつのグループに属していて、これを一時グループ(primary group)と呼ぶ。ユーザは一時グループ以外のグループに属することができ、これを補助グループ(supplementary group)または二次グループ(secondary group)と呼ぶ。

path_var
pathconf で定義されているシステム設定変数を指定する。これはパス名とともに使用する必要がある。
変数名 説明
LINK_MAX ファイルへのリンクの最大数
MAX_CANON フォーマットされた入力行の最大長
MAX_INPUT 入力行の最大長
NAME_MAX プロセスが作成できるディレクトリパスまたはファイル名の最大長
PATH_MAX 相対パス名の最大長
PIPE_BUF FIFOのパイプにアトミックに書き込むことができる最大バイト数

オプション

getconfigコマンドには次のオプションを指定できる。

-a
現在のシステムのすべての設定変数とその値を表示する。
-v specification
コンフィギュレーション変数を取得するための仕様とバージョンを指定する。

ARG_MAX

exec 関数群の引数の最大長を示す。

$ getconf ARG_MAX
2097152

PAGE_SIZE

1ページのサイズをバイト数で示す。Linuxにおいて、仮想メモリはページ(page)と呼ばれる単位で管理されている。

$ getconf PAGE_SIZE
4096

LONG_BIT

Linuxカーネルのビット数を示す。

$ getconf LONG_BIT
64

_NPROCESSORS_ONLN

CPUの数を示す。

$ getconf _NPROCESSORS_ONLN
8

sysconf

ランタイムの構成情報を取得する。

#include <unistd.h>

long sysconf(int name);

エラーの場合、-1を返し、errnoにエラーの原因を示す値を設定する。

EINVAL
nameの値が無効

confstr

構成に依存する文字列変数を取得する。

#include <unistd.h>

size_t confstr(int name, char *buf, size_t len);
EINVAL
nameの値が無効

pathconf

ファイルの構成値を取得する。

#include <unistd.h>

long pathconf(const char *path, int name);
EINVAL
nameの値が無効

exec

ファイルを実行する。

#include <unistd.h>

extern char **environ;

int execl(const char *pathname, const char *arg, ... /* (char  *) NULL */);
int execlp(const char *file, const char *arg, ... /* (char  *) NULL */);
int execle(const char *pathname, const char *arg, ... /*, (char *) NULL, char *const envp[] */);
int execv(const char *pathname, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[], char *const envp[]);

Linuxコマンド