📄 output.c
字号:
long len = 0; len = strlen(sig); if(wide_signals){ if(len>8) return sprintf(outbuf, "%s", sig); return sprintf(outbuf, "00000000%s", sig); } if(len-strspn(sig,"0") > 8) return sprintf(outbuf, "<%s", sig+len-8); return sprintf(outbuf, "%s", sig+len-8);}#elsestatic int help_pr_sig(unsigned long long sig){ if(wide_signals) return sprintf(outbuf, "%016Lx", sig); if(sig>>32) return sprintf(outbuf, "<%08Lx", sig&0xffffffffLL); return sprintf(outbuf, "%08Lx", sig&0xffffffffLL);}#endifstatic int pr_sig(void){ return help_pr_sig(pp->signal);}static int pr_sigmask(void){ return help_pr_sig(pp->blocked);}static int pr_sigignore(void){ return help_pr_sig(pp->sigignore);}static int pr_sigcatch(void){ return help_pr_sig(pp->sigcatch);}static int pr_egid(void){ return sprintf(outbuf, "%d", pp->egid);}static int pr_rgid(void){ return sprintf(outbuf, "%d", pp->rgid);}static int pr_sgid(void){ return sprintf(outbuf, "%d", pp->sgid);}static int pr_fgid(void){ return sprintf(outbuf, "%d", pp->fgid);}static int pr_ruid(void){ return sprintf(outbuf, "%d", pp->ruid);}static int pr_suid(void){ return sprintf(outbuf, "%d", pp->suid);}static int pr_fuid(void){ return sprintf(outbuf, "%d", pp->fuid);}static int pr_fgroup(void){ if(strlen(pp->fgroup)>max_rightward) return sprintf(outbuf, "%d", pp->fgid); return sprintf(outbuf, "%s", pp->fgroup);}static int pr_sgroup(void){ if(strlen(pp->sgroup)>max_rightward) return sprintf(outbuf, "%d", pp->sgid); return sprintf(outbuf, "%s", pp->sgroup);}static int pr_fuser(void){ if(user_is_number || (strlen(pp->fuser)>max_rightward)) return sprintf(outbuf, "%d", pp->fuid); return sprintf(outbuf, "%s", pp->fuser);}static int pr_suser(void){ if(user_is_number || (strlen(pp->suser)>max_rightward)) return sprintf(outbuf, "%d", pp->suid); return sprintf(outbuf, "%s", pp->suser);}static int pr_sess(void){ return sprintf(outbuf, "%u", pp->session);}static int pr_tpgid(void){ return sprintf(outbuf, "%d", pp->tpgid);}/* SGI uses "cpu" to print the processor ID with header "P" */static int pr_sgi_p(void){ /* FIXME */ if(pp->state == 'R') return sprintf(outbuf, "%d", 0); return sprintf(outbuf, "*");}/***************************************************************************//*************************** other stuff ***********************************//* * Old header specifications. * * short Up " PID TTY STAT TIME COMMAND" * long l Pp " FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND * user u up "USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND * jobs j gPp " PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND * sig s p " UID PID SIGNAL BLOCKED IGNORED CATCHED STAT TTY TIME COMMAND * vm v r " PID TTY STAT TIME PAGEIN TSIZ DSIZ RSS LIM %MEM COMMAND * m m r " PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND * regs X p "NR PID STACK ESP EIP TMOUT ALARM STAT TTY TIME COMMAND *//* * Unix98 requires that the heading for tty is TT, though XPG4, Digital, * and BSD use TTY. The Unix98 headers are: * args,comm,etime,group,nice,pcpu,pgid * pid,ppid,rgroup,ruser,time,tty,user,vsz * * BSD c: "command" becomes accounting name ("comm" or "ucomm") * BSD n: "user" becomes "uid" and "wchan" becomes "nwchan" (number) *//* short names to save space */#define MEM PROC_FILLMEM /* read statm */#define CMD PROC_FILLCMD /* read cmdline */#define ENV PROC_FILLENV /* read environ */#define USR PROC_FILLUSR /* uid_t and gid_t -> user and group names */#define BUG PROC_FILLBUG /* what does this need? *//* TODO * pull out annoying BSD aliases into another table (to macro table?) * add sorting functions here (to unify names) *//* temporary hack -- mark new stuff grabbed from Debian ps */#define LNx LNX/* there are about 194 listed *//* Many of these are placeholders for unsupported options. */static const format_struct format_array[] = {/* code header print() sort() width ? vendor flags */{"%cpu", "%CPU", pr_pcpu, sr_pcpu, 4, 0, BSD, RIGHT}, /*pcpu*/{"%mem", "%MEM", pr_pmem, sr_nop, 4, 0, BSD, RIGHT}, /*pmem*/{"acflag", "ACFLG", pr_nop, sr_nop, 5, 0, XXX, RIGHT}, /*acflg*/{"acflg", "ACFLG", pr_nop, sr_nop, 5, 0, BSD, RIGHT}, /*acflag*/{"addr", "ADDR", pr_nop, sr_nop, 4, 0, XXX, RIGHT},{"alarm", "ALARM", pr_alarm, sr_it_real_value, 5, 0, LNX, RIGHT},{"argc", "ARGC", pr_nop, sr_nop, 4, 0, LNX, RIGHT},{"args", "COMMAND", pr_args, sr_nop, 16, 0, U98, UNLIMITED}, /*command*/{"blocked", "BLOCKED", pr_sigmask, sr_nop, 9, 0, BSD, SIGNAL}, /*sigmask*/{"bnd", "BND", pr_nop, sr_nop, 1, 0, AIX, RIGHT},{"bsdstart", "START", pr_bsdstart, sr_nop, 6, 0, LNX, RIGHT},{"bsdtime", "TIME", pr_bsdtime, sr_nop, 6, 0, LNX, RIGHT},{"c", "C", pr_c, sr_pcpu, 2, 0, SUN, RIGHT},{"caught", "CAUGHT", pr_sigcatch, sr_nop, 9, 0, BSD, SIGNAL}, /*sigcatch*/{"class", "CLS", pr_nop, sr_nop, 5, 0, XXX, RIGHT},{"cls", "-", pr_nop, sr_nop, 1, 0, HPU, RIGHT},{"cmaj_flt", "-", pr_nop, sr_cmaj_flt, 1, 0, LNX, RIGHT},{"cmd", "CMD", pr_args, sr_cmd, 16, 0, DEC, UNLIMITED}, /*ucomm*/{"cmin_flt", "-", pr_nop, sr_cmin_flt, 1, 0, LNX, RIGHT},{"cnswap", "-", pr_nop, sr_cnswap, 1, 0, LNX, RIGHT},{"comm", "COMMAND", pr_comm, sr_nop, 16, 0, U98, UNLIMITED}, /*ucomm*/{"command", "COMMAND", pr_args, sr_nop, 16, 0, XXX, UNLIMITED}, /*args*/{"cp", "CP", pr_nop, sr_nop, 2, 0, DEC, RIGHT}, /*cpu*/{"cpu", "CPU", pr_nop, sr_nop, 3, 0, BSD, RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */{"cputime", "TIME", pr_time, sr_nop, 8, 0, DEC, RIGHT}, /*time*/{"cstime", "-", pr_nop, sr_cstime, 1, 0, LNX, RIGHT},{"cursig", "CURSIG", pr_nop, sr_nop, 6, 0, DEC, RIGHT},{"cutime", "-", pr_nop, sr_cutime, 1, 0, LNX, RIGHT},{"cwd", "CWD", pr_nop, sr_nop, 3, 0, LNX, LEFT},{"drs", "DRS", pr_drs, sr_drs, 4, 0, LNX, RIGHT},{"dsiz", "DSIZ", pr_dsiz, sr_nop, 4, 0, LNX, RIGHT},{"egid", "EGID", pr_egid, sr_egid, 5, 0, LNX, RIGHT},{"egroup", "EGROUP", pr_egroup, sr_egroup, 8, 0, LNX, USER},{"eip", "EIP", pr_eip, sr_kstk_eip, 8, 0, LNX, RIGHT},{"end_code", "E_CODE", pr_nop, sr_end_code, 8, 0, LNx, RIGHT},{"environ","ENVIRONMENT",pr_nop, sr_nop, 11, 0, LNx, UNLIMITED},{"esp", "ESP", pr_esp, sr_kstk_esp, 8, 0, LNX, RIGHT},{"etime", "ELAPSED", pr_etime, sr_nop, 11, 0, U98, RIGHT}, /* was 7 wide */{"euid", "EUID", pr_euid, sr_euid, 5, 0, LNX, RIGHT},{"euser", "EUSER", pr_euser, sr_euser, 8, 0, LNX, USER},{"f", "F", pr_flag, sr_nop, 3, 0, XXX, RIGHT}, /*flags*/{"fgid", "FGID", pr_fgid, sr_fgid, 5, 0, LNX, RIGHT},{"fgroup", "FGROUP", pr_fgroup, sr_fgroup, 8, 0, LNX, USER},{"flag", "F", pr_flag, sr_flags, 3, 0, DEC, RIGHT},{"flags", "F", pr_flag, sr_flags, 3, 0, BSD, RIGHT}, /*f*/ /* was FLAGS, 8 wide */{"fname", "COMMAND", pr_fname, sr_nop, 8, 0, SUN, LEFT},{"fsgid", "FSGID", pr_fgid, sr_fgid, 5, 0, LNX, RIGHT},{"fsgroup", "FSGROUP", pr_fgroup, sr_fgroup, 8, 0, LNX, USER},{"fsuid", "FSUID", pr_fuid, sr_fuid, 5, 0, LNX, RIGHT},{"fsuser", "FSUSER", pr_fuser, sr_fuser, 8, 0, LNX, USER},{"fuid", "FUID", pr_fuid, sr_fuid, 5, 0, LNX, RIGHT},{"fuser", "FUSER", pr_fuser, sr_fuser, 8, 0, LNX, USER},{"gid", "GID", pr_egid, sr_egid, 5, 0, SUN, RIGHT},{"group", "GROUP", pr_egroup, sr_egroup, 5, 0, U98, USER}, /* was 8 wide */{"ignored", "IGNORED", pr_sigignore,sr_nop, 9, 0, BSD, SIGNAL}, /*sigignore*/{"inblk", "INBLK", pr_nop, sr_nop, 5, 0, BSD, RIGHT}, /*inblock*/{"inblock", "INBLK", pr_nop, sr_nop, 5, 0, DEC, RIGHT}, /*inblk*/{"intpri", "PRI", pr_opri, sr_priority, 3, 0, HPU, RIGHT},{"jobc", "JOBC", pr_nop, sr_nop, 4, 0, XXX, RIGHT},{"ktrace", "KTRACE", pr_nop, sr_nop, 8, 0, BSD, RIGHT},{"ktracep", "KTRACEP", pr_nop, sr_nop, 8, 0, BSD, RIGHT},{"label", "LABEL", pr_nop, sr_nop, 25, 0, SGI, LEFT},{"lim", "LIM", pr_lim, sr_rss_rlim, 5, 0, BSD, RIGHT},{"login", "LOGNAME", pr_nop, sr_nop, 8, 0, BSD, LEFT}, /*logname*/ /* double check */{"logname", "LOGNAME", pr_nop, sr_nop, 8, 0, XXX, LEFT}, /*login*/{"longtname", "TTY", pr_tty8, sr_tty, 8, 0, DEC, LEFT},{"lstart", "STARTED", pr_lstart, sr_nop, 24, 0, XXX, RIGHT},{"luid", "LUID", pr_nop, sr_nop, 5, 0, LNX, RIGHT}, /* login ID */{"luser", "LUSER", pr_nop, sr_nop, 8, 0, LNX, USER}, /* login USER */{"m_drs", "DRS", pr_drs, sr_drs, 5, 0, LNx, RIGHT},{"m_dt", "DT", pr_nop, sr_dt, 4, 0, LNx, RIGHT},{"m_lrs", "LRS", pr_nop, sr_lrs, 5, 0, LNx, RIGHT},{"m_resident", "RES", pr_nop, sr_resident, 5, 0, LNx, RIGHT},{"m_share", "SHRD", pr_nop, sr_share, 5, 0, LNx, RIGHT},{"m_size", "SIZE", pr_nop, sr_size, 5, 0, LNx, RIGHT},{"m_swap", "SWAP", pr_nop, sr_nop, 5, 0, LNx, RIGHT},{"m_trs", "TRS", pr_trs, sr_trs, 5, 0, LNx, RIGHT},{"maj_flt", "MAJFL", pr_majflt, sr_maj_flt, 6, 0, LNX, CUMUL|RIGHT},{"majflt", "MAJFLT", pr_majflt, sr_maj_flt, 6, 0, XXX, RIGHT},{"min_flt", "MINFL", pr_minflt, sr_min_flt, 6, 0, LNX, CUMUL|RIGHT},{"minflt", "MINFLT", pr_minflt, sr_min_flt, 6, 0, XXX, RIGHT},{"msgrcv", "MSGRCV", pr_nop, sr_nop, 6, 0, XXX, RIGHT},{"msgsnd", "MSGSND", pr_nop, sr_nop, 6, 0, XXX, RIGHT},{"ni", "NI", pr_nice, sr_nice, 3, 0, BSD, RIGHT}, /*nice*/{"nice", "NI", pr_nice, sr_nice, 3, 0, U98, RIGHT}, /*ni*/{"nivcsw", "IVCSW", pr_nop, sr_nop, 5, 0, XXX, RIGHT},{"nsignals", "NSIGS", pr_nop, sr_nop, 5, 0, DEC, RIGHT}, /*nsigs*/{"nsigs", "NSIGS", pr_nop, sr_nop, 5, 0, BSD, RIGHT}, /*nsignals*/{"nswap", "NSWAP", pr_nop, sr_nswap, 5, 0, XXX, RIGHT},{"nvcsw", "VCSW", pr_nop, sr_nop, 5, 0, XXX, RIGHT},{"nwchan", "WCHAN", pr_nwchan, sr_nop, 6, 0, XXX, RIGHT},{"opri", "PRI", pr_opri, sr_priority, 3, 0, SUN, RIGHT},{"osz", "SZ", pr_nop, sr_nop, 2, 0, SUN, RIGHT},{"oublk", "OUBLK", pr_nop, sr_nop, 5, 0, BSD, RIGHT}, /*oublock*/{"oublock", "OUBLK", pr_nop, sr_nop, 5, 0, DEC, RIGHT}, /*oublk*/{"p_ru", "P_RU", pr_nop, sr_nop, 6, 0, BSD, RIGHT},{"paddr", "PADDR", pr_nop, sr_nop, 6, 0, BSD, RIGHT},{"pagein", "PAGEIN", pr_majflt, sr_nop, 6, 0, XXX, RIGHT},{"pcpu", "%CPU", pr_pcpu, sr_pcpu, 4, 0, U98, RIGHT}, /*%cpu*/{"pending", "PENDING", pr_sig, sr_nop, 9, 0, BSD, SIGNAL}, /*sig*/{"pgid", "PGID", pr_pgid, sr_pgrp, 5, 0, U98, RIGHT},{"pgrp", "PGRP", pr_pgid, sr_pgrp, 5, 0, LNX, RIGHT},{"pid", "PID", pr_pid, sr_pid, 5, 0, U98, RIGHT},{"pmem", "%MEM", pr_pmem, sr_nop, 4, 0, XXX, RIGHT}, /*%mem*/{"poip", "-", pr_nop, sr_nop, 1, 0, BSD, RIGHT},{"policy", "POL", pr_nop, sr_nop, 3, 0, DEC, RIGHT},{"ppid", "PPID", pr_ppid, sr_ppid, 5, 0, U98, RIGHT},{"pri", "PRI", pr_pri, sr_nop, 3, 0, XXX, RIGHT},{"priority", "PRI", pr_priority, sr_priority, 3, 0, LNX, RIGHT}, /*ni,nice*/ /* from Linux sorting names */{"prmgrp", "-", pr_nop, sr_nop, 1, 0, HPU, RIGHT},{"prmid", "-", pr_nop, sr_nop, 1, 0, HPU, RIGHT},{"pset", "PSET", pr_nop, sr_nop, 4, 0, DEC, RIGHT},{"psr", "PSR", pr_nop, sr_nop, 3, 0, DEC, RIGHT},{"psxpri", "PPR", pr_nop, sr_nop, 3, 0, DEC, RIGHT},{"re", "RE", pr_nop, sr_nop, 3, 0, BSD, RIGHT},{"resident", "-", pr_nop, sr_resident, 5, 0, LNX, RIGHT},{"rgid", "RGID", pr_rgid, sr_rgid, 5, 0, XXX, RIGHT},{"rgroup", "RGROUP", pr_rgroup, sr_rgroup, 6, 0, U98, USER}, /* was 8 wide */{"rlink", "RLINK", pr_nop, sr_nop, 8, 0, BSD, RIGHT},{"rss", "RSS", pr_rss, sr_rss, 4, 0, XXX, RIGHT}, /* was 5 wide */{"rssize", "RSS", pr_rss, sr_vm_rss, 4, 0, DEC, RIGHT}, /*rsz*/{"rsz", "RSZ", pr_rss, sr_vm_rss, 4, 0, BSD, RIGHT}, /*rssize*/{"rtprio", "RTPRIO", pr_nop, sr_nop, 7, 0, BSD, RIGHT},{"ruid", "RUID", pr_ruid, sr_ruid, 5, 0, XXX, RIGHT},{"ruser", "RUSER", pr_ruser, sr_ruser, 8, 0, U98, USER},{"s", "S", pr_s, sr_state, 1, 0, SUN, LEFT}, /*stat,state*/{"sched", "SCH", pr_nop, sr_nop, 1, 0, AIX, RIGHT},{"scnt", "SCNT", pr_nop, sr_nop, 4, 0, DEC, RIGHT}, /* man page misspelling of scount? */{"scount", "SC", pr_nop, sr_nop, 4, 0, AIX, RIGHT}, /* scnt==scount, DEC claims both */{"sess", "SESS", pr_sess, sr_session, 5, 0, XXX, RIGHT},{"session", "SESS", pr_sess, sr_session, 5, 0, LNX, RIGHT},{"sgi_p", "P", pr_sgi_p, sr_nop, 1, 0, LNX, RIGHT}, /* "cpu" number */{"sgi_rss", "RSS", pr_rss, sr_nop, 4, 0, LNX, LEFT}, /* SZ:RSS */{"sgid", "SGID", pr_sgid, sr_sgid, 5, 0, LNX, RIGHT},{"sgroup", "SGROUP", pr_sgroup, sr_sgroup, 8, 0, LNX, USER},{"share", "-", pr_nop, sr_share, 1, 0, LNX, RIGHT},{"sid", "SID", pr_sess, sr_session, 5, 0, XXX, RIGHT}, /* Sun & HP */{"sig", "PENDING", pr_sig, sr_nop, 9, 0, XXX, SIGNAL}, /*pending*/{"sig_block", "BLOCKED", pr_sigmask, sr_nop, 9, 0, LNX, SIGNAL},{"sig_catch", "CATCHED", pr_sigcatch, sr_nop, 9, 0, LNX, SIGNAL},{"sig_ignore", "IGNORED",pr_sigignore, sr_nop, 9, 0, LNX, SIGNAL},{"sig_pend", "SIGNAL", pr_sig, sr_nop, 9, 0, LNX, SIGNAL},{"sigcatch", "CAUGHT", pr_sigcatch, sr_nop, 9, 0, XXX, SIGNAL}, /*caught*/{"sigignore", "IGNORED", pr_sigignore,sr_nop, 9, 0, XXX, SIGNAL}, /*ignored*/{"sigmask", "BLOCKED", pr_sigmask, sr_nop, 9, 0, XXX, SIGNAL}, /*blocked*/{"size", "-", pr_nop, sr_size, 1, 0, SCO, RIGHT},{"sl", "SL", pr_nop, sr_nop, 3, 0, XXX, RIGHT},{"stackp", "STACKP", pr_stackp, sr_nop, 8, 0, LNX, RIGHT}, /*start_stack*/{"start", "STARTED", pr_start, sr_nop, 8, 0, XXX, RIGHT},{"start_code", "S_CODE", pr_nop, sr_start_code, 8, 0, LNx, RIGHT},{"start_stack", "STACKP", pr_stackp, sr_start_stack, 8, 0, LNX, RIGHT}, /*stackp*/{"start_time", "START", pr_stime, sr_start_time, 5, 0, LNx, RIGHT},{"stat", "STAT", pr_stat, sr_state, 4, 0, BSD, LEFT}, /*state,s*/{"state", "S", pr_s, sr_state, 1, 0, XXX, LEFT}, /*stat,s*/ /* was STAT */{"status", "STATUS", pr_nop, sr_nop, 6, 0, DEC, RIGHT},{"stime", "STIME", pr_stime, sr_stime, 5, 0, XXX, /* CUMUL| */RIGHT}, /* was 6 wide */{"suid", "SUID", pr_suid, sr_suid, 5, 0, LNx, RIGHT},{"suser", "SUSER", pr_suser, sr_suser, 8, 0, LNx, USER},{"svgid", "SVGID", pr_sgid, sr_sgid, 5, 0, XXX, RIGHT},{"svgroup", "SVGROUP", pr_sgroup, sr_sgroup, 8, 0, LNX, USER},{"svuid", "SVUID", pr_suid, sr_suid, 5, 0, XXX, RIGHT},{"svuser", "SVUSER", pr_suser, sr_suser, 8, 0, LNX, USER},{"systime", "SYSTEM", pr_nop, sr_nop, 6, 0, DEC, RIGHT},{"sz", "SZ", pr_sz, sr_nop, 5, 0, HPU, RIGHT},{"tdev", "TDEV", pr_nop, sr_nop, 4, 0, XXX, RIGHT},{"thcount", "THCNT", pr_nop, sr_nop, 1, 0, AIX, RIGHT},{"tid", "TID", pr_nop, sr_nop, 1, 0, AIX, RIGHT},{"time", "TIME", pr_time, sr_nop, 8, 0, U98, CUMUL|RIGHT}, /*cputime*/ /* was 6 wide */{"timeout", "TMOUT", pr_timeout, sr_timeout, 5, 0, LNX, RIGHT},{"tmout", "TMOUT", pr_timeout, sr_timeout, 5, 0, LNX, RIGHT},{"tname", "TTY", pr_tty8, sr_tty, 8, 0, DEC, LEFT},{"tpgid", "TPGID", pr_tpgid, sr_tpgid, 5, 0, XXX, RIGHT},{"trs", "TRS", pr_trs, sr_trs, 4, 0, AIX, RIGHT},{"trss", "TRSS", pr_trs, sr_trs, 4, 0, BSD, RIGHT}, /* 4.3BSD NET/2 */{"tsess", "TSESS", pr_nop, sr_nop, 5, 0, BSD, RIGHT},{"tsession", "TSESS", pr_nop, sr_nop, 5, 0, DEC, RIGHT},{"tsiz", "TSIZ", pr_tsiz, sr_nop, 4, 0, BSD, RIGHT},{"tt", "TT", pr_tty8, sr_tty, 8, 0, BSD, LEFT},{"tty", "TT", pr_tty8, sr_tty, 8, 0, U98, LEFT}, /* Unix98 requires "TT" but has "TTY" too. :-( */ /* was 3 wide */{"tty4", "TTY", pr_tty4, sr_tty, 4, 0, LNX, LEFT},{"tty8", "TTY", pr_tty8, sr_tty, 8, 0, LNX, LEFT},{"u_procp", "UPROCP", pr_nop, sr_nop, 6, 0, DEC, RIGHT},{"ucmd", "CMD", pr_comm, sr_cmd, 16, 0, DEC, UNLIMITED}, /*ucomm*/{"ucomm", "COMMAND", pr_comm, sr_nop, 16, 0, XXX, UNLIMITED}, /*comm*/{"uid", "UID", pr_euid, sr_euid, 5, 0, XXX, RIGHT},{"uid_hack", "UID", pr_euser, sr_nop, 8, 0, XXX, USER},{"umask", "UMASK", pr_nop, sr_nop, 5, 0, DEC, RIGHT},{"uname", "USER", pr_euser, sr_euser, 8, 0, DEC, USER}, /* man page misspelling of user? */{"upr", "UPR", pr_nop, sr_nop, 3, 0, BSD, RIGHT}, /*usrpri*/{"uprocp", "-", pr_nop, sr_nop, 1, 0, BSD, RIGHT},{"user", "USER", pr_euser, sr_euser, 8, 0, U98, USER}, /* BSD n forces this to UID */{"usertime", "USER", pr_nop, sr_nop, 4, 0, DEC, RIGHT},{"usrpri", "UPR", pr_nop, sr_nop, 3, 0, DEC, RIGHT}, /*upr*/{"utime", "UTIME", pr_nop, sr_utime, 6, 0, LNx, CUMUL|RIGHT},{"vm_data", "DATA", pr_nop, sr_vm_data, 5, 0, LNx, RIGHT},{"vm_exe", "EXE", pr_nop, sr_vm_exe, 5, 0, LNx, RIGHT},{"vm_lib", "LIB", pr_nop, sr_vm_lib, 5, 0, LNx, RIGHT},{"vm_lock", "LCK", pr_nop, sr_vm_lock, 3, 0, LNx, RIGHT},{"vm_stack", "STACK", pr_nop, sr_vm_stack, 5, 0, LNx, RIGHT},{"vsize", "VSZ", pr_vsz, sr_vsize, 5, 0, DEC, RIGHT}, /*vsz*/{"vsz", "VSZ", pr_vsz, sr_vm_size, 5, 0, U98, RIGHT}, /*vsize*/{"wchan", "WCHAN", pr_wchan, sr_wchan, 6, 0, XXX, WCHAN}, /* BSD n forces this to nwchan */ /* was 10 wide */{"xstat", "XSTAT", pr_nop, sr_nop, 5, 0, BSD, RIGHT},{"~", "-", pr_nop, sr_nop, 1, 0, LNX, RIGHT} /* NULL would ruin alphabetical order */};static const int format_array_count = sizeof(format_array)/sizeof(format_struct);/****************************** Macro formats *******************************//* First X field may be NR, which is p->start_code>>26 printed with %2ld *//* That seems useless though, and Debian already killed it. *//* The ones marked "Digital" have the name defined, not just the data. */const macro_struct macro_array[] = {{"DFMT", "pid,tname,state,cputime,cmd"}, /* Digital's default */{"DefBSD", "pid,tname,stat,bsdtime,args"}, /* Our BSD default */{"DefSysV", "pid,tname,time,cmd"}, /* Our SysV default */{"END_BSD", "state,tname,cputime,comm"}, /* trailer for O */{"END_SYS5", "state,tname,time,command"}, /* trailer for -O */{"F5FMT", "uname,pid,ppid,c,start,tname,time,cmd"}, /* Digital -f */{"FB_", "pid,tt,stat,time,command"}, /* FreeBSD default */{"FB_j", "user,pid,ppid,pgid,sess,jobc,stat,tt,time,command"}, /* FreeBSD j */{"FB_l", "uid,pid,ppid,cpu,pri,nice,vsz,rss,wchan,stat,tt,time,command"}, /* FreeBSD l */{"FB_u", "user,pid,pcpu,pmem,vsz,rss,tt,stat,start,time,command"}, /* FreeBSD u */{"FB_v", "pid,stat,time,sl,re,pagein,vsz,rss,lim,tsiz,pcpu,pmem,command"}, /* FreeBSD v */{"FD_", "pid,tty,time,comm"}, /* Fictional Debian SysV default */{"FD_f", "user,pid,ppid,start_time,tty,time,comm"}, /* Fictional Debian -f */{"FD_fj", "user,pid,ppid,start_time,tty,time,pgid,sid,comm"}, /* Fictional Debian -jf */{"FD_j", "pid,tty,time,pgid,sid,comm"}, /* Fictional Debian -j */{"FD_l", "flags,state,uid,pid,ppid,priority,nice,vsz,wchan,tty,time,comm"}, /* Fictional Debian -l */{"FD_lj", "flags,state,uid,pid,ppid,priority,nice,vsz,wchan,tty,time,pgid,sid,comm"}, /* Fictional Debian -jl */{"FL5FMT", "f,state,uid,pid,ppid,pcpu,pri,nice,rss,wchan,start,time,command"}, /* Digital -fl */{"HP_", "pid,tty,time,comm"}, /* HP default */{"HP_f", "user,pid,ppid,cpu,stime,tty,time,args"}, /* HP -f */{"HP_fl", "flags,state,user,pid,ppid,cpu,intpri,nice,addr,sz,wchan,stime,tty,time,args"}, /* HP -fl */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -