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

时间:2010-12-07 01:20:35

标签: common-lisp sbcl

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

更新

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

2 个答案:

答案 0 :(得分:17)

我使用'environment'函数:

* (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"

答案 1 :(得分:1)

* (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。