CLI命令行界面、CRT运行时库、进程创建
CLI命令行界面
在远古时期,没有漂亮的GUI,计算机程序多在黑白窗口中执行显示,虽然有些枯燥,但简单直接,输入和输出需要的资源很少,也适合当时计算机硬件条件。
控制台/终端/Shell
- 因历史原因,早期控制台Console一般是指和计算机直接连接可控制消息显示的终端,一般只有一个。其他的统一都被称为终端。
- 现代计算机已经逐渐不区分控制台和终端,因为大家长的都很像,没必要区分,很多时候混用。
- 早期的终端真的是终端,和主机可能相距很远,现代计算机资源丰富,大部分利用软件模拟"终端",不需要再单独用硬件设备做独立终端。
- CLI界面一般是由控制台或终端,配合Shell解释器实现。
命令行接口
基本所有的编程语言都会提供CLI的操作手法,源于CLI接口简单直接,可快速定位问题,不用在复杂的GUI程序集成验证。
终端配置
- 终端一般是字符形式输入输出,比GUI界面的效果展示肯定有差。但,终端也提供一些简单的"GUI"控制方式,比如DOS命令color可设定前景色和背景色。
CRT运行时库
C标准规定例如输入输出函数、字符串函数、内存操作等接口,一般采用C运行时库实现。
微软的CRT
- 微软有两套CRT,早期的MSVCRT和Windows 10自带的UCRT. UCRT 支持基于 C 调用约定的稳定 ABI,且谨遵 ISO C99 标准(仅有少数例外)。 它将不再绑定到特定版本的编译器。
- 可参考:UCRT
- VS2015用UCRT代替MSVCRT, UCRT采用C++编写,而非之前的C语言。
macOS CRT
- Mac有些独特,它的CRT位于libSystem.dylib,为了管控版本,一般会链接到当前版本文件libSystem.B.dylib.
Linux CRT
- Ubuntu libc路径:/lib/x86_64-linux-gnu/libc.so.6.
进程创建
为了方便程序员创建进程,不同编程语言提供了丰富多彩的接口。
不同的创建形式
- C libc提供system命令调用系统命令,也提供fork/exec*系列函数,二者差异为是否有等待命令执行完、是否在同一个进程中。
若文章对您有帮助,欢迎关注。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
原文地址:https://blog.csdn.net/cxsjabcabc/article/details/142816615
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!