処理系を起動したディレクトリのパスネームを返す - lisp-cookbook-ja/common-lisp GitHub Wiki
処理系を起動したディレクトリのパスネームを返す
少なくともSBCL,CLISP,CMUCLではtruename関数で取得できます.
(truename "./") ;=>#P"処理系を起動したディレクトリ"
各処理系でのカレントディレクトリの取得と設定は,以下のように行えます. SBCLなら
(sb-posix:getcwd) ;=>#P"カレントディレクトリ"
(sb-posix:chdir #P"設定したいディレクトリ")
CLISPなら
(ext:default-directory) ;=>#P"カレントディレクトリ"
(ext:cd #P"設定したいディレクトリ")
CMUCLなら
(extensions:default-directory) ;=>#P"カレントディレクトリ"
(setf (extensions:default-directory) #P"設定したいディレクトリ")
カレントディレクトリの設定後に(truename "./")が返す値が変化しているかは処理系により異なるようです. また,処理系によってはdefault-pathname-defaultsに起動時のディレクトリが入っています.
ASDF に含まれる UIOP ライブラリを活用するとポータブルな処理が記述できます。
(uiop:getcwd) ; =>#P"カレントディレクトリ"
(uiop:chdir "/opt")