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

       

posted @ 2022-06-07 11:55  jinzi  阅读(5)  评论(0编辑  收藏  举报