#!/usr/bin/perl ########################################### # sysinfo - Show Linux System Statistics # Mike Schilli, 2002 (m@perlmeister.com) ########################################### use warnings; use strict; use Inline "C"; my $h = sysinfo_as_hashref(); print "Uptime: $h->{uptime} secs\n"; print "Load: $h->{load1}, $h->{load5}, " . "$h->{load15}\n"; print "$h->{procs} processes running\n"; __END__ __C__ #include HV *sysinfo_as_hashref() { Inline_Stack_Vars; struct sysinfo si; HV *hash; hash = (HV*) sv_2mortal((SV*)newHV()); if(sysinfo (&si)) { return &PL_sv_undef; } hv_store(hash, "uptime", 6, newSViv(si.uptime), 0); hv_store(hash, "load1", 5, newSViv(si.loads[0]), 0); hv_store(hash, "load5", 5, newSViv(si.loads[1]), 0); hv_store(hash, "load15", 6, newSViv(si.loads[2]), 0); hv_store(hash, "procs", 5, newSViv(si.procs), 0); return hash; }