ps: add -r flag (sorry) [rsc] --rw-rw-r-- M 628694 glenda sys 2783 Apr 10 12:31 sys/src/cmd/ps.c /n/sourcesdump/2006/0410/plan9/sys/src/cmd/ps.c:9,14 - /n/sourcesdump/2006/0411/plan9/sys/src/cmd/ps.c:9,15 Biobuf bout; int pflag; int aflag; + int rflag; void main(int argc, char *argv[]) /n/sourcesdump/2006/0410/plan9/sys/src/cmd/ps.c:24,29 - /n/sourcesdump/2006/0411/plan9/sys/src/cmd/ps.c:25,33 case 'p': pflag++; break; + case 'r': + rflag++; + break; } ARGEND; Binit(&bout, 1, OWRITE); if(chdir("/proc")==-1) /n/sourcesdump/2006/0410/plan9/sys/src/cmd/ps.c:54,62 - /n/sourcesdump/2006/0411/plan9/sys/src/cmd/ps.c:58,66 void ps(char *s) { - ulong utime, stime, size; + ulong utime, stime, rtime, size; int argc, basepri, fd, i, n, pri; - char args[256], *argv[16], buf[64], pbuf[8], status[4096]; + char args[256], *argv[16], buf[64], pbuf[8], rbuf[20], rbuf1[20], status[4096]; sprint(buf, "%s/status", s); fd = open(buf, OREAD); /n/sourcesdump/2006/0410/plan9/sys/src/cmd/ps.c:83,88 - /n/sourcesdump/2006/0411/plan9/sys/src/cmd/ps.c:87,93 */ utime = strtoul(argv[3], 0, 0)/1000; stime = strtoul(argv[4], 0, 0)/1000; + rtime = strtoul(argv[5], 0, 0)/1000; size = strtoul(argv[9], 0, 0); if(pflag){ basepri = strtoul(argv[10], 0, 0); /n/sourcesdump/2006/0410/plan9/sys/src/cmd/ps.c:90,98 - /n/sourcesdump/2006/0411/plan9/sys/src/cmd/ps.c:95,116 sprint(pbuf, " %2d %2d", basepri, pri); } else pbuf[0] = 0; - Bprint(&bout, "%-10s %8s %4lud:%.2lud %3lud:%.2lud%s %7ludK %-8.8s ", + + if(rflag){ + if(rtime >= 86400) + sprint(rbuf, " %lud:%02lud:%02lud:%02lud", rtime/86400, (rtime/3600)%24, (rtime/60)%60, rtime%60); + else if(rtime >= 3600) + sprint(rbuf, " %lud:%02lud:%02lud", rtime/3600, (rtime/60)%60, rtime%60); + else + sprint(rbuf, " %lud:%02lud", rtime/60, rtime%60); + sprint(rbuf1, "%12s", rbuf); + }else + rbuf1[0] = 0; + + Bprint(&bout, "%-10s %8s%s %4lud:%.2lud %3lud:%.2lud %s %7ludK %-8.8s ", argv[1], s, + rbuf1, utime/60, utime%60, stime/60, stime%60, pbuf, [rsc] --rw-rw-r-- M 628694 glenda sys 1722 Apr 10 12:31 sys/man/1/ps /n/sourcesdump/2006/0410/plan9/sys/man/1/ps:4,15 - /n/sourcesdump/2006/0411/plan9/sys/man/1/ps:4,15 .SH SYNOPSIS .B ps [ - .B -pa + .B -apr ] .PP .B psu [ - .B -pa + .B -apr ] [ .I user /n/sourcesdump/2006/0410/plan9/sys/man/1/ps:82,92 - /n/sourcesdump/2006/0411/plan9/sys/man/1/ps:82,98 .IR resource . .PD .PP - With the + The + .B -r + flag causes + .I ps + to print, before the user time, the elapsed real time for the process. + .PP + The .B -p - flag, + flag causes .I ps - also prints, after the system time, the baseline and current priorities of each process. + to print, after the system time, the baseline and current priorities of each process. .PP The .B -a