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.
本文探讨了CRT(C运行时库)在Linux和Windows操作系统中的不同实现方式。Linux下通过glibc作为C运行时库,该库遵循POSIX标准,为应用程序提供了一组丰富的API。而在Windows环境中,MSVCRT作为C/C++运行时库,不仅支持操作系统的运行,还整合了WinAPI等平台特定的功能。文章深入剖析了这两个库如何成为各自平台上软件开发的基础。
1844

被折叠的 条评论
为什么被折叠?



