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

📄 what3.c

📁 unix v7是最后一个广泛发布的研究型UNIX版本
💻 C
字号:
# 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 + -