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

📄 what3.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
#ifndef lintstatic char *sccsid = "@(#)what3.c	4.1 (Berkeley) 5/6/83";#endif#include "what..c"doclook(argc, argv, colevel)char *argv[];{	int fpa[2], fpb[2], fpc[2], pid1, pid2, st;	int iarg;	char *s;	FILE *ansf;	struct filans *af;	struct stat statbuf;# define RD 0# define WR 1# define fmv(x,y) close(y); dup(x); close(x);	/* we want to run chkbib and then lhunt and pipe in & out */	pipe (fpa); /* from this program to chkbib */	pipe (fpb); /* from chkbib to lhunt */	pipe (fpc); /* from lhunt to us */	if (  (pid1 = fork())  ==0)	{		fmv(fpa[RD], 0);		fmv(fpb[WR], 1);		close(fpa[WR]); 		close(fpb[RD]); 		close(fpc[RD]); 		close(fpc[WR]); 		execl("/usr/lib/refer/mkey", "mkey", "-s", 0);		assert(0);	}	if (  (pid2 = fork()) == 0)	{		char coarg[20];		sprintf(coarg, "-C%d", colevel);		fmv(fpb[RD], 0);		fmv(fpc[WR], 1);		close(fpa[RD]); 		close(fpa[WR]); 		close(fpb[WR]); 		close(fpc[RD]);		execl("/usr/lib/refer/hunt", "hunt",		/* "-P", */		coarg, "-Ty", "-Fn", "/usr/dict/lookall/All", 0);		assert(0);	}	assert (pid1 != -1); 	assert(pid2 != -1);	close(fpb[RD]); 	close(fpb[WR]); 	close(fpa[RD]); 	close(fpc[WR]);	ansf = fopen("/dev/null", "r");	fmv (fpc[RD], ansf->_file);	for(iarg=1; iarg<argc; iarg++)		prod(fpa[WR], argv[iarg]);	close(fpa[WR]);	s=fnames;	af=files;	while (af < files+NFILES)	{		if (fgets(af->nm=s, NAMES, ansf)==0)			break;		trimnl(s);		if (*s==0) continue;		while (*s++);		assert(s<fnames+NAMES);		st = stat(af->nm, &statbuf);		if (st<0) continue;		af->uid = statbuf.st_uid;		af->fdate = statbuf.st_mtime;		af->size = statbuf.st_size;		af++;	}	fclose(ansf);	return(af-files);}prod(f,s)char *s;{	write (f, s, strlen(s));	write (f, "\n", 1);}

⌨️ 快捷键说明

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