#include #include #include "fun.h" void eval(char *cmdline); void sigint_handler(); pid_t getpid(void); pid_t main_proc_pid; int main() { char cmdline[MAXLINE]; main_proc_pid = getpid(); signal(SIGINT, sigint_handler); while(1) { printf("COMMAND->"); fflush(stdin); fgets(cmdline, MAXLINE, stdin); eval(cmdline); history(cmdline); } return 0; } void sigint_handler() { pid_t pid = getpid(); if(pid != main_proc_pid) { exit(0); } }