亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? parser.c

?? linux下獲取一些環境信息的代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
      return NULL; /* can't have any more options */#if 0    case 'r':      trace("-r some Digital Unix thing about warnings...\n");      trace("   or SCO's option to chroot() for new /proc and /dev.\n");      return "The -r option is reserved.";      break;#endif    case 's': /* end */      trace("-s Select processes belonging to the sessions given.\n");      arg=get_opt_arg();      if(!arg) return "List of session IDs must follow -s.";      err=parse_list(arg, parse_pid);      if(err) return err;      selection_list->typecode = SEL_SESS;      return NULL; /* can't have any more options */    case 't': /* end */      trace("-t select by tty.\n");      arg=get_opt_arg();      if(!arg) return "List of terminals (pty, tty...) must follow -t.";      err=parse_list(arg, parse_tty);      if(err) return err;      selection_list->typecode = SEL_TTY;      return NULL; /* can't have any more options */    case 'u': /* end */      trace("-u select by user ID (the EUID?) (supports names).\n");      arg=get_opt_arg();      if(!arg) return "List of users must follow -u.";      err=parse_list(arg, parse_uid);      if(err) return err;      selection_list->typecode = SEL_EUID;      return NULL; /* can't have any more options */    case 'w':      trace("-w wide output.\n");      w_count++;      break;    case 'x':  /* behind personality until "ps -ax" habit is uncommon */      if(personality & PER_SVR4_x){        // Same as -y, but for System V Release 4 MP        trace("-x works like Sun Solaris & SCO Unixware -y option\n");        format_modifiers |= FM_y;        break;      }      if(personality & PER_HPUX_x){        trace("-x extends the command line\n");        w_count += 2;        unix_f_option = 1;        break;      }      return "Must set personality to get -x option.";    case 'y':  /* Sun's -l hack (also: Irix "lnode" resource control info) */      trace("-y Print lnone info in UID/USER column or do Sun -l hack.\n");      format_modifiers |= FM_y;      break;#if 0    // This must be verified against SVR4-MP (UnixWare or Powermax)    case 'z':     /* alias of Mandatory Access Control level info */      trace("-z shows aliased MAC info\n");      format_modifiers |= FM_M;      break;    // Solaris 10 does this    case 'z':     /* select by zone */      trace("-z secects by zone\n");      arg=get_opt_arg();      if(!arg) return "List of zones (contexts, labels, whatever?) must follow -z.";      err=parse_list(arg, parse_zone);      if(err) return err;      selection_list->typecode = SEL_ZONE;      return NULL; /* can't have any more options */#endif    case '-':      return "Embedded '-' among SysV options makes no sense.";      break;    case '\0':      return "Please report the \"SysV \\0 can't happen\" bug.";      break;    default:      return "Unsupported SysV option.";    } /* switch */  } /* while */  return NULL;}/************************* parse BSD options **********************/static const char *parse_bsd_option(void){  const char *arg;  const char *err;  flagptr = ps_argv[thisarg];  /* assume we _have_ a '-' */  if(flagptr[0]=='-'){    if(!force_bsd) return "Can't happen!  Problem #1.";  }else{    flagptr--; /* off beginning, will increment before use */    if(personality & PER_FORCE_BSD){      if(!force_bsd) return "Can't happen!  Problem #2.";    }else{      if(force_bsd) return "2nd chance parse failed, not BSD or SysV.";    }  }  while(*++flagptr){    switch(*flagptr){    case '0' ... '9': /* end */      trace("0..9  Old BSD-style select by process ID\n");      arg=flagptr;      err=parse_list(arg, parse_pid);      if(err) return err;      selection_list->typecode = SEL_PID;      return NULL; /* can't have any more options */#if 0    case 'A':      /* maybe this just does a larger malloc() ? */      trace("A Increases the argument space (Digital Unix)\n");      return "Option A is reserved.";      break;    case 'C':      /* should divide result by 1-(e**(foo*log(bar))) */      trace("C Use raw CPU time for %%CPU instead of decaying ave\n");      return "Option C is reserved.";      break;#endif    case 'H':    // The FreeBSD way (NetBSD:s OpenBSD:k FreeBSD:H  -- NIH???)      trace("H Print LWP (thread) info.\n");   // was: Use /vmcore as c-dumpfile\n");      thread_flags |= TF_B_H;      //format_modifiers |= FM_L;    // FIXME: determine if we need something like this      break;    case 'L': /* single */      trace("L List all format specifiers\n");      exclusive("L");      print_format_specifiers();      exit(0);    case 'M':   // undocumented for now: these are proliferating!      trace("M MacOS X thread display, like AIX/Tru64\n");      thread_flags |= TF_B_m;      break;    case 'N': /* end */      trace("N Specify namelist file\n");      arg=get_opt_arg();      if(!arg) return "Alternate System.map file must follow N.";      namelist_file = arg;      return NULL; /* can't have any more options */    case 'O': /* end */      trace("O Like o + defaults, add new columns after PID. Also sort.\n");      arg=get_opt_arg();      if(!arg) return "Format or sort specification must follow O.";      defer_sf_option(arg, SF_B_O);      return NULL; /* can't have any more options */      break;    case 'S':      trace("S include dead kids in sum\n");      include_dead_children = 1;      break;    case 'T':      trace("T Select all processes on this terminal\n");      /* put our tty on a tiny list */      {        selection_node *node;        node = malloc(sizeof(selection_node));        node->u = malloc(sizeof(sel_union));        node->u[0].tty = cached_tty;        node->typecode = SEL_TTY;        node->n = 1;        node->next = selection_list;        selection_list = node;      }      break;    case 'U': /* end */      trace("U Select processes for specified users.\n");      arg=get_opt_arg();      if(!arg) return "List of users must follow U.";      err=parse_list(arg, parse_uid);      if(err) return err;      selection_list->typecode = SEL_EUID;      return NULL; /* can't have any more options */    case 'V': /* single */      trace("V show version info\n");      exclusive("V");      display_version();      exit(0);    case 'W':      trace("W N/A get swap info from ... not /dev/drum.\n");      return "Obsolete W option not supported. (You have a /dev/drum?)";      break;    case 'X':      trace("X Old Linux i386 register format\n");      format_flags |= FF_LX;      break;    case 'Z':  /* FreeBSD does MAC like SGI's Irix does it */      trace("Z Print security label for Mandatory Access Control.\n");      format_modifiers |= FM_M;      break;    case 'a':      trace("a Select all w/tty, including other users\n");      simple_select |= SS_B_a;      break;    case 'c':      trace("c true command name\n");      bsd_c_option = 1;      break;    case 'e':      trace("e environment\n");      bsd_e_option = 1;      break;    case 'f':      trace("f ASCII art forest\n");      forest_type = 'b';      break;    case 'g':      trace("g _all_, even group leaders!.\n");      simple_select |= SS_B_g;      break;    case 'h':      trace("h Repeat header... yow.\n");      if(header_type) return "Only one heading option may be specified.";      if(personality & PER_BSD_h) header_type = HEAD_MULTI;      else                        header_type = HEAD_NONE;      break;    case 'j':      trace("j job control format\n");      format_flags |= FF_Bj;      break;    case 'k':      // OpenBSD: don't hide "kernel threads" -- like the swapper?      // trace("k Print LWP (thread) info.\n");   // was: Use /vmcore as c-dumpfile\n");      // NetBSD, and soon (?) FreeBSD: sort-by-keyword      trace("k Specify sorting keywords.\n");      arg=get_opt_arg();      if(!arg) return "Long sort specification must follow 'k'.";      defer_sf_option(arg, SF_G_sort);      return NULL; /* can't have any more options */    case 'l':      trace("l Display long format\n");      format_flags |= FF_Bl;      break;    case 'm':      trace("m all threads, sort on mem use, show mem info\n");      if(personality & PER_OLD_m){        format_flags |= FF_Lm;        break;      }      if(personality & PER_BSD_m){        defer_sf_option("pmem", SF_B_m);        break;      }      thread_flags |= TF_B_m;      break;    case 'n':      trace("n Numeric output for WCHAN, and USER replaced by UID\n");      wchan_is_number = 1;      user_is_number = 1;      /* TODO add tty_is_number too? */      break;    case 'o': /* end */      trace("o Specify user-defined format\n");      arg=get_opt_arg();      if(!arg) return "Format specification must follow o.";      defer_sf_option(arg, SF_B_o);      return NULL; /* can't have any more options */    case 'p': /* end */      trace("p Select by process ID\n");      arg=get_opt_arg();      if(!arg) return "List of process IDs must follow p.";      err=parse_list(arg, parse_pid);      if(err) return err;      selection_list->typecode = SEL_PID;      return NULL; /* can't have any more options */    case 'r':      trace("r Select running processes\n");      running_only = 1;      break;    case 's':      trace("s Display signal format\n");      format_flags |= FF_Bs;      break;    case 't': /* end */      trace("t Select by tty.\n");      /* List of terminals (tty, pty...) _should_ follow t. */      arg=get_opt_arg();      if(!arg){        /* Wow, obsolete BSD syntax. Put our tty on a tiny list. */        selection_node *node;        node = malloc(sizeof(selection_node));        node->u = malloc(sizeof(sel_union));        node->u[0].tty = cached_tty;        node->typecode = SEL_TTY;        node->n = 1;        node->next = selection_list;        selection_list = node;        return NULL;      }      err=parse_list(arg, parse_tty);      if(err) return err;      selection_list->typecode = SEL_TTY;      return NULL; /* can't have any more options */    case 'u':      trace("u Display user-oriented\n");      format_flags |= FF_Bu;      break;    case 'v':      trace("v Display virtual memory\n");      format_flags |= FF_Bv;      break;    case 'w':      trace("w wide output\n");      w_count++;      break;    case 'x':      trace("x Select processes without controlling ttys\n");      simple_select |= SS_B_x;      break;#if 0    case 'y':      // DragonFlyBSD iac (interactivity measure) format      // uid,pid,ppid,cpu,pri,iac,nice,wchan,state,tt,time,command      // (they use 'Y' to sort by this "iac" thing; 'y' implies 'Y')      // Range is -127 .. 127, with lower numbers being more      // interactive and higher numbers more batch-like.      trace("y Display interactivity measure\n");      format_flags |= FF_Bv;      break;#endif    case '-':      return "Embedded '-' among BSD options makes no sense.";      break;    case '\0':      return "Please report the \"BSD \\0 can't happen\" bug.";      break;    default:      return "Unsupported option (BSD syntax)";    } /* switch */  } /* while */  return NULL;}/*************** gnu long options **********************//* * Return the argument or NULL */static const char *grab_gnu_arg(void){  switch(*flagptr){     /* argument is part of ps_argv[thisarg] */  default:    return NULL;                     /* something bad */  case '=': case ':':    if(*++flagptr) return flagptr;   /* found it */    return NULL;                     /* empty '=' or ':' */  case '\0': /* try next argv[] */    ;  }  if(thisarg+2 > ps_argc) return NULL;   /* there is nothing left */  /* argument follows ps_argv[thisarg] */  if(*(ps_argv[thisarg+1]) == '\0') return NULL;  return ps_argv[++thisarg];}typedef struct gnu_table_struct {  const char *name; /* long option name */  const void *jump; /* See gcc extension info.   :-)   */} gnu_table_struct;static int compare_gnu_table_structs(const void *a, const void *b){  return strcmp(((const gnu_table_struct*)a)->name,((const gnu_table_struct*)b)->name);}/* Option arguments are after ':', after '=', or in argv[n+1] */static const char *parse_gnu_option(void){  const char *arg;  const char *err;  char *s;  size_t sl;  char buf[16];  gnu_table_struct findme = { buf, NULL};  gnu_table_struct *found;  static const gnu_table_struct gnu_table[] = {  {"Group",         &&case_Group},       /* rgid */  {"User",          &&case_User},        /* ruid */  {"cols",          &&case_cols},  {"columns",       &&case_columns},  {"context",       &&case_context},  {"cumulative",    &&case_cumulative},  {"deselect",      &&case_deselect},    /* -N */  {"forest",        &&case_forest},      /* f -H */  {"format",        &&case_format},  {"group",         &&case_group},       /* egid */  {"header",        &&case_header},  {"headers",       &&case_headers},  {"heading",       &&case_heading},  {"headings",      &&case_headings},  {"help",          &&case_help},  {"info",          &&case_info},  {"lines",         &&case_lines},  {"no-header",     &&case_no_header},  {"no-headers",    &&case_no_headers},  {"no-heading",    &&case_no_heading},  {"no-headings",   &&case_no_headings},  {"noheader",      &&case_noheader},  {"noheaders",     &&case_noheaders},  {"noheading",     &&case_noheading},  {"noheadings",    &&case_noheadings},  {"pid",           &&case_pid},  {"ppid",          &&case_ppid},  {"rows",          &&case_rows},  {"sid",           &&case_sid},  {"sort",          &&case_sort},  {"tty",           &&case_tty},  {"user",          &&case_user},        /* euid */  {"version",       &&case_version},  {"width",         &&case_width},  };  const int gnu_table_count = sizeof(gnu_table)/sizeof(gnu_table_struct);  s = ps_argv[thisarg]+2;  sl = strcspn(s,":=");  if(sl > 15) return "Unknown gnu long option.";  strncpy(buf, s, sl);  buf[sl] = '\0';  flagptr = s+sl;  found = bsearch(&findme, gnu_table, gnu_table_count,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合色综合久久综合| 欧美日韩一区二区电影| 福利一区二区在线| 欧美日韩一区二区三区四区五区| 亚洲精品国久久99热| 日韩天堂在线观看| 全部av―极品视觉盛宴亚洲| 精品日韩在线一区| 国产jizzjizz一区二区| 成人欧美一区二区三区白人 | 狠狠色狠狠色综合日日91app| 亚洲精品一区二区在线观看| 国产精品77777| 中文字幕一区二区三区乱码在线| 欧美成人官网二区| 亚洲国产精品传媒在线观看| 国产精品美女一区二区| 午夜精品久久久久久久99水蜜桃 | 亚洲欧美成人一区二区三区| 国产精品动漫网站| 亚洲影院久久精品| 国产高清在线精品| 成人av网在线| 91精品国产福利| 亚洲欧美日韩国产综合在线| 国产精品综合视频| 欧美日韩国产电影| 日韩av一区二区在线影视| 捆绑调教一区二区三区| 久久久久久久综合日本| 成人丝袜高跟foot| 日韩成人dvd| 欧美专区亚洲专区| 欧美电影免费观看高清完整版在线| 欧美色图12p| 国产日韩欧美电影| 成人高清视频在线观看| 琪琪一区二区三区| 欧美激情一区二区三区全黄| 亚洲黄色片在线观看| 日韩欧美一级二级| 色哟哟在线观看一区二区三区| 奇米影视7777精品一区二区| 亚洲福利一区二区三区| 中文字幕欧美区| 精品国产一区二区三区忘忧草 | 国产精品久线在线观看| 91精品视频网| 欧美丝袜丝nylons| 波波电影院一区二区三区| 久久国产婷婷国产香蕉| 亚洲国产精品综合小说图片区| 国产免费观看久久| 欧美精品一区视频| 欧美一区二区三区在线视频| 91视频在线观看| 国产白丝精品91爽爽久久| 蜜桃精品在线观看| 午夜视频久久久久久| 亚洲精品老司机| 亚洲日本va午夜在线影院| 国产日韩精品久久久| 欧美一区二区高清| 欧美高清性hdvideosex| 欧美视频日韩视频| 色www精品视频在线观看| av在线播放成人| 国产99久久久精品| 国产盗摄女厕一区二区三区| 国产激情精品久久久第一区二区| 久久电影国产免费久久电影| 免费成人在线网站| 日本不卡一二三区黄网| 三级亚洲高清视频| 日韩电影在线看| 男人的j进女人的j一区| 老司机免费视频一区二区| 五月婷婷久久丁香| 午夜精品视频在线观看| 日韩高清电影一区| 免费视频一区二区| 久久99日本精品| 激情图区综合网| 国产精品一区三区| 成人av在线网站| 91成人国产精品| 69堂精品视频| 久久免费精品国产久精品久久久久| 国产午夜精品一区二区三区嫩草| 国产欧美综合在线| 国产精品久久久久7777按摩| 亚洲色图一区二区| 视频一区免费在线观看| 精品一二线国产| kk眼镜猥琐国模调教系列一区二区| 99久久久精品免费观看国产蜜| 91丨porny丨最新| 欧美日韩精品免费| 2021久久国产精品不只是精品| 国产精品免费免费| 亚洲免费在线看| 青青草原综合久久大伊人精品 | 精品综合免费视频观看| 狠狠色丁香九九婷婷综合五月| 国产成人av一区| 欧美在线观看禁18| 精品国产伦一区二区三区观看体验 | 国产精品女人毛片| 亚洲国产成人高清精品| 九九视频精品免费| 97精品国产露脸对白| 欧美高清视频不卡网| 国产亚洲制服色| 亚洲图片有声小说| 国产精品羞羞答答xxdd| 91福利在线播放| 久久久久88色偷偷免费| 亚洲自拍偷拍欧美| 国产不卡在线播放| 7777精品伊人久久久大香线蕉 | 亚洲欧美综合网| 日本成人中文字幕| 99久久免费视频.com| 日韩一级完整毛片| 日韩毛片在线免费观看| 狠狠色丁香久久婷婷综合丁香| 色婷婷av一区二区三区大白胸| 精品国产一区二区在线观看| 亚洲综合在线电影| 国产高清无密码一区二区三区| 欧美日韩一区中文字幕| 国产精品你懂的在线欣赏| 蜜桃视频免费观看一区| 91电影在线观看| 中文字幕av一区二区三区| 美腿丝袜亚洲色图| 欧美亚洲日本国产| 国产精品国产馆在线真实露脸| 黄色小说综合网站| 欧美伊人精品成人久久综合97| 国产清纯白嫩初高生在线观看91| 免费观看成人av| 欧美区视频在线观看| 一区二区三区在线免费| 懂色一区二区三区免费观看| 欧美一级夜夜爽| 亚洲国产综合91精品麻豆| k8久久久一区二区三区| 欧美激情一区二区三区不卡| 激情成人综合网| 欧美一区2区视频在线观看| 亚洲一区二区三区四区中文字幕 | 色婷婷综合久久久| 国产精品欧美精品| 色噜噜狠狠成人网p站| 国产精品丝袜久久久久久app| 国产精品自在在线| 欧美成人bangbros| 美女mm1313爽爽久久久蜜臀| 欧美日韩国产123区| 午夜欧美在线一二页| 欧美日韩综合色| 洋洋av久久久久久久一区| 色婷婷综合视频在线观看| 亚洲女女做受ⅹxx高潮| 97久久精品人人做人人爽50路| 中文字幕乱码日本亚洲一区二区| 久久综合九色欧美综合狠狠| 激情久久五月天| 亚洲欧美偷拍三级| 26uuu久久天堂性欧美| 91美女视频网站| 久久国产夜色精品鲁鲁99| 国产精品第13页| 日韩精品自拍偷拍| 91亚洲精品久久久蜜桃网站| 日本不卡一区二区三区 | 欧美日韩国产中文| 精品一区二区影视| 亚洲午夜一区二区三区| 国产欧美一区二区三区在线老狼| 欧美在线999| 99精品欧美一区二区三区小说| 国产不卡视频在线观看| 亚洲mv大片欧洲mv大片精品| 日韩精品成人一区二区三区| 亚洲成人免费av| 蜜桃传媒麻豆第一区在线观看| 日韩黄色一级片| 蜜臀久久久久久久| 91一区二区三区在线观看| 成人免费高清视频在线观看| 欧美日韩激情在线| 欧美午夜精品电影| 国产一区999| 婷婷六月综合网| 五月婷婷久久综合| 日韩av在线免费观看不卡| 日韩精品一二三区| 日韩午夜激情av|