王剑编程网

分享专业编程知识与实战技巧

不同平台CRT的区别?什么是UCRT?如何看libc源代码?

若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!




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.


什么是UCRT?


从Visual Studio 2015开始,CRT被重构成UCRT. UCRT已变成Windows 10组件的一部分。UCRT统一了微软对于不同子平台CRT不同的缺点,可以统一维护。

  • 示例:C:\Program Files (x86)\Windows Kits\10\Lib\10.0.19041.0\ucrt\x86\ucrt.lib


如何查看libc源代码?


GNU libc

  • Index of /pub/gnu/glibc
  • http://ftp.gnu.org/pub/gnu/glibc/
  • 源代码在线查看:2.39版本 Glibc source code (glibc-2.39) - Bootlin
  • https://elixir.bootlin.com/glibc/glibc-2.39/source


macOS libc










微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言