mkey1.c

来自「unix v7是最后一个广泛发布的研究型UNIX版本」· C语言 代码 · 共 88 行

C
88
字号
# include "stdio.h"extern char *comname; /* "/usr/lib/eign" */int wholefile = 0;int keycount = 100;int labels = 1;int minlen = 3;extern int comcount;char *iglist "XYZ#";main (argc,argv)	char *argv[];{/* this program expects as its arguments a list of   files and generates a set of lines of the form     filename:byte-add,length (tab) key1 key2 key3   where the byte addresses give the position within   the file and the keys are the strings off the lines   which are alphabetic, first six characters only.*/int i;char *name, qn[200];char *inlist 0;FILE *f, *ff;while (argc>1 && argv[1][0] == '-')	{	switch(argv[1][1])		{		case 'c':			comname = argv[2];			argv++; argc--;			break;		case 'w':			wholefile = 1;  break;		case 'f':			inlist = argv[2];			argv++; argc--;			break;		case 'i':			iglist = argv[2];			argv++; argc--;			break;		case 'l':			minlen = atoi(argv[1]+2);			if (minlen<=0) minlen=3;			break;		case 'n': /* number of common words to use */			comcount = atoi(argv[1]+2);			break;		case 'k': /* number  of keys per file max */			keycount = atoi(argv[1]+2);			break;		case 's': /* suppress labels, search only */			labels = 0;			break;		}	argc--; argv++;	}if (inlist)	{	ff = fopen(inlist, "r");	while (fgets(qn, 200, ff))		{		trimnl(qn);		f = fopen (qn, "r");		if (f!=NULL)			dofile(f, qn);		else			fprintf(stderr, "Can't read %s\n",qn);		}	}elseif (argc<=1)	dofile(stdin, "");elsefor(i=1; i<argc; i++)	{	f = fopen(name=argv[i], "r");	if (f==NULL)		err("No file %s",name);	else		dofile(f, name);	}exit(0);}

⌨️ 快捷键说明

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