Next: , Previous: , Up: System Interface   [Contents][Index]


38.3 オペレーティングシステムの環境

Emacsはさまざまな変数を通じてオペレーティングシステム環境内の変数へのアクセスを提供します。これらの変数にはシステムの名前、ユーザーのUIDなどが含まれます。

Variable: system-configuration

この変数はユーザーのシステムのハードウェアとソフトウェアにたいするGNUの標準コンフィグレーション名(standard GNU configuration name)を保持する。たとえば64ビットGNU/Linuxシステムにたいする典型的な値は‘"x86_64-unknown-linux-gnu"’。

Variable: system-type

この変数の値はEmacs実行中のオペレーティングシステムのタイプを示すシンボル。可能な値は:

aix

IBMのAIX。

berkeley-unix

Berkeley BSDとその変種。

cygwin

MS-Windows上のPosixレイヤーであるCygwin。

darwin

Darwin (Mac OS X)。

gnu

(HURDとMachから構成される)GNUシステム。

gnu/linux

GNU/Linuxシステム — すなわちLinuxカーネルを使用するGNUシステムの変種(これらのシステムは人がしばしば“Linux”と呼ぶシステムだが実際にはLinuxは単なるカーネルであってシステム全体ではない)。

gnu/kfreebsd

FreeBSDカーネルによる(glibcベースの)GNUシステム。

hpux

ヒューレット・パッカードのHPUXオペレーティングシステム。

irix

シリコングラフィックスのIrixシステム。

ms-dos

MicrosoftのDOS。MS-DOSにたいするDJGPPでコンパイルされたEmacsは、たとえMS-Windows上で実行されていてもsystem-typems-dosにバインドされる。

usg-unix-v

AT&TのUnix System V。

windows-nt

MicrosoftのWindows NT、9X以降。たとえばWindows 7でもsystem-typeの値は常にwindows-ntである。

わたしたちは絶対に必要になるまでは、より細分化するために新たなシンボルを追加したくありません。実際のところ将来的にはこれらの候補のいくつかを取り除きたいと思っています。system-typeで許されているより細分化する必要がある場合には、たとえば正規表現にたいしてsystem-configurationをテストできます。

Function: system-name

この関数は実行中のマシン名を文字列としてリターンする。

シンボルsystem-nameは変数であり、同時に関数である。実際のところ、その関数は変数system-nameがカレントで保持する値が何であれ、それをリターンする。したがって、Emacsがシステム名について混乱する場合には、変数system-nameをセットできる。この変数は、フレームタイトルを構築するのにも有用である(Frame Titlesを参照)。

User Option: mail-host-address

この変数が非nilなら、この変数がemailアドレスを生成するためにsystem-nameのかわりに使用される。たとえばこれはuser-mail-addressのデフォルト値の構築時に使用される。User Identificationを参照のこと(これはEmacsスタートアップ時に行われるので実際に使用されるのはEmacsのdump時に保存されたもの。Building Emacsを参照)。

Command: getenv var &optional frame

この関数は環境変数varの値を文字列としてリターンする。varは文字列であること。その環境内でvarが未定義ならgetenvnilをリターンする。varがセットされているがnull(訳注: 空文字列)なら‘""’をリターンする。Emacs内では環境変数とそれらの値のリストは変数process-environment内に保持されている。

(getenv "USER")
     ⇒ "lewis"

shellコマンドprintenvは環境変数のすべて、または一部をプリントする:

bash$ printenv
PATH=/usr/local/bin:/usr/bin:/bin
USER=lewis
TERM=xterm
SHELL=/bin/bash
HOME=/home/lewis
Command: setenv variable &optional value substitute

