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

📄 fake.c

📁 gcc-2.95.3 Linux下最常用的C编译器
💻 C
字号:
/* * fake - make up random lines resembling history-file entries, reproducibly * * -Log- */#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <string.h>#define	MAXSTR	500		/* For sizing strings -- DON'T use BUFSIZ! */#define	STREQ(a, b)	(*(a) == *(b) && strcmp((a), (b)) == 0)#ifndef lintstatic char RCSid[] = "$Header: /rel/cvsfiles/devo/libio/dbz/fake.c,v 1.2 1993/10/25 20:02:42 bothner Exp $";#endifint midonly = 0;		/* just message ids, rest not realistic */int tag = 0;			/* tag lines with random digit for later use */int expired = -1;		/* percentage of lines to be expired */int debug = 0;char *progname;char *inname;				/* filename for messages etc. */long lineno;				/* line number for messages etc. */void doline();void addchars();void seed();/* - main - parse arguments and handle options */intmain(argc, argv)int argc;char *argv[];{	int c;	int errflg = 0;	FILE *in;	struct stat statbuf;	extern int optind;	extern char *optarg;	void process();	register long no;	extern long atol();	char line[MAXSTR];	progname = argv[0];	while ((c = getopt(argc, argv, "ms:te:d")) != EOF)		switch (c) {		case 'm':	/* message-ids only */			midonly = 1;			break;		case 's':	/* seed */			seed(atol(optarg));			break;		case 't':	/* tag lines with a random digit */			tag = 1;			break;		case 'e':	/* percentage to be expired */			expired = atoi(optarg);			break;		case 'd':	/* Debugging. */			debug++;			break;		case '?':		default:			errflg++;			break;		}	if (errflg || optind != argc - 1) {		fprintf(stderr, "usage: %s ", progname);		fprintf(stderr, "[-m] [-s seed] length\n");		exit(2);	}	for (no = atol(argv[optind]); no > 0; no--) {		doline(line);		puts(line);	}#ifdef DBZ_FINISH	DBZ_FINISH;#endif	exit(0);}/* - doline - generate random history pseudo-line */voiddoline(buf)char *buf;{	char tagch[2];	(void) strcpy(buf, "<");	addchars(buf, range(4, 20));	(void) strcat(buf, "@");	addchars(buf, range(8, 20));	if (midonly)		(void) strcat(buf, ">\tx");	else {		if (tag) {			tagch[0] = "1234567890"[range(0,9)];			tagch[1] = '\0';			(void) strcat(buf, ">\t");			(void) strcat(buf, tagch);			(void) strcat(buf, "00000000~-");		} else			(void) strcat(buf, ">\t1234567890~-");	}	if (range(1, 100) > expired) {		if (midonly)			(void) strcat(buf, "\tx");		else {			(void) strcat(buf, "\t");			addchars(buf, range(10, 30));		}	}}/* - addchars - generate n random characters suitable for history file */voidaddchars(buf, len)char *buf;int len;{	register int i;	register char *p = buf + strlen(buf);	static char vocab[] = "1234567890.abcde.fghij.klmno.pqrst.uvwxyz.\1234567890.ABCDE.FGHIJ.KLMNO.PQRST.UVWXYZ.1234567890.\1234567890.abcde.fghij.klmno.pqrst.uvwxyz.1234567890";	for (i = len; i > 0; i--)		*p++ = vocab[range(0, sizeof(vocab)-2)];	*p++ = '\0';}

⌨️ 快捷键说明

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