当前位置:  技术问答>linux和unix

linux系统中是否存在getopt.h?

    来源: 互联网  发布时间:2015-03-05

    本文导语:  本人遇到一段vc程序,它引入了getopt.h的文件,但在我的windows操作系统下无法找到该文件,请问在linux系统中是否存在?若存在,该文件提供什么功能?谢谢! | 文件的功能我不大明白,我只...

本人遇到一段vc程序,它引入了getopt.h的文件,但在我的windows操作系统下无法找到该文件,请问在linux系统中是否存在?若存在,该文件提供什么功能?谢谢!

|
文件的功能我不大明白,我只觉得应该和网络相关。下面是文件代码


/* Declarations for getopt.
   Copyright (C) 1989-1994, 1996-1999, 2001 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */

#ifndef _GETOPT_H

#ifndef __need_getopt
# define _GETOPT_H 1
#endif

/* If __GNU_LIBRARY__ is not already defined, either we are being used
   standalone, or this is the first header included in the source file.
   If we are being used with glibc, we need to include , but
   that does not exist if we are standalone.  So: if __GNU_LIBRARY__ is
   not defined, include , which will pull in  for us
   if it's from glibc.  (Why ctype.h?  It's guaranteed to exist and it
   doesn't flood the namespace with stuff the way some other headers do.)  */
#if !defined __GNU_LIBRARY__
# include 
#endif

#ifdef __cplusplus
extern "C" {
#endif

/* For communication from `getopt' to the caller.
   When `getopt' finds an option that takes an argument,
   the argument value is returned here.
   Also, when `ordering' is RETURN_IN_ORDER,
   each non-option ARGV-element is returned here.  */

extern char *optarg;

/* Index in ARGV of the next element to be scanned.
   This is used for communication to and from the caller
   and for communication between successive calls to `getopt'.

   On entry to `getopt', zero means this is the first call; initialize.

   When `getopt' returns -1, this is the index of the first of the
   non-option elements that the caller should itself scan.

   Otherwise, `optind' communicates from one call to the next
   how much of ARGV has been scanned so far.  */

extern int optind;

/* Callers store zero here to inhibit the error message `getopt' prints
   for unrecognized options.  */

extern int opterr;

/* Set to an option character which was unrecognized.  */

extern int optopt;

#ifndef __need_getopt
/* Describe the long-named options requested by the application.
   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
   of `struct option' terminated by an element containing a name which is
   zero.

   The field `has_arg' is:
   no_argument (or 0) if the option does not take an argument,
   required_argument (or 1) if the option requires an argument,
   optional_argument  (or 2) if the option takes an optional argument.

   If the field `flag' is not NULL, it points to a variable that is set
   to the value given in the field `val' when the option is found, but
   left unchanged if the option is not found.

   To have a long-named option do something other than set an `int' to
   a compiled-in constant, such as set a value from `optarg', set the
   option's `flag' field to zero and its `val' field to a nonzero
   value (the equivalent single-letter option character, if there is
   one).  For long options that have a zero `flag' field, `getopt'
   returns the contents of the `val' field.  */

struct option
{
# if (defined __STDC__ && __STDC__) || defined __cplusplus
  const char *name;
# else
  char *name;
# endif
  /* has_arg can't be an enum because some compilers complain about
     type mismatches in all the code that assumes it is an int.  */
  int has_arg;
  int *flag;
  int val;
};

/* Names for the values of the `has_arg' field of `struct option'.  */

# define no_argument 0
# define required_argument 1
# define optional_argument 2
#endif /* need getopt */


/* Get definitions and prototypes for functions to process the
   arguments in ARGV (ARGC of them, minus the program name) for
   options given in OPTS.

   Return the option character from OPTS just read.  Return -1 when
   there are no more options.  For unrecognized options, or options
   missing arguments, `optopt' is set to the option letter, and '?' is
   returned.

   The OPTS string is a list of characters which are recognized option
   letters, optionally followed by colons, specifying that that letter
   takes an argument, to be placed in `optarg'.

   If a letter in OPTS is followed by two colons, its argument is
   optional.  This behavior is specific to the GNU `getopt'.

   The argument `--' causes premature termination of argument
   scanning, explicitly telling `getopt' that there are no more
   options.

   If OPTS begins with `--', then non-option arguments are treated as
   arguments to the option ''.  This behavior is specific to the GNU
   `getopt'.  */

#if (defined __STDC__ && __STDC__) || defined __cplusplus
# ifdef __GNU_LIBRARY__
/* Many other libraries have conflicting prototypes for getopt, with
   differences in the consts, in stdlib.h.  To avoid compilation
   errors, only prototype getopt for the GNU C library.  */
extern int getopt (int ___argc, char *const *___argv, const char *__shortopts);
# else /* not __GNU_LIBRARY__ */
extern int getopt ();
# endif /* __GNU_LIBRARY__ */

# ifndef __need_getopt
extern int getopt_long (int ___argc, char *const *___argv,
const char *__shortopts,
        const struct option *__longopts, int *__longind);
extern int getopt_long_only (int ___argc, char *const *___argv,
     const char *__shortopts,
             const struct option *__longopts, int *__longind);

/* Internal only.  Users should not call this directly.  */
extern int _getopt_internal (int ___argc, char *const *___argv,
     const char *__shortopts,
             const struct option *__longopts, int *__longind,
     int __long_only);
# endif
#else /* not __STDC__ */
extern int getopt ();
# ifndef __need_getopt
extern int getopt_long ();
extern int getopt_long_only ();

extern int _getopt_internal ();
# endif
#endif /* __STDC__ */

#ifdef __cplusplus
}
#endif

