このプロセスイメージ保存は、Solarisの動的ロード機能に深く依存しているため、
Solaris2のEuslispにおいてサポートされていない。
Solarisの動的ロード機能は、共有するオブジェクトをsbrk点の上の
位置に依存した形でロードする。
save path &optional (symbol-file "") starter [関数]
-
-
saveは、現在のEuslisp処理の環境をファイルにダンプする。
そのファイルは、後でUNIX命令として呼び出すことができる。
もし関数名がstarterによって指定されているなら、
その関数はその命令の実行が始まるときに評価される。
それぞれの命令行の引き数はEuslispの中で強制的に文字列にされ、
引き数としてstarterに受け渡される。
それで、命令行を解析できる。
*standard-input*と*standard-output*を除くすべてのストリームを
確実にクローズしていなければならない。
ファイルがオープンされた状態を保存することはできない。
また、mmapを試そうとしてはならない。
mmapはインターネットのソケットストリームを作るとき、見えない所で実行されている。
Sunのネットワークライブラリはhost-by-nameのようなNIS情報をメモリ上に
いつも展開し、プロセスの最上位に置くため保存できない。
そのため、保存されたイメージが実行されるても、ネットワークライブラリへの
アクセスはどれも失敗し、コアダンプが生じる。
Xwindowもこのライブラリを使用している。
それで、一度Xserverに接続されたプロセスイメージを保存することはできない。
2016-04-05