Как я могу определить операционную систему и имя хоста, используя общий lisp? - PullRequest
7 голосов
/ 07 декабря 2010

Чтобы мой файл .sbclrc работал на двух компьютерах, которые я использую, мне нужен способ получить имя хоста и / или операционную систему из sbcl. Я знаю, что могу установить, а затем искать переменную среды, но есть ли более прямой подход?

Обновление

Я изменил вопрос так, чтобы он ссылался на общий lisp, поскольку ответ Кена не относится к sbcl.

Ответы [ 2 ]

17 голосов
/ 07 декабря 2010

Я бы использовал функции 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 голос
/ 07 декабря 2010
* (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.

...