Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!uunet!shelby!agate!ziploc!eps From: eps@toaster.SFSU.EDU (Eric P. Scott) Newsgroups: comp.sys.next Subject: table() call broken in 2.0? Message-ID: <1392@toaster.SFSU.EDU> Date: 4 Mar 91 05:34:30 GMT Reply-To: eps@cs.SFSU.EDU (Eric P. Scott) Organization: San Francisco State University Lines: 58 In 1.0/1.0a you could read the process table using TBL_PROCINFO; for example, here's a "mini-ps": #include #include #include main() { register struct tbl_procinfo *pip; struct tbl_procinfo *pil; int npi; struct tbl_procinfo pi[256]; /* bad assumption! */ npi=table(TBL_PROCINFO, 0, (char *)pi, sizeof pi/sizeof pi[0], sizeof pi[0]); if (npi<=0) { fputs("No processes??\n", stderr); exit(1); } pip=pi; pil= &pi[npi]; fputs(" F UID PID PPID PGRP TTYD COMMAND\n", stdout); do if (pip->pi_status!=PI_EMPTY) { printf("%7x%5d%6u%6u%6u ", pip->pi_flag, pip->pi_uid, pip->pi_pid, pip->pi_ppid, pip->pi_pgrp); if (pip->pi_ttyd==-1) fputs(" ?", stdout); else printf("%3d,%3d", major(pip->pi_ttyd), minor(pip->pi_ttyd)); if (pip->pi_status!=PI_ACTIVE) fputs(" ", stdout); printf(" %.20s\n", pip->pi_comm); } while (++pip