プロセス


call-process

Type: Function
Arguments: call-process COMMAND-LINE &key :environ :no-std-handles :input :output :error :exec-directory :show :wait
Package: editor
File: builtin.l
外部プログラムを実行します。完全にxyzzyの外部でプログラムを実行します。

  COMMAND-LINE    : 実行するコマンドをオプション付で指定します。
  :environ        : 設定する環境変数を連想リスト形式で渡します。
                    (("HOME" . "C:/applications/xyzzy/")
                     ("TOPDIR" . "C:/spool/"))
  :no-std-handles : (詳細不明)
  :input          : 標準入力を使用する外部プログラムであれば入力ファイル名
                    を指定します。
  :output         : 標準出力を使用する外部プログラムであれば出力ファイル名
                    を指定します。
  :error          : (詳細不明)
  :exec-directory : 実行するディレクトリを指定します。
  :show           : 外部プログラムの実行時の表示を指定します。
                    :show      通常のウィンドウ
                    :no-active 非アクティブ
                    :minimize  最小化
                    :maximize  最大化
                    :hide      非表示
                    上記以外   通常のウィンドウ
  :wait           : 外部プログラムが終了するのを待ち合わせます。

実行したプロセスを取得したいときは make-process を使います.

使用例:
  ;;; notepad.exeの終了を待ち合わせてみる。
  (call-process "notepad" :wait t)

SeeAlso: execute-shell-command
SeeAlso: make-process
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

count-xyzzy-instance

Type: Function
Arguments: count-xyzzy-instance
Package: editor
File: builtin.l
現在起動中のxyzzyの数を返します。

[ Intro | 目次 | 索引 | 目的別 | プロセス ]

execute-shell-command

Type: Function
Arguments: execute-shell-command COMMAND &optional INFILE OUTPUT ENVIRON DIRECTORY
Package: editor
File: process.l
外部プログラムを実行します。結果だけをxyzzyに取り込みます。

  COMMAND    : 実行するコマンドをオプション付で指定します。
  INFILE     : 標準入力を使用する外部プログラムであれば入力ファイル名を
               指定します。
  OUTPUT     : 標準出力を出力するバッファを指定します。
  ENVIRON    : 設定する環境変数を連想リスト形式で渡します。
                (("HOME" . "C:/applications/xyzzy/")
                 ("TOPDIR" . "C:/spool/"))
  DIRECTORY  : 実行するディレクトリを指定します。

このコマンドは call-process を使って実装されています。
call-processとは違って標準出力をバッファに出力します。出力するバッファは完
全に破壊されますので注意してください。
外部プログラムとして実行したくない場合は,execute-subprocess を使います。

使用例:
  ;;; コマンドプロンプトのhelpを表示してみる。
  (execute-shell-command "help" nil (selected-buffer))

SeeAlso: call-process
SeeAlso: execute-subprocess
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

execute-subprocess

Type: Function
Arguments: execute-subprocess CMD &optional ARG BUFNAME ENVIRON DIRECTORY
Package: editor
File: process.l
プログラムを BUFFNAME で指定したバッファ上で実行します。
結果は, BUFFNAME で指定されたバッファ上に表示されます。

  CMD        : 実行するコマンドをオプション付で指定します。
  ARG        : (詳細不明)
  BUFNAME    : 関連付けるバッファ名を指定します。デフォルトは "*Command Output*" です。
               指定したバッファが存在しないとき,新しくバッファを作ります。
  ENVIRON    : 設定する環境変数を連想リスト形式で渡します。
                  (("HOME" . "C:/applications/xyzzy/")
                   ("TOPDIR" . "C:/spool/"))
  DIRECTORY  : 実行するディレクトリを指定します。 

指定されたバッファは command-output-mode になります。

使用例:
  ;;; cmd.exe をバッファ上で実行します。 シンプルなシェルとして動作します。
  (execute-subprocess "cmd.exe")
  =>#<buffer: *Command Output*>

SeeAlso: make-process
SeeAlso: execute-shell-command
SeeAlso: command-output-mode
SeeAlso: shell-command-line
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

kill-process

Type: Function
Arguments: kill-process PROCESS
Package: editor
File: builtin.l
プロセスを強制的に終了させます。

SeeAlso: signal-process
SeeAlso: make-process
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

kill-subprocess

Type: Function
Arguments: kill-subprocess
Package: editor
File: process.l
バッファに割り付けられているプロセスを停止させます。

SeeAlso: kill-process
SeeAlso: make-process
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

make-process

Type: Function
Arguments: make-process COMMAND-LINE &key :environ :output :exec-directory :incode :outcode :eol-code
Package: editor
File: builtin.l
プロセスを起動します。

  COMMAND-LINE    : 実行するコマンドをオプション付で指定します。
  :environ        : 設定する環境変数を連想リスト形式で渡します。
                    (("HOME" . "C:/applications/xyzzy/")
                     ("TOPDIR" . "C:/spool/"))
  :output         : プロセスの標準出力を出力するバッファを指定します。
  :exec-directory : 実行するディレクトリを指定します。
  :incode         : プロセスの入力の文字コードを指定します。
  :outcode        : プロセスの出力の文字コードを指定します。
  :eol-code       : 改行コードを指定します。

プロセスへの入力はprocess-send-stringを使用します。
プロセスはバッファに関連付けられ、プロセスの出力がバッファにそのまま出力されます。
バッファに関連付けられたプロセスの状態は,モードライン上に :Run や :Exit と
表示されます。また、環境変数や出力先等を変更できます。

戻り値は,プロセスの関連付けられたバッファです。

