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

📄 what1.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char *sccsid = "@(#)what1.c	4.1 (Berkeley) 5/6/83";#endif#include "what..c"struct filans files[NFILES];char fnames[NAMES];int relfeed 0;char *rb[NFEED];char rbb[200], *rbp rbb;;main(argc,argv)char *argv[];{	char *s, *t, *xargv[50], *wd[50];	struct filans *af;	int xargc 0, nw, nf, i;	while (argc>1 && argv[1][0]=='-')	{		switch(argv[1][1])		{		case 'r': 			relfeed=1; 			break;		}		argc--; 		argv++;	}	if (argc<=1)	{		printf("No query.\n");		return(0);	}	nf = doclook(argc,argv,0);	printf("   %d files\n",nf);	if (relfeed && nf>NFEED)	{		wrdoc(NFEED, argc, argv, 1);		nw = freqwd (rb, wd, argc);		for(i=0; rb[i]; i++)			unlink(rb[i]);	}	for(i=0; i<argc; i++)		xargv[xargc++]=argv[i];	if (relfeed)	{		printf("Adding: ");		for(i=0; i<nw; i++)			if (!lfind(wd[i], xargc, xargv))				printf("%s ", xargv[xargc++]=wd[i]);		printf("\n");		nf = doclook(xargc, xargv, relfeed? xargc/4 : 0);		printf("  %d files\n",nf);	}	shell (nf, comp, exch);	wrdoc(nf, xargc, xargv, 0);	return(0);}exch( i1, i2 ){	struct filans *p1, *p2;	struct filans xt;	p1=files+i1;	p2=files+i2;	xt = *p1;	*p1 = *p2;	*p2 = xt;}comp(i1, i2){	struct filans *p1, *p2;	p1 = files+i1;	p2= files+i2;	if (p1->fdate != p2->fdate)		return(p2->fdate > p1->fdate);	return(p2->uid >= p1->uid);}wrdoc ( np, argc, argv, relfeed ){	struct filans *af;	char *s, *t, buf[200];	int eval, k, pid;	FILE *rf NULL;	FILE *ans NULL;	pid=getpid();	for(af=files; af<files+np; af++)	{		t = ctime(&af->fdate);		getpw(af->uid, s=buf);		while (*s && *s!=':') s++;		*s=0;		printf("%s (%.20s)  %s, %ld bytes\n",af->nm,t+4,buf,af->size);		if (relfeed)		{			k=af-files;			assert (k<NFEED);			sprintf(rb[k]=rbp, "rf%d.%d",pid, k);			rf = fopen(rb[k], "w");			while (*rbp++);		}		describe(af->nm, argc,argv, rf);		if (relfeed)		{			printf("You like that one?");			fflush(stdout);			fgets(buf, 100, stdin);			switch(buf[0])			{			case 'y': 			case 'Y': 				eval=1; 				break;			case 'n': 			case 'N': 				eval = -1; 				break;			default: 				eval=0; 				break;			}			fclose(rf);			if (eval<=0)			{				unlink(rb[k]);				rb[k][0]=0;			}		}	}	if (relfeed) rb[np]=0;}lfind( wl, n, wds)char *wl, *wds[];{	int i;	for(i=0; i<n; i++)		if (str6cmp(wl, wds[i])==0)			return(1);	return(0);}str6cmp(s, t)char *s, *t;{	int i 0, c;	while ( (c= *s++ ) == ( *t++))		if (c==0 || ++i ==6)			return(0);	return(1);}

⌨️ 快捷键说明

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