C 标准库
不同系统平台有多种主流的 C 标准库共存:
- BSD libc,由 BSD 系统发布;
- GNU C Library (glibc),由 GNU 项目发布,可在 Linux、多种 UNIX 系统上运行;
- Microsoft C run-time library(MSVCRT.DLL),由微软随 Windows 发布,给 Visual C++ 编辑器链接使用的;
- Newlib,由 Cygnus Solution 公司开发,Cygwin 环境中的 libc.a 正是此版本,目前广泛用在嵌入式系统中;
- dietlibc、μClibc 等,功能经过适度裁剪的 C 标准库,主要用在嵌入式系统。
Cygwin是一个可原生运行于Windows系统上的POSIX兼容环境。
Cygwin就是在Windows中增加了一个中间层——兼容POSIX的模拟层,并在此基础上构建了大量Linux-like的软件工具。再来解释本文开头的回答,如下图,POSXI兼容环境包括以下两部分:
- cygwin1.dll,作为实现POSIX系统调用的模拟层,可原生运行在Windows中;
- 在cygwin1.dll之上构建的大量函数库、应用程序,如libc、zlib、bash、gcc、vim、awk、sed、git等等,与UNIX/Linux几乎等同*。
*注:Cygwin的libc是Newlib,Linux的libc是GNU libc,UNIX有的是BSD libc。
glibc | http://www.gnu.org/software/libc/libc.html |
https://sourceware.org/pipermail/libc-alpha/2022-February/136040.html | |
glibc 是gnu发布的libc库,也即c运行库。
glibc是linux系统中最底层的api(应用程序开发接口),
几乎其它任何的运行库都会依赖于glibc。
glibc除了封装linux操作系统所提供的系统服务外,
它本身也提供了许多其它一些必要功能服务的实现,主要的如下:
(1)string,字符串处理
(2)signal,信号处理
(3)dlfcn,管理共享库的动态加载
(4)direct,文件目录操作
(5)elf,共享库的动态加载器,也即interpreter
(6)iconv,不同字符集的编码转换
(7)inet,socket接口的实现
(8)intl,国际化,也即gettext的实现
(9)io
(10)linuxthreads
(11)locale,本地化
(12)login,虚拟终端设备的管理,及系统的安全访问
(13)malloc,动态内存的分配与管理
(14)nis
(15)stdlib,其它基本功能
msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现,并且为使用C/C++(Vc)编译的程序提供了初始化(如获取命令行参数)以及退出等功能。
https://pubs.opengroup.org/onlinepubs/009695399/nfindex.html
https://unix.org/apis.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?