⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 output.c

📁 Linux下进程监控相关源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
  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 + -