glibc版本查看_Linux开发必知内容整理 | libc、glibc和glib的关系

在进行Linux开发不可避免的要调用一些系统的API,我们经常开到的概念有诸如glibc、libc和glib等等。那么这些系统库之前的关系是什么样的呢?下面小编带大家了解一下这些库之前的共同点和差异,希望对以后的编程开发提供帮助。

5262e1bdb0b11dad97ccc03818fa8ecb.png

glibc 和 libc的关系

glibc 和 libc 都是 Linux 下的C函数库。libc是Linux下的ANSI C函数库;glibc 是 Linux 下的 GUN C函数库。

那么ANSI C和GNU C有什么区别呢?

ANSI C函数库是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据头文件划分为 15 个部分,其中包括:

  1. :包含用来测试某个特征字符的函数的函数原型,以及用来转换大小写字母的函数原型;
  2. :定义用来报告错误条件的宏;
  3. :包含系统的浮点数大小限制;
  4. :包含数学库函数的函数原型;
  5. :包含执行某些计算 C 所用的常见的函数定义;
  6. :包含标准输入输出库函数的函数原型,以及他们所用的信息;
  7. :包含数字转换到文本,以及文本转换到数字的函数原型,还有内存分配、随机数字以及其他实用函数的函数原型;
  8. :包含字符串处理函数的函数原型;
  9. :包含时间和日期操作的函数原型和类型;
  10. :包含函数原型和宏,用于处理未知数值和类型的函数的参数列表;
  11. :包含函数原型和宏,用于处理程序执行期间可能出现的各种条件;
  12. :包含可以绕过一般函数调用并返回序列的函数的原型,即非局部跳转;
  13. :包含函数原型和其他信息,使程序可以针对所运行的地区进行修改。
  14. 地区的表示方法可以使计算机系统处理不同的数据表达约定,如全世界的日期、时间、美元数和大数字;
  15. :包含宏和信息,用于进行诊断,帮助程序调试。

GNU C函数库是一种类似于第三方插件的东西。由于 Linux 是用C语言写的,所以Linux的一些操作是用C语言实现的。因此,GUN 组织开发了一个 C 语言的库以便让我们更好的利用 C 语言开发基于 Linux 操作系统的程序。不过现在的不同的 Linux 的发行版本对这两个函数库有不同的处理方法,有的可能已经集成在同一个库里了。

查看当前系统的 glibc 版本的方法:

通过执行libc.so.6

切换到libc.so.6所在的目录,执行如下命令。

[root@itworld123]# ./libc.so.6GNU C Library (GNU libc) stable release version 2.28.Copyright (C) 2018 Free Software Foundation, Inc.This is free software; see the source for copying conditions.There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE.Compiled by GNU CC version 8.2.1 20180905 (Red Hat 8.2.1-3).libc ABIs: UNIQUE IFUNC ABSOLUTEFor bug reporting instructions, please see:.

执行ldd命令

[root@itworld123]# ldd --versionldd (GNU libc) 2.12Copyright (C) 2010 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.由 Roland McGrath 和 Ulrich Drepper 编写。

glibc 和 glib的关系

错误观点:GLib前面有个"g",所以认为glib是GNU的东东;同时认为glibc是GLib 的一个子集。其实,glib和glibc 基本上没有太大联系,可能唯一的共同点就是,其都是C编程需要调用的库而已。

GLib是Gtk+库和Gnome的基础。GLib是一个跨平台的、用C语言编写的五个底层库的集合,为GNOME所使用。其支持的平台包括Linux、Unix和Windows 等。GLib为许多标准的、常用的C语言结构提供了相应的替代物。GLib中包含了近二十种实用功能,从简单的字符处理到初学者很难理解的XML解析功能。

官方说明

关于Glib的官方说明:

GLib is a general-purpose utility library, which provides many useful data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. It works on many UNIX-like platforms, Windows, OS/2 and BeOS. GLib is released under the GNU Library General Public License (GNU LGPL).

The general policy of GLib is that all functions are invisibly threadsafe with the exception of data structure manipulation functions, where, if you have two threads manipulating the same data structure, they must use a lock to synchronize their operation.

GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.

关于Glibc的官方说明

Overview:

Any Unix-like operating system needs a C library: the library which defines the ``system calls'' and other basic facilities such as open, malloc, printf, exit...

The GNU C Library is used as the C library in the GNU systems and most systems with the Linux kernel.

Project Goals:

The GNU C Library is primarily designed to be a portable and high performance C library. It follows all relevant standards including ISO C11 and POSIX.1-2008. It is also internationalized and has one of the most complete internationalization interfaces known.

History:

The history of Unix and various standards determine much of the interface of the C library. In general the GNU C Library supports the ISO C and POSIX standards. We also try to support the features of popular Unix variants (including BSD and System V) when those do not conflict with the standards. Different compatibility modes (selectable when you compile an application) allow the peaceful coexistence of compatibility support for different varieties of Unix.

其他说法

libc 实际上是一个泛指。凡是符合实现了C标准规定的内容,都是一种 libc 。

glibc是GNU组织对libc的一种实现。它是unix/linux的根基之一。

微软也有自己的libc实现,叫msvcrt 。

嵌入式行业里还常用uClibc ,是一个迷你版的libc 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux ls常见的命令选项【转载】

-a all ,查看目录下的所有文件,包括隐藏文件 -l 长列表显示 -h human 以人性化的方式显示出来 -d 只列出目录名,不列出其他内容 (比如在查询文件时加上-d 就只会显示当前文件的信息,不会显示文件内的信息内容…

威纶触摸屏使用说明书_MODBUS通信之触摸屏与变频器通信知识分享(一)

今天跟大家分享一个有关于MODBUS通信的知识,使用触摸屏不经过PLC,直接对变频器或是仪表进行监控:这里面我们选择用西门子的SMART 700IE的触摸屏及台达VFD_M的变频器为例给大家进行介绍。需要完成这样的一个控制,需要掌握以下几个知…

反函数连续性定理 反三角_高中数学:三角函数诱导公式及诱导公式口诀

定义、定理、公式是学好数学的基础,一些常见的题型的解答方法和技巧也需要牢记于心,今天给大家介绍19种数学记忆方法,会让你学习数学变得轻松!1.口诀记忆法高中数学中,有些方法如果能编成顺口溜或歌诀,可以…

Linux系统常用的基本命令【转载CSDN象在舞】

本文主要介绍Linux中常用的基本命令,简单实用,以供大家参考,如有错误,欢迎大家指出。下面开始介绍。 一、查看哪个用户登录的系统 1、users命令 2、whoami命令或者who am i命令 二、查看哪些用户在系统上工作 1、who命令 2、w命…

swiper5 点击图换下一张_电商小牛教你如何选择点击率超同行三倍的爆品主图!...

当我们已经分析好了消费者的购物行为习惯,也把主图的设计原则做好了,接下来我们还需要做的就是如何合理布局主图。很多商家主图位置可能一半都没用,甚至很多商家就用了一张图位置,这是不可取的。现在很多消费者是直接看完主图就下…

iphone屏幕突然变暗_iPhone 玩游戏时屏幕突然变暗,来看看是什么原因?

有没有小伙伴的苹果手机遇到过这种情况,手机打着王者好好的屏幕突然变暗了,而且屏幕亮度调到最大也还是没有亮起来,这到底是怎么回事?后来我仔细研究了一下才知道这其中的原因,朋友们也来看看。一般手机屏幕突然变暗&a…

Linux的实际操作:Linux的分区

原理介绍: (1)对于Linux来说,无论有多少个分区,分配给哪一个目录使用,归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中的每一个分区都是用来组成整个文件系统的一部分 …

python 报错继续执行_Python报错不要慌,这三个关键词帮你解决问题!

本文转载自公众号“读芯术”(ID:AI_Discovery)。写代码必然会出现错误,而错误处理可以针对这些错误提前做好准备。通常出现错误时,脚本会停止运行,而有了错误处理,脚本就可以继续运行。为此,我们需要了解下…

vscode如何连接新设备_台州要用“超级平台”连接300万台工业设备,成为全省新示范...

全省工业互联网平台推广会上台州工业互联网平台发布、7个工业互联网项目签约——“企业间一座座孤立的烟囱,通过数据‘联姻’打破了信息孤岛。”5月22日,在路桥召开的全省工业互联网平台建设推广会上,专家们这样形容正在发生的变革。工业互联…

Linux的实际操作:给Linux添加一块新硬盘

因为某种原因,Linux系统的一块硬盘已经用完了,现在需要新增加一块硬盘挂载到Linux文件系统上 案例:增加一块 2G的硬盘 sdb1,挂载到文件系统中新增的/home/newdisk文件目录下,后续通过newdisk就可以操控sdb1硬盘 如何增…

归并排序 java_马士兵说之归并排序

大家对于排序应该是挺熟悉的吧,马士兵老师特意为排序出了一波视频,当然文章是转自博客园的,马士兵老师的视频观看请点击下方的了解更多概要本章介绍排序算法中的归并排序。内容包括:1. 归并排序介绍2. 归并排序图文说明3. 归并排序…

LeetCode //C - 1456. Maximum Number of Vowels in a Substring of Given Length

1456. Maximum Number of Vowels in a Substring of Given Length Given a string s and an integer k, return the maximum number of vowel letters in any substring of s with length k. Vowel letters in English are ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’. Example…

tft lcd驱动参数详解_LED拼接屏和LCD拼接屏的区别

LED屏幕和LCD屏幕是每个人都经常听到的两个屏幕,但是每个人之间的区别尚不清楚。不认识的人可能会认为两者之间没有区别。让我们谈谈LED和LCD屏幕之间的区别:首先,什么是LED? LED是发光二极管,LED拼接屏是由发光二极管…

求有向图的简单路径_2020福建农信社招聘-关键路径

2020福建农信社公告暂未发布,预计于2020年1月发布公告,历年福建农信社笔试以纸考形式进行,同时笔试内容包含经济、金融、计算机、法律、财会、公基、三农、农信文化、普惠金融、市场营销、时政等部分,相对而言考试知识点较多&…

Linux中的【.】【./】【/】代表的含义【转载】

/是指根目录,就和Windows的我的电脑那个位置差不多。 ./是指用户所在的当前目录。 如下所示: [root~]# cd /etc [root etc]# pwd /etc [rootetc]# cd / [root /]# pwd / [root /]# cd /etc [rootetc]# cd ./ [rootetc]# pwd /etc [root etc]# 下面是linu…

cad插件_CAD插件自动编号安装教程

插件下载[名称]:CAD插件-自动编号[大小]:3.67MB [语言]:简体中文 [安装环境]:Win7/Win8/Win10[支持版本]:CAD2004-2020[32/64位下载链接]:pan.baidu.com/s/1XACgkA4OTrsk08QdGQB9RQ[提取码]: 8327安装中有…

python中递归函数基例_智慧树python答案

智慧树python答案s "abcd1234",find()函数可以在字符串中搜索子串,s.find("cd")返回的结果是__________。单try语句(只使用一个try)能够捕捉多种类型的错误"abc"的长度是3,"老师好"的长度是多少&am…

Nginx的初步安装

目录 Nginx的初步安装 1.使用远程连接工具连接Linux操作系统 2.因为是开源的,所以可以去官网直接下载 3.安装Nginx前需要安装一些相关的依赖包 第一步:(用第一种方式:wget的方式)安装pcre 第二步:安装…

苹果手机电越充越少怎么回事_手机充着电,电量缺越来越少是怎么回事?

手机充电状态下越充越少一般由以下几个方面原因造成:手机系统故障,因此导致电池电量显示出现问题。充电器出现故障。充电器和手机接触不良。手机电池出现问题。手机本身存在质量问题。解决方法:手机系统故障,因此导致电池电量显示…

springboot中文语音识别_【记录】语音识别软件包、代码示例、数据集汇集

语音识别工具(1)librosa:python,视频与音乐分析链接:https://github.com/librosa/librosa(2)ASRT_SpeechRecognition:python,基于深度学习的中文语音识别系统链接&#x…