#include #include #include void ps(char*); void error(char*); int cmp(void*, void*); Biobuf bout; int pflag; int aflag; void main(int argc, char *argv[]) { int fd, i, n, tot, none = 1; char dir[70*DIRLEN], *mem; ARGBEGIN { case 'a': aflag++; break; case 'p': pflag++; break; } ARGEND; Binit(&bout, 1, OWRITE); if(chdir("/proc")==-1) error("/proc"); fd=open(".", OREAD); if(fd<0) error("/proc"); mem = sbrk(0); tot = 0; while((n = read(fd, dir, sizeof dir)) > 0){ if(brk((void*)(mem + tot + n)) == -1) error("out of memory"); memmove(mem+tot, dir, n); tot += n; } qsort(mem, tot/DIRLEN, DIRLEN, cmp); for(i=0; i