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

📄 dmalloc_argv_loc.h

📁 测试内存泄露工具
💻 H
字号:
/* * Local defines for the argv module * * Copyright 1995 by Gray Watson * * This file is part of the argv library. * * Permission to use, copy, modify, and distribute this software for * any purpose and without fee is hereby granted, provided that the * above copyright notice and this permission notice appear in all * copies, and that the name of Gray Watson not be used in advertising * or publicity pertaining to distribution of the document or software * without specific, written prior permission. * * Gray Watson makes no representations about the suitability of the * software described herein for any purpose.  It is provided "as is" * without express or implied warranty. * * The author may be contacted via http://dmalloc.com/ * * $Id: dmalloc_argv_loc.h,v 1.10 2003/05/15 02:42:21 gray Exp $ */#ifndef __ARGV_LOC_H__#define __ARGV_LOC_H__#include "dmalloc_argv.h"			/* to get the types *//* * some compilation options *//* * generic constants *//* special consideration for NULL.  some compilers bitch if I redefine it */#ifndef NULL#define NULL		0L#endif#undef	MIN#define MIN(a,b)	((a) < (b) ? (a) : (b))#undef NOERROR#define NOERROR		0#undef ERROR#define ERROR		(-1)#undef STDIN#define STDIN		0/* * local argv defines */#define ERROR_STREAM_INIT	(FILE *)0x1	/* hack to init stderr FILE* */#define NO_VALUE		(-1)		/* no mandatory args value */#define ARRAY_INCR		10		/* increment by 10 every 10 */#define SCREEN_WIDTH		79		/* width of screen till wrap */#define BITS_IN_BYTE		8		/* bits in a byte */#define SPECIAL_CHARS		"e\033^^\"\"''\\\\n\nr\rt\tb\bf\fa\007"#define DUMP_SPACE_BUF		128		/* space for memory dump */#define ARG_MALLOC_INCR		20		/* alloc in 10 increments */#define FILE_LINE_SIZE		1024		/* max size of file lines *//* internal flags set in the ar_type field *//* NOTE: other external flags defined in argv.h */#define ARGV_FLAG_USED		(1 << 12)	/* if arg has been specified *//* error messages */#define USAGE_ERROR_NAME	"usage problem"#define INTERNAL_ERROR_NAME	"internal argv error"/* * settings to vary the output of the argument routines */#define PROGRAM_NAME		256		/* max size of program name */#define EXIT_CODE		1		/* argv exit code for errors *//* global env settings */#define GLOBAL_NAME		"GLOBAL_ARGV"	/* global argv env name */#define GLOBAL_CLOSE		"close="	/* close arg setting */#define GLOBAL_ENV		"env="		/* env setting */#define GLOBAL_ERROR		"error="	/* error setting */#define GLOBAL_MULTI		"multi="	/* multi setting */#define GLOBAL_USAGE		"usage="	/* usage setting */#define GLOBAL_LASTTOG		"lasttog="	/* last-arg toggle *//* special argument definitions */#define LAST_ARG		"--"		/* arg to mark end of args */#define LONG_PREFIX		"--"		/* prefix for long args */#define SHORT_PREFIX		"-"		/* prefix for short args */#define UNKNOWN_ARG		"??"		/* unknown argument output */#define ARG_EQUALS		'='		/* to assign value to option */#define NUMBER_ARG_CHARS	"0123456789+-."	/* characters in numbers *//* how to produce the env var using sprintf and the argv_program variable */#define ENVIRON_FORMAT		"ARGV_%s"/* special short-argument strings */#define USAGE_CHAR_ARG		'?'		/* default short-opt usage *//* special long-argument strings */#define DISPLAY_ARG		"argv-display"	/* display arg variable vals */#define FILE_ARG		"argv-file"	/* read args from file */#define HELP_ARG		"help"		/* default help option */#define USAGE_ARG		"usage"		/* default usage option */#define USAGE_SHORT_ARG		"usage-short"	/* default usage-short opt */#define USAGE_LONG_ARG		"usage-long"	/* default usage-long opt */#define USAGE_ALL_ARG		"usage-all"	/* default usage-all opt */#define VERSION_ARG		"version"	/* default version option *//* spacing on line for usage messages */#define SHORT_COLUMN		2	/* spaces to indent for short-args */#define LONG_COLUMN		20	/* column for long options */#define COMMENT_COLUMN		45	/* column for comments *//* some in-line "labels" for comments */#define USAGE_LABEL		"Usage: "	/* usage message start */#define VERSION_LABEL		"= "		/* default:no version prefix */#define LONG_LABEL		"or "		/* put before long-option */#define COMMENT_LABEL		""		/* put before comments */#define ARRAY_LABEL		" array"	/* put after displayed type */#define BOOL_ARG_LABEL		"yes|no"	/* label for bool-arg arg *//* some sizeof defines */#define SHORT_PREFIX_LENGTH	(sizeof(SHORT_PREFIX) - 1)#define LONG_PREFIX_LENGTH	(sizeof(LONG_PREFIX) - 1)#define USAGE_LABEL_LENGTH	(sizeof(USAGE_LABEL) - 1)#define COMMENT_LABEL_LENGTH	(sizeof(COMMENT_LABEL) - 1)#define LONG_LABEL_LENGTH	(sizeof(LONG_LABEL) - 1)#define UNKNOWN_ARG_LENGTH	(sizeof(UNKNOWN_ARG) - 1)#define BOOL_ARG_LENGTH		(sizeof(BOOL_ARG_LABEL) - 1)#define HAS_ARG(type)	(! (ARGV_TYPE(type) == ARGV_BOOL \			    || ARGV_TYPE(type) == ARGV_BOOL_NEG \			    || ARGV_TYPE(type) == ARGV_INCR \			    || ARGV_TYPE(type) == ARGV_BOOL_INT \			    || ARGV_TYPE(type) == ARGV_BOOL_INT_NEG))/******************************** argv types *********************************//* strcture defining argv types */typedef struct {  unsigned int	at_value;		/* value of the type */  const char	*at_name;		/* name of the type */  unsigned int	at_size;		/* size of type */  const char	*at_desc;		/* description of the type */} argv_type_t;static	argv_type_t	argv_types[] = {  { ARGV_BOOL,		"flag",			sizeof(char),    "if option used, set variable to 1" },  { ARGV_BOOL_NEG,	"negative flag",	sizeof(int),    "if option used, set variable to 0" },  { ARGV_BOOL_ARG,	"flag with arg",	sizeof(char),    "like boolean but with an argument, true/yes/1 sets var to 1" },  { ARGV_CHAR,		"character",		sizeof(char),    "single character" },  { ARGV_CHAR_P,	"string",		sizeof(char *),    "multiple characters terminated with a '\\0'" },  { ARGV_SHORT,		"short integer",	sizeof(short),    "decimal short-sized integer value" },  { ARGV_U_SHORT,	"unsigned short integer", sizeof(unsigned short),    "decimal unsigned short-sized integer value" },  { ARGV_INT,		"integer",		sizeof(int),    "decimal integer value" },  { ARGV_U_INT,		"unsigned integer",	sizeof(unsigned int),    "decimal unsigned integer value" },  { ARGV_LONG,		"long integer",		sizeof(long),    "decimal long-sized integer value" },  { ARGV_U_LONG,	"unsigned long",	sizeof(unsigned long),    "decimal unsigned long-sized integer value" },  { ARGV_FLOAT,		"floating point",	sizeof(float),    "real number with decimal point" },  { ARGV_DOUBLE,	"double floating point", sizeof(double),    "double precision real number with decimal point" },  { ARGV_BIN,		"binary",		sizeof(int),    "base 2 value with digits of 0 or 1" },  { ARGV_OCT,		"octal",		sizeof(int),    "base 8 value with digits from 0-7" },  { ARGV_HEX,		"hexadecimal",		sizeof(int),    "base 16 value with digits from 0-9, A-F" },  { ARGV_INCR,		"increment",		sizeof(int),    "increment variable each time option used" },  { ARGV_SIZE,		"long size",		sizeof(long),    "size as long int + [bkmg] b=byte,k=kilo,m=meg,g=gig" },  { ARGV_U_SIZE,	"unsigned long size",	sizeof(unsigned long),    "size as unsigned long int + [bkmg] b=byte,k=kilo,m=meg,g=gig" },  { ARGV_BOOL_INT,	"integer boolean",	sizeof(int),    "if option used, set integer variable to 1" },  { ARGV_BOOL_INT_NEG,	"integer boolean",	sizeof(int),    "if option used, set integer variable to 0" },  { ARGV_BOOL_INT_ARG,	"integer boolean",	sizeof(int),    "like boolean but with an argument, true/yes/1 sets integer var to 1" },  { 0 }};#endif /* ! __ARGV_LOC_H__ */

⌨️ 快捷键说明

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