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

📄 exec.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
/* * Definitions used in the interpreter */extern void Xappend(void), Xasync(void), Xbackq(void), Xbang(void), Xclose(void);extern void Xconc(void), Xcount(void), Xdelfn(void), Xdol(void), Xqdol(void), Xdup(void);extern void Xexit(void), Xfalse(void), Xfn(void), Xfor(void), Xglob(void);extern void Xjump(void), Xmark(void), Xmatch(void), Xpipe(void), Xread(void);extern void Xrdwr(void);extern void Xrdfn(void), Xunredir(void), Xstar(void), Xreturn(void), Xsubshell(void);extern void Xtrue(void), Xword(void), Xwrite(void), Xpipefd(void), Xcase(void);extern void Xlocal(void), Xunlocal(void), Xassign(void), Xsimple(void), Xpopm(void);extern void Xrdcmds(void), Xwastrue(void), Xif(void), Xifnot(void), Xpipewait(void);extern void Xdelhere(void), Xpopredir(void), Xsub(void), Xeflag(void), Xsettrue(void);extern void Xerror(char*);extern void Xerror1(char*);/* * word lists are in correct order, * i.e. word0->word1->word2->word3->0 */struct word{	char *word;	word *next;};struct list{	word *words;	list *next;};word *newword(char *, word *), *copywords(word *, word *);struct redir{	char type;			/* what to do */	short from, to;			/* what to do it to */	struct redir *next;		/* what else to do (reverse order) */};#define	NSTATUS	ERRMAX			/* length of status (from plan 9) *//* * redir types */#define	ROPEN	1			/* dup2(from, to); close(from); */#define	RDUP	2			/* dup2(from, to); */#define	RCLOSE	3			/* close(from); */struct thread{	union code *code;		/* code for this thread */	int pc;				/* code[pc] is the next instruction */	struct list *argv;		/* argument stack */	struct redir *redir;		/* redirection stack */	struct redir *startredir;	/* redir inheritance point */	struct var *local;		/* list of local variables */	char *cmdfile;			/* file name in Xrdcmd */	struct io *cmdfd;		/* file descriptor for Xrdcmd */	int iflast;			/* static `if not' checking */	int eof;			/* is cmdfd at eof? */	int iflag;			/* interactive? */	int lineno;			/* linenumber */	int pid;			/* process for Xpipewait to wait for */	char status[NSTATUS];		/* status for Xpipewait */	tree *treenodes;		/* tree nodes created by this process */	thread *ret;		/* who continues when this finishes */};thread *runq;code *codecopy(code*);code *codebuf;				/* compiler output */int ntrap;				/* number of outstanding traps */int trap[NSIG];				/* number of outstanding traps per type */struct builtin{	char *name;	void (*fnc)(void);}Builtin[];int eflagok;			/* kludge flag so that -e doesn't exit in startup */int havefork;void execcd(void), execwhatis(void), execeval(void), execexec(void);int execforkexec(void);void execexit(void), execshift(void);void execwait(void), execumask(void), execdot(void), execflag(void);void execfunc(var*), execcmds(io *);

⌨️ 快捷键说明

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