2010-12-07 19 views

Respuesta

17

que haría uso de los '' environment funciones:

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

Gracias, no sé cómo me perdí esos! –

+0

Aunque esas funciones son portátiles, tenga en cuenta que en otras implementaciones devuelven cosas totalmente diferentes. Los probé con CLisp y me sorprendió la mayoría de los valores devueltos. –

+1

Sí, si desea ser portátil en las compilaciones * y * de arquitecturas, necesitará un poco más de trabajo aquí. '* features *' es un poco más consistente entre los dos, pero aún difiere, por ejemplo, tanto SBCL como CLISP definen ': UNIX' pero solo SBCL define': LINUX'. Cuando lo necesita para algo más que un archivo de configuración personal, la biblioteca de características triviales es muy útil: http://www.cliki.net/trivial-features – Ken

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 

EDIT: Me gusta @ Ken's solution better. +1.

Cuestiones relacionadas