自学内容网 自学内容网

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


原文地址:https://blog.csdn.net/cxsjabcabc/article/details/142816615

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!