Linux CRT:glibc
- POSIX 是一套可移植的操作系统接口,很多unix,linux都基于这套接口开发。当然还要别的标准。
- 所有基于POSIX标准的操作系统,都可以在这个系统上,直接基于POSIX标准进行应用开发。但这是不够的,所以诞生了glibc,linux下的crt。
- glibc完全基于POSIX标准,所以能在基于POSIX标准的操作系统使用。实际上还是操作系统调用。glibc也不止实现了POSIX标准。
- glibc成了linux最底层的api,所以除了操作系统本身外,基本上所有的东西都是基于glibc开发。
- glibc实际上是操作系统内核的常用系统函数的一个封装。
Windows CRT:msvcrt
- 它是指微软C/C++ Runtime Library,crt的最初目的是支持操作系统运行,它是编写windows时使用的底层类库,与平台无关的。windows是汇编/C/C++开发的,windows内核很多东西是在crt上运行的,后来crt中加入了与平台有关的win api,比如线程。
- win api,MFC,STL都是在crt的基础上开发的。
- vc中包含了crt的源码,使用的crt有静态和动态两种,静态调用包lib*.lib包含到程序内部,动态调用需要系统存在msvcrt.dll。
- vc中针对c++,在msvcrt的基础上,加入了标准c++库:libcp.lib,libcpmt.lib,msvcprt.lib.