グローバルなシステム情報
汎用性の高い Mathematica 用プログラムを作成するにはグローバル(大域的)な環境設定の情報が必要になる.
例えば,プログラムからNotebookWrite等の関数を呼び出す必要があるかどうかは,プログラムを実行するセッションがノートブック用フロントエンドで設けられたものかどうかを見極めた上でないと判断することができない.この場合,$Notebooksを参照する.
| $Notebooks | フロントエンドがノートブック用のものかどうかを識別するブール変数 |
Mathematica の機能は普通対話的に使う.しかし,バッチ処理的に使うことも可能で,その場合,入力はファイルから読み込まれ,出力はファイルに書き出される.バッチモードではユーザは対話的な入力を行うことはできない.
| $BatchInput | 入力をバッチモードでするかしないかを識別するブール変数 |
| $BatchOutput | 出力をバッチモードでするかしないかを識別するブール変数 (出力プロンプト等は禁止) |
Mathematica カーネルもオペレーティングシステムの下で稼動するプロセスの1つである.オペレーティングシステム関連の大域変数がいくつか用意されているので,それらを参照することでプロセスの状況や動作環境の情報を取得することができる.
| $CommandLine | Mathematica カーネルの起動に使ったもとのコマンドライン |
| $ParentLink | カーネルを起動したプログラムを登録した MathLink LinkObject(カーネルを起動した場合はNull) |
| $ProcessID | オペレーティングシステムにより Mathematica カーネルのプロセスに割りふられた識別番号 |
| $ParentProcessID | Mathematica カーネルを起動したプロセスに割りふられた識別番号 |
| $UserName | Mathematica カーネルを起動したプロセスに割りふられた識別番号 |
| Environment["var"] | カーネルを使用しているユーザのログイン名 |
同時に進行される複数のセッションにおいて,同じ名前,例えば x のような変数が使われるとき,各変数の値は必ずしも他の Mathematica セッションでの x と同じ値にしておきたくないかもしれない.そこで,セッションごとにオブジェクトを区別するため,Mathematica では大域変数$SessionIDが使われる.この変数には,開始時間,プロセス番号,そして,コンピュータの機種番号等に基づいて生成された現行セッションの識別番号が割り当てられている.カーネルのプロセスに使われるコンピュータが同一のものでも,セッションが別ならば,異なったセッション番号が与えられる.
| $SessionID | Mathematica のセッションごとに割りふられる識別番号 |
どのバージョンの Mathematica カーネルが使われているか等を調べるための大域変数も用意されている.例えばバージョン6というように,特定バージョンの機能に依存した形でプログラムが記述してある場合等では,バージョン情報が重要になる.使用中のカーネルのバージョンが対応するものかどうかを調べるには$VersionNumberを参照する.
| $Version | 使用中の Mathematica のバージョン名を綴った文字列 |
| $VersionNumber | Mathematica カーネルのバージョン番号(例: |
| $ReleaseNumber | Mathematica カーネルのオペレーティングシステム別リリース番号 |
| $CreationDate | 使用中の Mathematica の作成日(DateList書式で表示) |
Mathematica の動作環境はオペレーティングシステムになるべく依存しない形で設定されている.それでも,Mathematica の操作には直接関係ないオペレーティングシステム関連の情報にアクセスしたい場合も出てくる.
| $System | 使っているコンピュータシステムの名前 |
| $SystemID | 使っているコンピュータのシステムの短縮名 |
| $ProcessorType | プロセッサの種類 |
| $MachineType | 使っているコンピュータの一般機種名 |
| $ByteOrdering | 各コンピュータシステムのバイナリデータのバイトのネイティブな順序 |
| $OperatingSystem | 使っているオペレーティングシステムの名前 |
| $SystemCharacterEncoding | 使っているオペレーティングシステムの外部文字コード |
「Mathematica ファイルの読み書き」,「MathLinkプログラムの移植性」で説明したが,オペレーティングシステム別の Mathematica バージョンを保存するディレクトリには$SystemIDの名前が与えられる.$SystemIDの名前が同じコンピュータシステムは通常,バイナリレベルで互換である.
$OperatingSystemには,
や
等のオペレーティングシステムの名前が割り当てられる.使いたい外部プログラムがあるときは,あらかじめ$OperatingSystemを参照しておき必要なプログラムがあるかどうかを確認しておくとよい.
| In[1]:= |
| Out[1]= |
| $MachineAddresses | 現行のIPアドレスのリスト |
| $MachineName | Mathematica の動作しているコンピュータの登録名 |
| $MachineDomains | コンピュータのネットワークドメイン |
| $MachineID | Mathematica の定義するコンピュータの固有識別番号 |
Mathematica を実行しているコンピュータに関する情報
| $ActivationKey | Mathematica を実行させているアクティベーションキー |
| $LicenseExpirationDate | ライセンス契約の切れる日付 |
| $NetworkLicense | ネットワークライセンスかどうかを識別するブール値 |
| $LicenseServer | ライセンスを行使する機械の名前 |
| $LicenseProcesses | ライセンスのもとで現在稼動中のカーネルプロセス数 |
| $MaxLicenseProcesses | ライセンス契約で許されている最大プロセス数 |
| $PasswordFile | カーネルが起動するときに使われるパスワードファイル |
