グローバルなシステム情報

汎用性の高い Mathematica 用プログラムを作成するにはグローバル(大域的)な環境設定の情報が必要になる.

例えば,プログラムからNotebookWrite等の関数を呼び出す必要があるかどうかは,プログラムを実行するセッションがノートブック用フロントエンドで設けられたものかどうかを見極めた上でないと判断することができない.この場合,$Notebooksを参照する.

$Notebooksフロントエンドがノートブック用のものかどうかを識別するブール変数

ノートブック用フロントエンドの識別

Mathematica の機能は普通対話的に使う.しかし,バッチ処理的に使うことも可能で,その場合,入力はファイルから読み込まれ,出力はファイルに書き出される.バッチモードではユーザは対話的な入力を行うことはできない.

$BatchInput入力をバッチモードでするかしないかを識別するブール変数
$BatchOutput出力をバッチモードでするかしないかを識別するブール変数 (出力プロンプト等は禁止)

バッチモードによる入出力の識別

Mathematica カーネルもオペレーティングシステムの下で稼動するプロセスの1つである.オペレーティングシステム関連の大域変数がいくつか用意されているので,それらを参照することでプロセスの状況や動作環境の情報を取得することができる.

$CommandLineMathematica カーネルの起動に使ったもとのコマンドライン
$ParentLinkカーネルを起動したプログラムを登録した MathLink LinkObject(カーネルを起動した場合はNull
$ProcessIDオペレーティングシステムにより Mathematica カーネルのプロセスに割りふられた識別番号
$ParentProcessIDMathematica カーネルを起動したプロセスに割りふられた識別番号
$UserNameMathematica カーネルを起動したプロセスに割りふられた識別番号
Environment["var"]カーネルを使用しているユーザのログイン名

Mathematica カーネルプロセスに関連した変数

同時に進行される複数のセッションにおいて,同じ名前,例えば x のような変数が使われるとき,各変数の値は必ずしも他の Mathematica セッションでの x と同じ値にしておきたくないかもしれない.そこで,セッションごとにオブジェクトを区別するため,Mathematica では大域変数$SessionIDが使われる.この変数には,開始時間,プロセス番号,そして,コンピュータの機種番号等に基づいて生成された現行セッションの識別番号が割り当てられている.カーネルのプロセスに使われるコンピュータが同一のものでも,セッションが別ならば,異なったセッション番号が与えられる.

$SessionIDMathematica のセッションごとに割りふられる識別番号

Mathematica セッションの識別番号

どのバージョンの Mathematica カーネルが使われているか等を調べるための大域変数も用意されている.例えばバージョン6というように,特定バージョンの機能に依存した形でプログラムが記述してある場合等では,バージョン情報が重要になる.使用中のカーネルのバージョンが対応するものかどうかを調べるには$VersionNumberを参照する.

$Version使用中の Mathematica のバージョン名を綴った文字列
$VersionNumberMathematica カーネルのバージョン番号(例:
$ReleaseNumberMathematica カーネルのオペレーティングシステム別リリース番号
$CreationDate使用中の Mathematica の作成日(DateList書式で表示)

使用中のMathematica のバージョンを指定する変数

Mathematica の動作環境はオペレーティングシステムになるべく依存しない形で設定されている.それでも,Mathematica の操作には直接関係ないオペレーティングシステム関連の情報にアクセスしたい場合も出てくる.

$System使っているコンピュータシステムの名前
$SystemID使っているコンピュータのシステムの短縮名
$ProcessorTypeプロセッサの種類
$MachineType使っているコンピュータの一般機種名
$ByteOrdering各コンピュータシステムのバイナリデータのバイトのネイティブな順序
$OperatingSystem使っているオペレーティングシステムの名前
$SystemCharacterEncoding使っているオペレーティングシステムの外部文字コード

システム関連の情報

Mathematica ファイルの読み書き」MathLinkプログラムの移植性」で説明したが,オペレーティングシステム別の Mathematica バージョンを保存するディレクトリには$SystemIDの名前が与えられる.$SystemIDの名前が同じコンピュータシステムは通常,バイナリレベルで互換である.

$OperatingSystemには,等のオペレーティングシステムの名前が割り当てられる.使いたい外部プログラムがあるときは,あらかじめ$OperatingSystemを参照しておき必要なプログラムがあるかどうかを確認しておくとよい.

入力を評価するのに使ったコンピュータシステムが何かを調べる.
In[1]:=
Click for copyable input
Out[1]=
$MachineAddresses現行のIPアドレスのリスト
$MachineNameMathematica の動作しているコンピュータの登録名
$MachineDomainsコンピュータのネットワークドメイン
$MachineIDMathematica の定義するコンピュータの固有識別番号

Mathematica を実行しているコンピュータに関する情報

$ActivationKeyMathematica を実行させているアクティベーションキー
$LicenseExpirationDateライセンス契約の切れる日付
$NetworkLicenseネットワークライセンスかどうかを識別するブール値
$LicenseServerライセンスを行使する機械の名前
$LicenseProcessesライセンスのもとで現在稼動中のカーネルプロセス数
$MaxLicenseProcessesライセンス契約で許されている最大プロセス数
$PasswordFileカーネルが起動するときに使われるパスワードファイル

ライセンス管理に関する変数

New to Mathematica? Find your learning path »
Have a question? Ask support »