linux下实现简易shell
Posted wangyubjhd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下实现简易shell相关的知识,希望对你有一定的参考价值。
编写思路:
- 显示提示符$*
- 标准输入读取命令
- 以空格为界分割字符串
- 对cd命令作特出处理*
- 处理(使用signal函数忽略)信号SIGINT(2)、SIGQUIT(3)*
- 指定键入exit退出shell*
- fork子进程调用execvp
- execvp(argv[0], argv),argv参数由步骤1生成
- 父进程使用waitpid处理返回信号*
标*暂未实现
1 #include <sys/types.h> 2 #include <sys/wait.h> 3 #include <unistd.h> 4 #include <signal.h> 5 #include <stdio.h> 6 #include <string.h> 7 #include <stdlib.h> 8 #include "mysh.h" 9 10 void initShell() 11 { 12 while (1) { 13 prompt(); 14 fflush(stdout); 15 fflush(stdin); 16 char buf[1024]; 17 memset(buf, 0, sizeof(buf)); 18 ssize_t size = read(0, buf, sizeof(buf) - 1); 19 if (size > 0) { 20 buf[size - 1] = ‘