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 标准(仅有少数例外)。 它将不再绑定到特定版本的编译器。

  • 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等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值