📄 popt.h
字号:
/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING file accompanying popt source distributions, available from ftp://ftp.redhat.com/pub/code/popt */#ifndef H_POPT#define H_POPT#ifdef __cplusplusextern "C" {#endif#include <stdio.h> /* for FILE * */#define POPT_OPTION_DEPTH 10#define POPT_ARG_NONE 0#define POPT_ARG_STRING 1#define POPT_ARG_INT 2#define POPT_ARG_LONG 3#define POPT_ARG_INCLUDE_TABLE 4 /* arg points to table */#define POPT_ARG_CALLBACK 5 /* table-wide callback... must be set first in table; arg points to callback, descrip points to callback data to pass */#define POPT_ARG_INTL_DOMAIN 6 /* set the translation domain for this table and any included tables; arg points to the domain string */#define POPT_ARG_VAL 7 /* arg should take value val */#define POPT_ARG_MASK 0x0000FFFF#define POPT_ARGFLAG_ONEDASH 0x80000000 /* allow -longoption */#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000 /* don't show in help/usage */#define POPT_ARGFLAG_STRIP 0x20000000 /* strip this arg from argv (only applies to long args) */#define POPT_CBFLAG_PRE 0x80000000 /* call the callback before parse */#define POPT_CBFLAG_POST 0x40000000 /* call the callback after parse */#define POPT_CBFLAG_INC_DATA 0x20000000 /* use data from the include line, not the subtable */#define POPT_ERROR_NOARG -10#define POPT_ERROR_BADOPT -11#define POPT_ERROR_OPTSTOODEEP -13#define POPT_ERROR_BADQUOTE -15 /* only from poptParseArgString() */#define POPT_ERROR_ERRNO -16 /* only from poptParseArgString() */#define POPT_ERROR_BADNUMBER -17#define POPT_ERROR_OVERFLOW -18/* poptBadOption() flags */#define POPT_BADOPTION_NOALIAS (1 << 0) /* don't go into an alias *//* poptGetContext() flags */#define POPT_CONTEXT_NO_EXEC (1 << 0) /* ignore exec expansions */#define POPT_CONTEXT_KEEP_FIRST (1 << 1) /* pay attention to argv[0] */#define POPT_CONTEXT_POSIXMEHARDER (1 << 2) /* options can't follow args */struct poptOption { /*@observer@*/ /*@null@*/ const char * longName; /* may be NULL */ char shortName; /* may be '\0' */ int argInfo; /*@shared@*/ /*@null@*/ void * arg; /* depends on argInfo */ int val; /* 0 means don't return, just update flag */ /*@shared@*/ /*@null@*/ const char * descrip; /* description for autohelp -- may be NULL */ /*@shared@*/ /*@null@*/ const char * argDescrip; /* argument description for autohelp */};struct poptAlias { /*@owned@*/ /*@null@*/ const char * longName; /* may be NULL */ char shortName; /* may be '\0' */ int argc; /*@owned@*/ const char ** argv; /* must be free()able */};extern struct poptOption poptHelpOptions[];#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \ 0, "Help options", NULL },typedef struct poptContext_s * poptContext;#ifndef __cplusplustypedef struct poptOption * poptOption;#endifenum poptCallbackReason { POPT_CALLBACK_REASON_PRE, POPT_CALLBACK_REASON_POST, POPT_CALLBACK_REASON_OPTION };typedef void (*poptCallbackType)(poptContext con, enum poptCallbackReason reason, const struct poptOption * opt, const char * arg, const void * data);/*@only@*/ poptContext poptGetContext(/*@keep@*/ const char * name, int argc, /*@keep@*/ const char ** argv, /*@keep@*/ const struct poptOption * options, int flags);void poptResetContext(poptContext con);/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */int poptGetNextOpt(poptContext con);/* returns NULL if no argument is available *//*@observer@*/ /*@null@*/ const char * poptGetOptArg(poptContext con);/* returns NULL if no more options are available *//*@observer@*/ /*@null@*/ const char * poptGetArg(poptContext con);/*@observer@*/ /*@null@*/ const char * poptPeekArg(poptContext con);/*@observer@*/ /*@null@*/ const char ** poptGetArgs(poptContext con);/* returns the option which caused the most recent error *//*@observer@*/ const char * poptBadOption(poptContext con, int flags);void poptFreeContext( /*@only@*/ poptContext con);int poptStuffArgs(poptContext con, /*@keep@*/ const char ** argv);int poptAddAlias(poptContext con, struct poptAlias alias, int flags);int poptReadConfigFile(poptContext con, const char * fn);/* like above, but reads /etc/popt and $HOME/.popt along with environment vars */int poptReadDefaultConfig(poptContext con, int useEnv);/* argv should be freed -- this allows ', ", and \ quoting, but ' is treated the same as " and both may include \ quotes */int poptDupArgv(int argc, const char **argv, /*@out@*/ int * argcPtr, /*@out@*/ const char *** argvPtr);int poptParseArgvString(const char * s, /*@out@*/ int * argcPtr, /*@out@*/ const char *** argvPtr);/*@observer@*/ const char *poptStrerror(const int error);void poptSetExecPath(poptContext con, const char * path, int allowAbsolute);void poptPrintHelp(poptContext con, FILE * f, int flags);void poptPrintUsage(poptContext con, FILE * f, int flags);void poptSetOtherOptionHelp(poptContext con, const char * text);/*@observer@*/ const char * poptGetInvocationName(poptContext con);/* shuffles argv pointers to remove stripped args, returns new argc */int poptStrippedArgv(poptContext con, int argc, char **argv);#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -