为了让我的 .sbclrc 文件在我使用的两台计算机上工作,我想要一种从 sbcl 中获取主机名和/或操作系统的方法。我知道我可以设置然后查找环境变量,但是有更直接的方法吗?
更新
我将问题更改为引用 common lisp,因为 Ken 的回答并非特定于 sbcl。
为了让我的 .sbclrc 文件在我使用的两台计算机上工作,我想要一种从 sbcl 中获取主机名和/或操作系统的方法。我知道我可以设置然后查找环境变量,但是有更直接的方法吗?
更新
我将问题更改为引用 common lisp,因为 Ken 的回答并非特定于 sbcl。
我会使用“环境”功能:
* (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"
* (require :sb-bsd-sockets)
("SB-BSD-SOCKETS" "SB-GROVEL" "ASDF")
* (use-package :sb-bsd-sockets)
T
* (host-ent-name (get-host-by-name "localhost"))
"myhost.mydomain.ext"
* (find :win32 *features*)
:WIN32
* (find :linux *features*)
NIL
编辑:我更喜欢@Ken 的解决方案。+1。