Next: , Previous: Getting Out, Up: System Interface


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

Emacsでは、さまざまな関数を介して オペレーティングシステム環境の変数を参照できます。 これらの変数には、システムの名前、ユーザーの識別番号uidなどが 含まれます。

— Variable: system-configuration

この変数は、読者のシステムのハードウェア/ソフトウェア構成に対する GNUの構成名を文字列で保持している。 この文字列の一部分を検査する簡便な方法は string-matchを使うことである。

— Variable: system-type

この変数の値は、Emacsが動作している オペレーティングシステムの種類を表すシンボルである。 つぎに可能な値の一覧を示す。

alpha-vms
Alphaマシン上のVMS。
aix-v3
AIX。
berkeley-unix
バークレーBSD。
dgux
データジェネラルDGUXオペレーティングシステム。
gnu
(HURDかMachから成るGNUカーネルを使っている)GNUシステム。
gnu/linux
GNU/Linuxシステム。 つまり、Linuxカーネルを用いたGNUシステムの変種。 (これらのシステムは人々が『Linux』と呼ぶものの1つであるが、 Linxuは実際にはカーネルのみであり、システム全体ではない。)
hpux
ヒューレットパッカードHPUXオペレーティングシステム。
irix
シリコングラフィックスIrixシステム。
ms-dos
マイクロソフトMS-DOS『オペレーティングシステム』。
next-mach
NeXTのMachベースのシステム。
rtu
マスコンプRTU、UCBユニバース。
unisoft-unix
ユニソフトUniPlus。
usg-unix-v
AT&T System V。
vax-vms
VAX VMS。
windows-nt
マイクロソフトWindows NT。
xenix
SCO Xenix 386。

絶対に必要でない限り、細分類のために新たなシンボルを追加したくない! 実際、将来にはこれらのいくつかを削除することを願っている。 オペレーティングシステムの違いを区別するには、 system-configurationを使うことを勧める。

— Function: system-name

この関数は読者が使っているマシンの名前を返す。

          (system-name)
                "www.gnu.org"

シンボルsystem-nameは、関数としても変数としても使えます。 実際、関数としては、変数system-nameが現在保持している値を返します。 したがって、Emacsが読者のシステム名に関して混乱している場合には、 変数system-nameに設定できます。 変数はフレームタイトルの作成にも有用です(see Frame Titles)。

— Variable: mail-host-address

この変数がnil以外であると、system-nameのかわりに 電子メイルアドレスの生成に使われる。 たとえば、user-mail-addressのデフォルト値の作成に使われる。 see User Identification。 (これはEmacsの始動時に行われるため、 Emacsをダンプしたときの値が実際に使われる値である。 see Building Emacs)。

— Function: getenv var

この関数は、環境変数varの値を文字列で返す。 Emacs内部では、環境変数の値はLisp変数process-environmentに 保持されている。

          (getenv "USER")
                "lewis"
          
          lewis@slug[10] % printenv
          PATH=.:/user/lewis/bin:/usr/bin:/usr/local/bin
          USER=lewis
          TERM=ibmapa16
          SHELL=/bin/csh
          HOME=/user/lewis
— コマンド: setenv variable value

このコマンドは、環境変数variableに値valueを設定する。 どちらの引数も文字列である。 この関数はprocess-environmentを修正することで動作する。 この変数をletで束縛しても十分に実用的である。

— Variable: process-environment

この変数は、各要素が1つの環境変数を記述する文字列のリストである。 関数getenvsetenvは、この変数を用いて動作する。

          process-environment
           ("l=/usr/stanford/lib/gnuemacs/lisp"
              "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin"
              "USER=lewis"
              "TERM=ibmapa16"
              "SHELL=/bin/csh"
              "HOME=/user/lewis")
— Variable: path-separator

この変数は、(環境変数などで)探索パスを 区切る文字を指定する文字列を保持する。 UNIXとGNUシステムではその値は":"であり、 MS-DOSとWidows NTでは";"である。

— Variable: invocation-name

この変数は、起動したEmacsのプログラム名を保持する。 値は文字列であり、ディレクトリ名は含まない。

— Variable: invocation-directory

この変数は、起動したEmacsの実行形式のディレクトリを保持する。 ディレクトリを判別できない場合にはnilである。

— Variable: installation-directory

nil以外であると、サブディレクトリlib-srcetcを 探すためのディレクトリである。 Emacsがこれらのディレクトリを標準のインストールディレクトリで みつけられなくてもEmacsの実行形式になんらかの意味で 関連するディレクトリでみつけられれば、nil以外である。

— Function: load-average &optional use-float

この関数は、1分間/5分間/15分間のロードアベレッジ (負荷平均)をリストで返す。

デフォルトでは、これらの値は、動作しようとしてるプロセスの平均個数を表す システムのロードアベレッジを100倍した整数である。 use-floatnil以外であると、 100倍しない浮動小数点数で返す。

          (load-average)
                (169 48 36)
          (load-average t)
                (1.69 0.48 0.36)
          
          lewis@rocky[5] % uptime
           11:55am  up 1 day, 19:37,  3 users,
           load average: 1.69, 0.48, 0.36
— Function: emacs-pid

この関数は、Emacsプロセスのプロセス番号idを返す。

— Variable: tty-erase-char

この変数は、Emacsが始動するまえに システムの端末ドライバが選んでいた消去文字を保持する。

— Function: setprv privilege-name &optional setp getprv

この関数は、(UNIX上には存在しない)VMS基本操作を設定/再設定する。 最初の引数は文字列で表した基本操作の名前である。 第2引数setptnilであり、 基本操作をオンにするかオフにするかを表す。 デフォルトはnilである。 関数は、成功すればtを返し、さもなければnilを返す。

第3引数getprvnil以外であると、 setprvは基本操作を変更しないが、 その基本操作が現在オンであるかオフであるかを表す tnilを返す。