【ARM 嵌入式 编译系列 3.2 -- glibc 学习】

本文介绍了GNU GLIBC,它是Linux和其他操作系统标准C库,实现了POSIX和Single UNIX Specification等标准。内容包括GLIBC的介绍、与POSIX的关系,以及常见接口如stdio.h、stdlib.h等。此外,还探讨了lib文件的管理,如ar命令的使用,以及如何处理库文件冲突。
摘要由CSDN通过智能技术生成


请阅读【ARM GCC 编译专栏导读】



上篇文章:ARM 嵌入式 编译系列 3.1 – GCC attribute((used)) 使用
下篇文章:ARM 嵌入式 编译系列 3.3 – gcc 动态库与静态库的链接方法介绍

1.1 GNU GLIBC 介绍

GLIBC,全名GNU C库,是GNU项目发布的一套C语言库。它定义了系统调用和基本运行时的C语言ABI(应用程序二进制接口),包括开放文件、分配内存、启动进程等函数。

glibc是Linux和许多其他操作系统的标准C库,它提供了许多重要的接口,如 POSIX 和 Single UNIX Specification等。并且它还实现了ISO C11、POSIX.1-2008和一些其他标准的许多可选扩展。

ISO C11是C语言的一个标准版本,它定义了语言的语法和语义,以及标准库的接口。这个标准只涉及到语言级别的特性,不涉及操作系统级别的特性

glibc除了包含常见的C库函数如printf、malloc 等之外,还包括一些Unix系统服务的封装,如线程、网络编程、进程管理、文件操作、动态链接等。

glibc是开源的,并且在GNU通用公共许可证(GPL)下发布。它是大部分Linux发行版的核心组件,也是GNU操作系统的一个重要部分。

1.1.1 GLIBC 与 POSIX

POSIX(Portable Operating System Interface)是一套定义了操作系统应该提供哪些接口给上层软件的标准,目的是尽可能地实现操作系统之间的兼容性。POSIX标准定义了一组系统调用、库函数和命令行工具,它包括了文件操作、进程管理、信号处理、线程、同步等许多方面。POSIX标准并没有指定任何特定的编程语言,但它的接口主要以C语言的形式给出,因此,POSIX和C语言有很紧密的联系。

glibc(GNU C Library)是一个实现了C标准库和POSIX标准的库。由于POSIX标准是操作系统接口的标准,因此,glibc中实现的许多函数其实就是对内核系统调用的封装。同时,glibc还提供了许多额外的特性和扩展,以支持更多的应用场景。

总的来说,glibc是POSIX标准在GNU/Linux系统中的一个主要实现,通过使用glibc,程序员可以编写出符合POSIX标准、具有良好移植性的程序。

GLIBC 官网(但是下载慢)
http://ftp.gnu.org/gnu/glibc/

(清华大学开源软件镜像站) 下载快
https://ftpmirror.gnu.org/libc/

1.1.2 GLIBC 常见接口

glibc 提供了许多常用的 C库函数,以下是其中的一些例子:

  • stdio.h:包含了基本的输入/输出函数,如printf、scanf、fopen、fclose等。
  • stdlib.h:包含了一些常用的通用功能,如malloc、free、exit、system等。
  • string.h:包含了字符串操作函数,如strcpy、strcmp、strcat、strlen等。
  • math.h:包含了数学函数,如pow、sqrt、sin、cos等。
  • time.h:包含了时间和日期函数,如time、clock、strftime等。
  • ctype.h:包含了字符操作函数,如isalpha、isdigit、tolower、toupper等。
  • errno.h:包含了错误码,如EINTR、ENOMEM、EINVAL等。
  • pthread.h:包含了线程相关的函数,如pthread_create、pthread_join等。
  • unistd.h:包含了对系统调用的封装,如read、write、fork、exec等。

以上只是 glibc 中的一小部分函数,实际上glibc提供了非常多的函数,涵盖了各种各样的功能。

1.2 lib文件常用命令

1.2.1 lib 文件之 ar 命令

ar -x 将库文件解压后可以删除某些.o文件,重新ar打包。
-d 从库中删除指定的文件
-t 将库的目录写至标准输出。如果指定文件名称

● 创建一个库


                
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

主公讲 ARM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值