参考:
  [xyzzy:02210]山本真二さん
  call-process または別の組み込み関数で、標準入力、標準出力、標準エラー
  出力を直接バッファに繋ぐようにした方が早くてかっこいいと思うのですが、
  難しいですか?

  (make-process *eshell* :output (selected-buffer))
  (process-send-string (buffer-process (selected-buffer))
                       (concatenate 'string cmd *shell-ret*))

SeeAlso: call-process
SeeAlso: execute-subprocess
SeeAlso: buffer-process
SeeAlso: mode-line-format
SeeAlso: process-send-string
SeeAlso: set-process-sentinel
SeeAlso: set-process-filter
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-buffer

Type: Function
Arguments: process-buffer PROCESS
Package: editor
File: builtin.l
プロセスが割り付けられているバッファを返します。

SeeAlso: buffer-process
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-eol-code

Type: Function
Arguments: process-eol-code PROCESS
Package: editor
File: builtin.l
PROCESSに設定された改行コードを返します。

SeeAlso: set-process-eol-code
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-exit-code

Type: Function
Arguments: process-exit-code PROCESS
Package: editor
File: builtin.l
指定されたプロセスPROCESSの終了コードを取得します。

SeeAlso: signal-process
SeeAlso: process-status
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-filter

Type: Function
Arguments: process-filter PROCESS
Package: editor
File: builtin.l
PROCESSに設定されたFILTER用の関数を返します。

SeeAlso: set-process-filter
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-incode

Type: Function
Arguments: process-incode PROCESS
Package: editor
File: builtin.l
PROCESSに設定された入力用の漢字コードを指定します。

SeeAlso: set-process-incode
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-outcode

Type: Function
Arguments: process-outcode PROCESS
Package: editor
File: builtin.l
PROCESSに設定された出力用の漢字コードを指定します。

SeeAlso: set-process-outcode
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-send-string

Type: Function
Arguments: process-send-string PROCESS STRING
Package: editor
File: builtin.l
プロセスに文字列を送ります。

  PROCESS : 文字列を送りつけるプロセスを指定します。 
  STRING  : 送りつける文字列を指定します。

使用例:
  ;;; sort.exeを起動して、"abc" "aab" "aac"を送りつける。
  (setq proc (make-process "sort"))
  => #<process 135271372>
  (process-send-string proc "abc\n") => t
  (process-send-string proc "aab\n") => t
  (process-send-string proc "aac\n") => t
  (process-send-string proc "^Z")    => t
  aab
  aac
  abc

SeeAlso: make-process
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-sentinel

Type: Function
Arguments: process-sentinel PROCESS
Package: editor
File: builtin.l
PROCESSに設定されたSENTINEL用の関数を返します。

SeeAlso: set-process-sentinel
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

process-status

Type: Function
Arguments: process-status PROCESS
Package: editor
File: builtin.l
指定されたプロセスの状態を返します。

  :run  動作中
  :exit 停止

SeeAlso: kill-process
SeeAlso: make-process
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

set-process-eol-code

Type: Function
Arguments: set-process-eol-code PROCESS CODE
Package: editor
File: builtin.l
PROCESSで処理する場合の改行コードCODEを設定します。

SeeAlso: process-eol-code
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

set-process-filter

Type: Function
Arguments: set-process-filter PROCESS FILTER
Package: editor
File: builtin.l
プロセスの出力を加工するためのフィルタを指定します。

SeeAlso: process-filter
SeeAlso: set-process-outcode
SeeAlso: set-process-incode
SeeAlso: set-process-sentinel
SeeAlso: process-send-string
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

set-process-incode

Type: Function
Arguments: set-process-incode PROCESS CODE
Package: editor
File: builtin.l
プロセスからset-process-filterに入力がある場合の漢字コードを指定します。

SeeAlso: set-process-outcode
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

set-process-outcode

Type: Function
Arguments: set-process-outcode PROCESS CODE
Package: editor
File: builtin.l
プロセスに対してsend-process-stringをする場合の漢字コードを指定します。

SeeAlso: set-process-incode
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

set-process-sentinel

Type: Function
Arguments: set-process-sentinel PROCESS SENTINEL
Package: editor
File: builtin.l
プロセスが終了する場合に呼ばれる関数(いわゆるSENTINEL)を指定します。

SeeAlso: process-sentinel
SeeAlso: set-process-filter
[ Intro | 目次 | 索引 | 目的別 | プロセス ]

shell-execute

Type: Function
Arguments: shell-execute FILENAME &optional DIRECTORY PARAMS
Package: editor
File: builtin.l
何かを行います。URLであればそれを開き、実行ファイルであれば実行したり、
拡張子に応じてアプリケーションを実行します。

  FILENAME  : 何か?URLもOK?
  DIRECTORY : どこでそれを実行するかを指定します。
        t       (cwd)の返されるディレクトリで実行されるみたいです。
        nil     特に指定がないのでFILENAMEのディレクトリで実行されます。

質問:

  | http://java.sun.com/products/jdk/1.2/docs/api/index.html
  | とかをF3キー一発で開けたらって思ってるんです。

  こんなかんじでどうぞ。

  (defun foo ()
    (interactive)
    (shell-execute "http://java.sun.com/products/jdk/1.2/docs/api/index.html" t))

[ Intro | 目次 | 索引 | 目的別 | プロセス ]

signal-process

Type: Function
Arguments: signal-process PROCESS
Package: editor
File: builtin.l
指定されたプロセスPROCESSにシグナルを送ります。
※SIGINT?

SeeAlso: kill-process
SeeAlso: process-exit-code
[ Intro | 目次 | 索引 | 目的別 | プロセス ]