minishell的实现
实现逻辑
- 从标准输入当中读取数据(要执行的可执行程序)
- 拆分可执行程序名称和命令行参数,我们认为从标准输入当中读取到的内容第一个空格之前的数据是可执行程序的名称,第一个空格之后的内容都认为是命令行参数
- 创建子进程,子进程程序替换可执行程序
- 在子进程程序替换时间内,让父进程进行等待进程等待
- isspace()函数,判断一个字符是否有空白字符(空格、换页符、换行符、回车、水平指标符、垂直制表符)
- isapace()函数返回值,返回0为没有读到了空白字符,返回非0读到了空白字符
代码实现
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <ctype.h>
#include <sys/wait.h>
#include <stdlib.h>
char g_command[1024];
int GetCommand()
{
memset(g_command,'\0',sizeof(g_command));
printf("[sky@localhost minshell]$ ");
fflush(stdout);