smsh4.c

来自「关于web server、进程间通信、shell编程的经典源代码」· C语言 代码 · 共 55 行

C
55
字号
#include	<stdio.h>#include	<stdlib.h>#include	<unistd.h>#include	<signal.h>#include	<sys/wait.h>#include	"smsh.h"#include	"varlib.h"/** **	small-shell version 4 **		first really useful version after prompting shell **		this one parses the command line into strings **		uses fork, exec, wait, and ignores signals **/#define	DFL_PROMPT	"> "int main(){	char	*cmdline, *prompt, **arglist;	int	result, process(char **);	void	setup();	prompt = DFL_PROMPT ;	setup();	while ( (cmdline = next_cmd(prompt, stdin)) != NULL ){		if ( (arglist = splitline(cmdline)) != NULL  ){			result = process(arglist);			freelist(arglist);		}		free(cmdline);	}	return 0;}void setup()/* * purpose: initialize shell * returns: nothing. calls fatal() if trouble */{	extern char **environ;	VLenviron2table(environ);	signal(SIGINT,  SIG_IGN);	signal(SIGQUIT, SIG_IGN);}void fatal(char *s1, char *s2, int n){	fprintf(stderr,"Error: %s,%s\n", s1, s2);	exit(n);}

⌨️ 快捷键说明

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