/* Make sure we later can get all the definitions and declarations.  */
#undef __need_getopt

#endif /* getopt.h */

    
 
 

您可能感兴趣的文章:

  • 请教高手:C语言怎么知道一个进程是否存在(Linux下)
  • 如何在linux判断目录是否存在
  • 如何WINDOWS2000和LINUX共存在一个硬盘
  • 怎样让linux在启动时,启动存在ip冲突的网卡?与内核选项有关吗?
  • Linux下C编程,如何判断制定路径的文件是否存在?
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞 iis7站长之家
  • Linux下是否存在磁盘碎片问题和内存碎片问题?
  • ubuntu为例,linux自带的拨号程序的配置文件存在哪里?
  • linux下如何操作已经存在的TCP连接
  • Linux使用mv命令重命名时,新文件名已存在,会把原来的覆盖掉,却不问用户,怎么解决?
  • linux下,tomcat进程存在却停止了服务
  • linux 怎么判断文件夹是否存在
  • 在linux下怎么查看用户的密码?怎么知道有这样一个用户存在?
  • LINUX shell 日志文件存在判断
  • 在linux中,想查询/proc文件中的某个目录是否存在,求助如何进行检测
  • linux文件是否存在问题
  • linux下能用tar命令更新已经存在的.tar.gz压缩包么?
  • 在编译uClinux时arm-linux-20070808-gcc不存在的问题
  • C盘装的是win2000,D盘装的是RedHat7.2 linux,我进入win2000后,看见D盘仍然存在,......
  • win98、win2000、linux如何共存在一块硬盘上???(急!!在线等待)
  • unix与linux的关系,是否免费?两者是否开放源码?各到什么版本?何处下载?
  • 怎么知道自己的redhat linux 的端口是否已经开放,比如我想看看80和21端口是否开放?
  • 请问用jb7编写的程序是否可以超平台,即在win下写的程序是否可以在linux下运行?
  • 有谁做过嵌入式 Linux开发?是否有嵌入式Linux的JVM?
  • SUSE Linux Enterprise Desktop 10.1是否可以象一般的Linux免费使用?
  • Linux对其在硬盘中的安装位置是否有要求?
  • 是否有精简版的linux.
  • 求判断某ip是否联通的函数或类linux c/c++
  • linux程序如何判断一个网络共享文件是否更新
  • Linux是否支持RTF格式
  • powerbuilder 是否能在 Linux系统下使用?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 急,Linux shell脚本问题请教,关于getopts
  • linux下的C程序getopt问题
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • linux c下利用srand和rand函数生成随机字符串
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • Linux c++虚函数(virtual function)简单用法示例代码
  • 我们网站的服务器从windows2000迁往linux,ASP程序继续使用,可是我连LINUX的皮毛都不了解,大家告诉我LINUX下怎么建网站??
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • 中文Linux与西文Linus分别哪一个版是权威?I认为是:中科软的白旗Linux与西文的绿帽子Linux!大家的看法呢?
  • Linux下chmod命令详细介绍及用法举例
  • 我重装了winme,却进不了Linux了,而我现在又没有Linux光盘,也没有Linux启动盘,还有没有办法?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3