1 ! Copyright (C) 2008 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: unix alien alien.c-types kernel math sequences strings
4 io.backend.unix splitting io.encodings.utf8 io.encodings.string
6 SPECIALIZED-ARRAY: char
9 : (uname) ( buf -- int )
10 int f "uname" { char* } alien-invoke ;
13 65536 <char-array> [ (uname) io-error ] keep
14 "\0" split harvest [ utf8 decode ] map
17 : sysname ( -- string ) uname first ;
18 : nodename ( -- string ) uname second ;
19 : release ( -- string ) uname third ;
20 : version ( -- string ) uname fourth ;
21 : machine ( -- string ) uname 4 swap nth ;
22 : domainname ( -- string ) uname 5 swap nth ;
24 : kernel-version ( -- seq )
25 release ".-" split harvest 5 "" pad-tail ;