National Institute of Advanced Industrial Science and Technology (AIST) This page is a page of the former research institute. We stopped updating on March 31.2001.
E-mail to webmaster (Japanese) E-mail to webmaster (English)
next up previous contents index
Next: Cで書かれたLisp関数の追加 Up: システム関数 Previous: キーインデックスファイル

 

UNIXプロセス

EuslispからUNIX命令を実行ためにunix:system関数を使用すること。 piped-forkは、標準出力を標準入力がパイプを通してEuslispの双方向ストリームに 接続されるサブプロセスを作成する。 piped-forkはストリームを返す。 以下に示す関数は、"wc"を使用することにより、ファイルに含まれる行の数を 数えるものである。

(defun count-lines (file) (read (piped-fork "wc" file)))

次の例は、他のワークステーション"etlic0"の上にeusプロセスを作成し、 分散計算をするためのポートを提供する。

(setq ic0eus (piped-fork "rsh" "etlic0" "eus"))
(format ic0eus "(list 1 2 3)~%")
(read ic0eus) --> (1 2 3)

ソースコードを修正するために、Euslispからezを呼び出すことができる。 スクリーンエディターezは、メッセージキューを通してEuslispと接続する。 もし、既にezプロセスをEuslispと並列に実行しているならば、 ezはezプロセスを再スタートし、ターミナル制御を得る。 ezの中でesc-Pあるいはesc-M命令を発行することにより、 テキストは戻され、Euslispで評価される。 ファイルに少しの変更を加えたとき、全部のファイルをロードする必要がないので、 デバッグするのにこれは便利である。 emacsの上でもM-X run-lisp命令でおなじことが可能である。

  cd &optional (dir (unix:getenv "HOME")) [関数]

  ez &optional key [関数]   piped-fork &optional (exec) &rest args [関数]   rusage [関数]



Hirofumi Nakagaki
Fri Mar 22 14:04:29 JST 1996