#!/usr/bin/perl
#
#

$sum=0;
@total = split(' ',`echo /proc/[0-9]*/fd/*`);
print "File Descriptors, TOTAL: ",$#total+1,"\n";
open(PS,"/bin/ps ax |");
while(<PS>) {
	chop;
	($pid,$prog) = (split)[0,4];
	$prog = (split(/\//,$prog))[-1];
	if ($pid =~ /[0-9]+/) {
		opendir(DIR, "/proc/$pid/fd") || next; # silently ignore
		@files = grep { /^[^.]+/ } readdir(DIR);
		closedir(DIR);
		printf "%5d %-16s %5d\n",$pid,$prog,$#files+1;
		$sum += $#files+1
	}
}
close(PS);
print "Total: $sum\n";
