2010-12-07 49 views
7

为了让我的.sbclrc文件在我使用的两台计算机上工作,我想要一种方法从sbcl中获取主机名和/或操作系统。我知道我可以设置,然后寻找一个环境变量,但有没有更直接的方法?如何使用common lisp来确定操作系统和主机名?

更新

我改变了这个问题指Common Lisp的,因为从肯的回答是不特定SBCL。

回答

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" 
+0

谢谢,我不知道我是多么怀念那些! – 2010-12-07 03:54:42

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 

编辑:我喜欢@肯的解决方案更好。 +1。

相关问题