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

📄 main.c

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 C
字号:
static	char sccsid[] = "@(#)main.c 4.3 4/1/82";/* * adb - main command loop and error/interrupt handling */#include "defs.h"MSG		NOEOR;INT		mkfault;INT		executing;INT		infile;CHAR		*lp;L_INT		maxoff;L_INT		maxpos;ADDR		sigint;ADDR		sigqit;INT		wtflag;L_INT		maxfile;STRING		errflg;L_INT		exitflg;CHAR		lastc;INT		eof;INT		lastcom;long	maxoff = MAXOFF;long	maxpos = MAXPOS;char	*Ipath = "/usr/lib/adb";main(argc, argv)	register char **argv;	int argc;{	mkioptab();another:	if (argc>1) {		if (eqstr("-w", argv[1])) {			wtflag = 2;		/* suitable for open() */			argc--, argv++;			goto another;		}		if (eqstr("-k", argv[1])) {			kernel = 1;			argc--, argv++;			goto another;		}		if (argv[1][0] == '-' && argv[1][1] == 'I') {			Ipath = argv[1]+2;			argc--, argv++;		}	}	if (argc > 1)		symfil = argv[1];	if (argc > 2)		corfil = argv[2];	xargc = argc;	setsym(); setcor(); setvar();	if ((sigint=signal(SIGINT,SIG_IGN)) != SIG_IGN) {		sigint = fault;		signal(SIGINT, fault);	}	sigqit = signal(SIGQUIT, SIG_IGN);	setexit();	if (executing)		delbp();	executing = 0;	for (;;) {		flushbuf();		if (errflg) {			printf("%s\n", errflg);			exitflg = errflg;			errflg = 0;		}		if (mkfault) {			mkfault=0;			printc('\n');			prints(DBNAME);		}		lp=0; rdc(); lp--;		if (eof) {			if (infile) {				iclose(-1, 0); eof=0; reset();			} else				done();		} else			exitflg = 0;		command(0, lastcom);		if (lp && lastc!='\n')			error(NOEOR);	}}done(){	endpcs();	exit(exitflg);}L_INTround(a,b)REG L_INT a, b;{	REG L_INT w;	w = (a/b)*b;	IF a!=w THEN w += b; FI	return(w);}/* * If there has been an error or a fault, take the error. */chkerr(){	if (errflg || mkfault)		error(errflg);}/* * An error occurred; save the message for later printing, * close open files, and reset to main command loop. */error(n)	char *n;{	errflg = n;	iclose(0, 1); oclose();	reset();}/* * An interrupt occurred; reset the interrupt * catch, seek to the end of the current file * and remember that there was a fault. */fault(a){	signal(a, fault);	lseek(infile, 0L, 2);	mkfault++;}

⌨️ 快捷键说明

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