如何使用常见的lisp确定操作系统和主机名?

Dan*_*ker 7 sbcl common-lisp

为了让我的.sbclrc文件在我使用的两台计算机上运行,​​我想要一种从sbcl中获取主机名和/或操作系统的方法.我知道我可以设置然后查找环境变量,但有更直接的方法吗?

更新

我将问题改为引用普通的lisp,因为Ken的答案并不是特定于sbcl.

Ken*_*Ken 17

我使用' 环境 '功能:

* (machine-instance)
"myhostname"
* (machine-type)
"X86-64"
* (machine-version)
"Intel(R) Core(TM)2 Quad CPU    Q6600  @ 2.40GHz"
* (software-type)
"Linux"
* (software-version)
"2.6.32-3-amd64"
Run Code Online (Sandbox Code Playgroud)

  • 是的,如果您想跨编译器*和*架构进行移植,那么您需要在这里做更多的工作。两者之间的“*features*”更加一致,但仍然有所不同,例如,SBCL 和 CLISP 都定义了“:UNIX”,但只有 SBCL 定义了“:LINUX”。当您需要它不仅仅是个人配置文件时,trivial-features 库非常方便:http://www.cliki.net/trivial-features (2认同)