一、命令行应用程序
1、命令行应用程序的特点:
是一种基于顺序执行结构的可执行程序;
程序执行过程中不需要与用户产生交互;
程序执行结束后给出最终的运行结果。
比如:gcc a.c b.c //使用gcc交互编译链对C语言文件进行编译,链接成可执行文件。
编译执行命令行应用程序过程中不会产生用户交互,编译结束后会生成可执行文件。
2、命令行应用成熟的运行模式
程序的运行有固定的开始和固定的结束。程序的入口即为在命令行中敲击的命令,也就是在我们常说的
Shell,用户与操作系统内核之间进行交互的接口,当执行命令行应用程序后,系统自动去找到下一个
函数去执行,直到整个程序流程的结束。
3、命令行应用程序适用场合
单任务程序;
无交互或简单交互场合;
服务器应用场合。
二、什么是Shell
Shell 是一个应用程序,它负责接收用户输入的命令,然后根据命令做出相应的动作, Shell 负责将
应用层或者用户输入的命令传递给系统内核,由操作系统内核来完成相应的工作,然后将结果反馈给应
用层或者用户。
1、Shell 基本操作
前面我们说 Shell 就是“敲命令”,那么既然是命令,那肯定是有格式的, Shell 命令的格式如下:
command -options [argument]
command: Shell 命令名称。
options:选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。
argument: Shell 命令是可以带参数的,也可以不带参数运行。
同样以命令“ls”为例,下面“ls”命令的三种不同格式其结果也不同:
ls
ls – l
ls /usr
ls就是一个命令行应用程序,当我们在终端的命令行中敲出命令行,并进行回车后,便可在终端看到命令行应用程序的输出结果。
三、图形界面GUI应用程序
1.图形界面应用程序的诞生
**随着应用程序的诞生发展,计算机走进日常生活。对于大多数人而言。
计算机只是个工具,并不会选择去面对着终端和命令行进行开发;
计算机程序开始需要处理各个领域中的问题;
计算机用户已经不再是专业的计算机工作者。
2、图形界面应用程序的特点(Graphic User Interface)
是一种基于消息驱动模型的可执行程序;
程序的执行依赖用户的交互过程;
程序执行过程中实时响应用户操作;
一般情况下程序执行后不会主动退出。
3、图形界面应用程序的运行模式
由流程图得出,图形界面应用程序执行时,从main函数入口开始,最后会进入消息循环,除非收到特
定的消息。(用户点击退出产生)
每一个主窗口、元素都需要用户去创建,当显示出主窗口后,然后进入循环,系统等待用户进行操作,
也就是人机交互,操作系统等待用户对其发消息,进入图形界面消息处理。
4、图形界面应用程序的消息处理模型
当用户操作(如鼠标点击、键盘按下)时,操作系统内核会感知到用户操作,然后根据用户的操作类型生
成相应的系统消息,然后将系统消息发送给拥有焦点的(用户当前操作的)应用程序,接着应用程序收到
系统发送的消息并响应、处理(消息被扔到应用程序的消息队列,应用程序从消息队列中取出一个个消
息并由消息处理函数处理),当不存在用户操作时,GUI应用程序处于停滞状态。
5、图形界面应用程序适用场合
多任务的场合;
强用户交互的场合;
非专业计算机用户。
使用QT Creator做的串口助手
四、图形界面程序与命令行应用程序结合开发
当代大型软件产品架构模型
当代软件产品包括:用户界面交互层(qt,mfc,.net)《=》网络更新模块(命令行程序)、数据库管理模块(命令行程序)、虚拟机引擎模块(命令行程序)。
图形界面程序VS命令行应用程序
命令行应用程序 | 图形界面应用程序 |
---|---|
基于顺序执行结构 | 基于消息驱动模型 |
弱交互执行 | 强交互执行 |
由用户触发运行 | 由用户触发运行 |
主动结束 | 由用户触发结束 |