Next Five Minute Lightning Talk: Perl's syscall Function #7            

sysinfo (cont'd)

    my $buf = "\0" x 64;

    syscall(&SYS_sysinfo, $buf) == 0 or die "$!\n";

    my ($uptime, $load1, $load5, $load15, $totalram, $freeram,
        $sharedram, $bufferram, $totalswap, $freeswap, $procs)
            = unpack "l L9 S", $buf;
    
    print <<EOT;
    ${\(int $uptime / 86400)} days uptime
    $totalram RAM, $freeram free (${\(int $freeram/$totalram*100)}%)
    $totalswap swap, $freeswap free (${\(int $freeswap/$totalswap*100)}%)
    EOT
    142 days uptime
    528662528 RAM, 35692544 free (6%)
    536862720 swap, 506224640 free (94%)