このコマンドはvariableという名前の環境変数の値にvalueをセットする。variableは文字列であること。内部的にはEmacs Lispは任意の文字列を扱える。しかしvariableは通常はshell識別子として有効、すなわちアルファベットかアンダースコアで始まり、アルファベットか数字またはアンダースコアのシーケンスであること。それ以外ならEmacsのサブプロセスがvariableの値にアクセスを試みるとエラーが発生するかもしれない。valueが省略かnilの場合(またはプレフィクス引数とともにインタラクティブに呼び出された場合)には、setenvはその環境からvariableを削除する。それ以外ならvariableは文字列であること。

オプション引数substituteが非nilなら、value内のすべての環境変数を展開するためにEmacsは関数substitute-env-varsを呼び出す。

setenvprocess-environmentを変更することにより機能する。この変数をletでバインドするのも合理的プラクティスである。

setenvvariableの新たな値、または環境からvariableが削除されていればnilをリターンする。

Variable: process-environment

この変数はそれぞれが1つの環境変数を記す文字列リスト。関数getenvsetenvはこの変数により機能する。

process-environment
⇒ ("PATH=/usr/local/bin:/usr/bin:/bin"
    "USER=lewis"
    "TERM=xterm"
    "SHELL=/bin/bash"
    "HOME=/home/lewis"
    …)

process-environmentに同じ環境変数を指定する“重複”した要素が含まれる場合、それらの最初の要素が変数を指定し、他の“重複”は無視される。

Variable: initial-environment

この変数はEmacs開始時にその親プロセスからEmacsが継承した環境変数のリストを保持する。

Variable: path-separator

この変数は、(環境変数で見つけた)検索パス内でディレクトリーを区切る文字を示す文字列を保持する。値はUnixとGNUシステムでは":"、MSシステムでは";"

Function: parse-colon-path path

この関数は環境変数PATHの値のような検索パス文字列を引数に受け取り、それをセパレーターで分割してディレクトリー名のリストをリターンする。このリスト内では、nilはカレントディレクトリーを意味する。この関数の名前からはセパレーターは“コロン”となるが、実際に使用するのはpath-separatorの値。

(parse-colon-path ":/foo:/bar")
     ⇒ (nil "/foo/" "/bar/")
Variable: invocation-name

この変数はEmacsが呼び出された時のプログラム名を保持する。値は文字列でありディレクトリー名は含まれない。

Variable: invocation-directory

この変数はEmacs実行可能形式が呼び出されたディレクトリー名、そのディレクトリーが判断できなければnilをリターンする。

Variable: installation-directory

nilならサブディレクトリーlib-srcetcを探すディレクトリーである。インストールされたEmacsなら通常はnil。Emacsが標準のインストール位置にそれらのディレクトリーを見つけられないものの、Emacs実行可能形式を含むディレクトリー(たとえばinvocation-directory)に何らかの関連があるディレクトリーで見つかることができたら非nil

Function: load-average &optional use-float

この関数はカレント、1分、5分、15分のロードアベレージ(load averages: 平均負荷)をリストでリターンする。このロードアベレージはシステム上で実行を試みているプロセス数を示す。

デフォルトでは値はシステムロードアベレージを100倍にした整数だが、use-floatが非nilなら100を乗ずることなくこれらの値は浮動小数点数としてリターンされる。

ロードアベレージ入手が不可能ならこの関数はエラーをシグナルする。いくつかのプラットフォームではロードアベレージへのアクセスにカーネル情報を読み取れるように、通常は推奨されないsetuidかsetgidしたEmacsのインストールを要する。

1分のロードアベレージは利用できるが、5分と15分のアレージは利用できなければ、この関数は利用可能なアベレージを含んだ短縮されたリストをリターンする。

(load-average)
     ⇒ (169 48 36)
(load-average t)
     ⇒ (1.69 0.48 0.36)

shellコマンドのuptimeはこれと類似する情報をリターンする。

Function: emacs-pid

この関数はEmacsプロセスのプロセスIDを整数としてリターンする。

Variable: tty-erase-char

この変数はEmacs開始前にそのシステムの端末ドライバーで選択されていたerase文字を保持する。


Next: , Previous: , Up: System Interface   [Contents][Index]