getconfとは、sysconf()の構成値を取得するLinuxコマンドです。この記事では、getconfコマンドの使い方をご紹介します。
getconf -a
getconf system_var
getconf path_var pathname
get_confコマンドには次に示す引数を指定する。
変数名 | 説明 |
---|---|
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)と呼ぶ。
exec 関数群の引数の最大長を示す。
$ getconf ARG_MAX
2097152
1ページのサイズをバイト数で示す。Linuxにおいて、仮想メモリはページ(page)と呼ばれる単位で管理されている。
$ getconf PAGE_SIZE
4096
変数名 | 説明 |
---|---|
LINK_MAX | ファイルへのリンクの最大数 |
MAX_CANON | フォーマットされた入力行の最大長 |
MAX_INPUT | 入力行の最大長 |
NAME_MAX | プロセスが作成できるディレクトリパスまたはファイル名の最大長 |
PATH_MAX | 相対パス名の最大長 |
PIPE_BUF | FIFOのパイプにアトミックに書き込むことができる最大バイト数 |
getconfigコマンドには次のオプションを指定できる。
Linuxカーネルのビット数を示す。
$ getconf LONG_BIT
64
CPUの数を示す。
$ getconf _NPROCESSORS_ONLN
8
ランタイムの構成情報を取得する。
#include <unistd.h>
long sysconf(int name);
エラーの場合、-1を返し、errnoにエラーの原因を示す値を設定する。
構成に依存する文字列変数を取得する。
#include <unistd.h>
size_t confstr(int name, char *buf, size_t len);
ファイルの構成値を取得する。
#include <unistd.h>
long pathconf(const char *path, int name);
ファイルを実行する。
#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[]);