主函数流程
介绍完了Shell的基本情况,就开始描述代码了。首先如下代码段所示为主函数的内容,一共只有几句话,但却是本Shell的一个基本工作流程。
//main.cpp
#include"tlsh.h"
int main()
{
init(); //初始化
queue<string> task_queue; //任务队列
while(true)
{
cout << getPrefix() << flush; //输出前缀
getTaskList(task_queue); //获取任务队列
executeTaskList(task_queue); //执行任务队列
}
return 0;
}
上述代码片段转换成流程图就是下面这个样子:
接下来我们一个函数一个函数的跟进,看看这几步里面到底在做什么?
init()函数
以下代码段为init函数的内容:
//init() @ internal.cpp
void init()
{
//处理SIGINT信号
if(signal_(SIGINT, intHandler) == SIG_ERR)
{
cout << "Signal_ Error!" << endl;
exit(1);
}
getIfDetach() = false</