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

📄 popt.h

📁 samba-3.0.22.tar.gz 编译smb服务器的源码
💻 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 + -