How can I determine the operating system and hostname using common lisp?

别来无恙 提交于 2019-12-08 17:36:12

问题


To get my .sbclrc file working on the two computers I use, I'd like a way to get the hostname and/or operating system from within sbcl. I know I could set and then look for an environment variable, but is there a more direct approach?

Update

I changed the question to refer to common lisp, since the answer from Ken is not specific to sbcl.


回答1:


I'd use the 'environment' functions:

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



回答2:


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

EDIT: I like @Ken's solution better. +1.



来源:https://stackoverflow.com/questions/4372568/how-can-i-determine-the-operating-system-and-hostname-using-common-lisp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!