%hcl -f filemane Starting Lisp Listener 1 [USER] [1]->(system::unix-argc) 3 [2]->(system::unix-argv 0) "hcl" [3]->(system::unix-argv 1) "-f"ここで注意しなければならないのは、 system::unix-argvの値である 文字列は静的な共通バッファに格納されているのでその値は他の関数によって 破壊されることがあるということです。そのため後の参照のために保存する場合は copy-seqなどで一旦コピーして通常のオブジェクトにすることが必要です。 また、-i,-s,-m,-loaddir,-log,-initfileの引数はHCl が特別の意味 に使っているので特別な場合以外は使用しないでください。
[1]->(system::unix-getenv "HOME") "/usr/yamamoto" [2]->(system::unix-getenv "HCL_IMAGE") "/usr/hcl/bin/hcl.sav"unix-argvと同様に静的バッファを用いて値が返されるので必要ならばコピー して下さい。
[1]->(system::unix-getcwd) "/usr/yamamoto" [2]->(system::unix-chdir "../kawasima") 0 [3](system::unix-getcwd) "/usr/kawasima"
[1]->(system::unix-getpid) 1235 [2]->
[1]->(system "csh") ;;cshを起動する。 [2]->(system "ls -lt") ;;lsを起動する。
[1]->(setq system::*load-directories
'("$HCLFASL" "~/fasl/"))
とすればもし現在デイレクトリに目的ファイルが存在しない場合に次候補と
して\$HCLFASL/のデイレクトリを、さらに無ければ~/fasl/の
デイレクトリを探索します。
漢字を含む文字列は8bit文字だけの文字列とは内部表現 が異なり、そのreverse,elt,char等の関数は漢字を正しく一文字と認識して 処理します。漢字を含む文字列を(coerse obj 'simple-string)によって simple-stringに変換することが可能です。simple-stringに変換された場合でも 印刷などはなんら問題はありません。しかしsimple-stringに変換された後 ではreverse,elt等が漢字を認識しませんからそれらを実行した場合 思わぬ結果となることがありますが驚かないで下さい。 Symbolに漢字を使用した場合、print-nameの内部表現はsimple-string となっています。