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

acct (cont'd)

    open F, $acfile or die "$!\n";

    while (1) {
        $ret = sysread F, $buf, 64;
        die "sysread: $!\n" unless defined $ret;
        last if $ret < 64;

        my ($flag, $uid, $gid, $tty, $btime, $utime, $stime, $etime,
            $mem, $io, $rw, $minflt, $majflt, $swaps, $exitcode, $cmd)
                = unpack "Cx SSS L SSSSSSSSS L xx Z*", $buf;
        
        my $user = (getpwuid $uid)[0];
        my $group = (getgrgid $gid)[0];

        printf "%-17s %s   %s\n",
            "$user.$group", scalar(localtime $btime), $cmd;
    }
    qmaild.nogroup    Sat Oct 16 02:14:49 2004   qmail-queue
    alias.nogroup     Sat Oct 16 02:14:56 2004   fastforward
    alias.nogroup     Sat Oct 16 02:14:56 2004   qmail-local
    qmails.qmail      Sat Oct 16 02:14:56 2004   qmail-queue
    identd.nogroup    Sat Oct 16 02:14:57 2004   identd
    ...