オペレーティングシステムの用語ではプロセス(process)とはプログラムを実行できるスペースのことです。Emacsはプロセス内で実行されます。Emacs Lispプログラムは別のプログラムをそれら自身のプロセス内で呼び出すことができます。これらは親プロセス(parent process)であるEmacsプロセスのサブプロセス(subprocesses)、または子プロセス(child processes)と呼ばれます。
Emacsのサブプロセスは同期(synchronous)か非同期(asynchronous)であり、それはそれらが作成された方法に依存します。同期サブプロセスを作成した際には、Lispプログラムは実行を継続する前にそのサブプロセスの終了を待機します。非同期サブプロセスを作成したときには、それをLispプログラムと並行して実行できます。この種のサブプロセスはEmacsではLispオブジェクととして表現され、そのオブジェクトも“プロセス”と呼ばれています。Lispプログラムはサブプロセスとのやり取りやサブプロセスの制御のためにこのオブジェクトを使用できます。たとえばシグナル送信、ステータス情報の取得、プロセス出力の受信やプロセスへ入力を送信することができます。
プログラムを実行するプロセスに加えて、Lispプログラムは同一または他のマシン上で実行中のデバイスやプロセスにたいして、いくつかのタイプの接続をオープンできます。サポートされる接続タイプはネットワーク接続のTCPとUDP、シリアルポート接続、およびパイプ接続です。そのような接続はそれぞれプロセスオブジェクトとしても表現されます。
この関数は、objectがEmacsのプロセスオブジェクトを表すならt
、それ以外はnil
をリターンする。プロセスオブジェクトはプログラム実行中のサブプロセスやサポートされた任意のタイプの接続を表すことができる。
カレントEmacsセッションのサブプロセスに加えて、そのマシン上で実行中の他のプロセスにアクセスすることもできます。System Processesを参照してください。
• Subprocess Creation: | サブプロセスを開始する関数。 | |
• Shell Arguments: | shellに渡すために引数をクォートする。 | |
• Synchronous Processes: | 同期サブプロセス使用の詳細。 | |
• Asynchronous Processes: | 非同期サブプロセスの起動。 | |
• Deleting Processes: | 非同期サブプロセスの削除。 | |
• Process Information: | 実行状態および他の属性へのアクセス。 | |
• Input to Processes: | 非同期サブプロセスへの入力の送信。 | |
• Signals to Processes: | 非同期サブプロセスの停止、継続、割り込み。 | |
• Output from Processes: | 非同期サブプロセスからの出力の収集。 | |
• Sentinels: | プロセスの実行状態変更時に実行されるセンチネル。 | |
• Query Before Exit: | exitによりプロセスがkillされる場合に問い合わせるかどうか。 | |
• System Processes: | そのシステム上で実行中の別プロセスへのアクセス。 | |
• Transaction Queues: | サブプロセスとのトランザクションベースのコミュニケション。 | |
• Network: | ネットワーク接続のopen。 | |
• Network Servers: | Emacsによるネット接続のacceptを可能にするネットワークサーバー。 | |
• Datagrams: | UDPネットワーク接続。 | |
• Low-Level Network: | 接続およびサーバーを作成するための、より低レベルだがより汎用的な関数。 | |
• Misc Network: | ネット接続用の追加の関連する関数。 | |
• Serial Ports: | シリアルポートでのやり取り。 | |
• Byte Packing: | bindatを使用したバイナリーデータのpackとunpack。 |