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

📄 cgetop.c

📁 apache 安装教程 apache 安装教程
💻 C
字号:
/**********************************************************************//*                                                                    *//* Copyright (c) 1987, 1993, 1994                                     *//* The Regents of the University of California.  All rights reserved. *//*                                                                    *//* Redistribution and use in source and binary forms, with or without *//* modification, are permitted provided that the following conditions *//* are met:                                                           *//*                                                                    *//* 1. Redistributions of source code must retain the above copyright  *//*    notice, this list of conditions and the following disclaimer.   *//* 2. Redistributions in binary form must reproduce the above         *//*    copyright notice, this list of conditions and the following     *//*    disclaimer in the documentation and/or other materials provided *//*    with the distribution.                                          *//* 3. All advertising materials mentioning features or use of this    *//*    software must display the following acknowledgement:            *//*      This product includes software developed by the University of *//*      California, Berkeley and its contributors.                    *//* 4. Neither the name of the University nor the names of its         *//*    contributors may be used to endorse or promote products derived *//*    from this software without specific prior written permission.   *//*                                                                    *//* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''*//* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED  *//* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A    *//* PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS  *//* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,    *//* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT   *//* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF   *//* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND*//* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, *//* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT *//* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF *//* SUCH DAMAGE.                                                       *//*                                                                    *//**********************************************************************//* used only on TPF41 systems */#if defined(LIBC_SCCS) && !defined(lint)static char sccsid[] = "@(#)getopt.c  8.2 (Berkeley) 4/2/94";#endif /* LIBC_SCCS and not lint */#include <stdio.h>#include <stdlib.h>#include <string.h>#ifndef __CGETOP_extern char *optarg;extern int opterr, optind, optopt;int getopt (int, char * const *, const char *);char *group_from_gid (unsigned long, int);char *user_from_uid (unsigned long, int);extern int optreset;#endifint opterr = 1,                     /* if error message should be     */                                    /* printed                        */    optind = 1,                     /* index into parent argv vector  */    optopt,                         /* character checked for validity */    optreset;                       /* reset getopt                   */char     *optarg;                   /* argument associated with       */                                    /* option                         */#define  BADCH  (int)'?'#define  BADARG  (int)':'#define  EMSG  ""/**********************************************************************//*                                                                    *//*   getopt --                                                        *//*       Parse argc/argv argument vector.                             *//*                                                                    *//**********************************************************************/intgetopt(nargc, nargv, ostr)  int nargc;  char * const *nargv;  const char *ostr;{  /* removed -- BSD2TPF -- crt0 does not create __progname on TPF     */  /* extern char *__progname;                                         */  /* end of removed -- BSD2TPF                                        */  static char *place = EMSG;        /* option letter processing       */  char *oli;                        /* option letter list index       */  /* added -- BSD2TPF -- emulate BSD crt0 function to set __progname  */  char empty = '\0';  char *__progname = &empty;  if (nargv[0]) {    if ((__progname = strrchr(nargv[0], '/')) == NULL) {      __progname = nargv[0];    }    else {      ++__progname;    }  }  /* end of added -- BSD2TPF                                          */  if (optreset || !*place) {        /* update scanning pointer        */    optreset = 0;    if (optind >= nargc || *(place = nargv[optind]) != '-') {      place = EMSG;      return (EOF);    }    if (place[1] && *++place == '-') {                                    /* found "--"                     */      ++optind;      place = EMSG;      return (EOF);    }  }                                 /* option letter okay?            */  if ((optopt = (int)*place++) == (int)':' ||      !(oli = strchr(ostr, optopt))) {                                    /* if the user didn't             */                                    /* specify '-' as an option,      */                                    /* assume it means EOF.           */    if (optopt == (int)'-')      return (EOF);    if (!*place)      ++optind;    if (opterr && *ostr != ':')      (void)fprintf(stderr,          "%s: illegal option -- %c\n", __progname, optopt);    return (BADCH);  }  if (*++oli != ':') {              /* don't need argument            */    optarg = NULL;    if (!*place)      ++optind;  }  else {                            /* need an argument               */    if (*place)                     /* no white space                 */      optarg = place;    else if (nargc <= ++optind) {   /* no arg                         */      place = EMSG;      if (*ostr == ':')        return (BADARG);      if (opterr)        (void)fprintf(stderr,            "%s: option requires an argument -- %c\n",            __progname, optopt);      return (BADCH);    }    else                            /* white space                    */      optarg = nargv[optind];    place = EMSG;    ++optind;  }  return (optopt);                  /* dump back option letter        */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -