1. 程式人生 > >libc、glibc和glib的關係

libc、glibc和glib的關係

轉自:

【glibc 和 libc】

glibc 和 libc 都是 Linux 下的 C 函式庫。
libc 是 Linux 下的 ANSI C 函式庫;glibc 是 Linux 下的 GUN C 函式庫。

ANSI C 和 GNU C 有什麼區別呢?

       ANSI C 函式庫是基本的 C 語言函式庫,包含了 C 語言最基本的庫函式。這個庫可以根據標頭檔案劃分為 15 個部分,其中包括:

  1. <ctype.h>:包含用來測試某個特徵字元的函式的函式原型,以及用來轉換大小寫字母的函式原型;
  2. <errno.h>:定義用來報告錯誤條件的巨集;
  3. <float.h>:包含系統的浮點數大小限制;
  4. <math.h>:包含數學庫函式的函式原型;
  5. <stddef.h>:包含執行某些計算 C 所用的常見的函式定義;
  6. <stdio.h>:包含標準輸入輸出庫函式的函式原型,以及他們所用的資訊;
  7. <stdlib.h>:包含數字轉換到文字,以及文字轉換到數字的函式原型,還有記憶體分配、隨機數字以及其他實用函式的函式原型;
  8. <string.h>:包含字串處理函式的函式原型;
  9. <time.h>:包含時間和日期操作的函式原型和型別;
  10. <stdarg.h>:包含函式原型和巨集,用於處理未知數值和型別的函式的引數列表;
  11. <signal.h>:包含函式原型和巨集,用於處理程式執行期間可能出現的各種條件;
  12. <setjmp.h>:包含可以繞過一般函式呼叫並返回序列的函式的原型,即非區域性跳轉;
  13. <locale.h>:包含函式原型和其他資訊,使程式可以針對所執行的地區進行修改。
  14. 地區的表示方法可以使計算機系統處理不同的資料表達約定,如全世界的日期、時間、美元數和大數字;
  15. <assert.h>:包含巨集和資訊,用於進行診斷,幫助程式除錯。
上述庫函式在其各種支援 C 語言的 IDE 中都是有的。

       GNU C 函式庫是一種類似於第三方外掛的東西。由於 Linux 是用 C 語言寫的,所以 Linux 的一些操作是用 C 語言實現的,因此,GUN 組織開發了一個 C 語言的庫
以便讓我們更好的利用 C 語言開發基於 Linux 作業系統的程式。不過現在的不同的 Linux 的發行版本對這兩個函式庫有不同的處理方法,有的可能已經整合在同一個庫裡了。

glibc是linux下面c標準庫的實現,即GNU C Library。glibc本身是GNU旗下的C標準庫,後來逐漸成為了Linux的標準c庫,而Linux下原來的標準c庫Linux libc逐漸不再被維護。Linux下面的標準c庫不僅有這一個,如uclibc、klibc,以及上面被提到的Linux libc,但是glibc無疑是用得最多的。glibc在/lib目錄下的.so檔案為libc.so.6。

檢視當前系統的 glibc 版本的兩種方法:
1.
01 [[email protected] ~]# /lib/libc.so.6
02 GNU C Library stable release version 2.5, by Roland McGrath et al.
03 Copyright (C) 2006 Free Software Foundation, Inc.
04 This is free software; see the source for copying conditions.
05 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
06 PARTICULAR PURPOSE.
07 Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-52).
08 Compiled on a Linux 2.6.9 system on 2013-01-08.
09 Available extensions:
10 The C stubs add-on version 2.1.2.
11 crypt add-on version 2.1 by Michael Glad and others
12 GNU Libidn by Simon Josefsson
13

相關推薦

c標準基本庫函式:libcglibcglib關係

【glibc 和 libc】 glibc 和 libc 都是 Linux 下的 C 函式庫。 libc 是 Linux 下的 ANSI C 函式庫;glibc 是 Linux 下的 GUN C 函式庫。 ANSI C 和 GNU C 有什麼區別呢?

libcglibcglib關係

轉自: 【glibc 和 libc】 glibc 和 libc 都是 Linux 下的 C 函式庫。 libc 是 Linux 下的 ANSI C 函式庫;glibc 是 Linux 下的 GUN C 函式庫。 ANSI C 和 GNU C 有

32位與64位 CPU編譯器作業系統應用程式armX86關係

一:arm和X86的區別 arm:對應精簡指令集 X86:對應複雜指令集 arm上的和X86上編譯過的的東西是不能相互使用的,因為指令集不一樣嘛。指令集可以通俗的理解為,溝通語言。arm和X86之間東西不能直接用,類似於一個美國人和一箇中國人各自只說自己的語言,那麼這兩個人是沒法溝通的。

web伺服器Apache tomcat 關係的理解

以一次JSP請求響應為例,講解伺服器,Apache、Tomcat之間的關係。 帶著這樣一個概念去看:Apache與Apache Tomcat(簡稱Tomcat)都是可以獨立執行的伺服器。你平時見到的apache-tomcat-7.0.72實際上只是Tomcat伺服器。此處整

newmallocalloctor關係

今天看C++primer,看到了動態記憶體管理類,alloctor,也涉及到free,對此有些不清楚,故收集整理一下,理清知識點。 http://blog.sina.com.cn/s/blog_9054a0360101289p.html 首先來說new和malloc。 n

ThreadHandlerHandlerThread關係何在?

前言 前幾天看到一道面試題:Thread、Handler和HandlerThread有什麼區別?,這個題目有點意思,對於很多人來說,可能對Thread和Handler很熟悉,主要涉及到Android的訊息機制(Handler、Message、Looper、Me

建構函式例項原型的概念關係

每個函式都屬於物件,都會有一個屬性叫prototype。這個屬性指向一個物件,我們把他叫做當前函式的原型物件。原型物件下面有個屬性叫constructor.這個屬性指向當前函式。函式又分為普通函式和建構函式。這裡我們說一下建構函式。定義一個函式 : function Person(x,

IP地址(ABCDE類)網路地址主機地址子網掩碼與閘道器之間的關係

“IP地址”就相當於“電話號碼”,而Internet中的路由器,就相當於電信局的“程控式交換機”。 點分十進位制數表示的IPv4地址被分為幾類,以適應大型、中型、小型的網路。這些類的不同之處在於不同類別的網路地址所佔位數。 **IP地址是一個32位的二進位制數,通常被分

CGIfastcgiWSGIuwsgiuWSGI的關係

1.CGI(Common Gateway Inteface) 通用閘道器介面,是外部應用程式與Web伺服器之間的介面標準,用來規定一個程式該如何與web伺服器程式之間通訊 從而可以讓這個程式跑在web伺服器上。 2.fastcgi fastcgi是Web伺服器(ex:nginx)和語言直

PCASVD協方差矩陣的關係

1、PCA : Principle Component Analysis 主成分分析 2、SVD : Singular Value Decomposition 奇異值分解 3、PCA在很多場合都有涉及,在資料紛繁難以選取時,一般都會採用PCA降維處理,值選取幾個主要的方向資料來進行分析。 比如,可將影象

關於js中的nullundefinedtruefalse的關係

這個問題,很有意思,特別神奇 -如果你用null來判斷null==false以及null==true,你會發現返回的結果都是false,這個結果 是不是讓你覺得很奇怪。 -然後你可以再試試undefined==false以及undefined==true,同樣的,你會發現,返回的結果 同

最牛乾貨 :解讀產品運營資料三個基友關係

曾經被問到產品和運營的關係。   網路上有很多答案:比如產品經理負責把產品生下來,運營負責把它養大;比如共穿一條褲子的好基友,等等。   在我看來,兩者是不分割彼此的。可能初級的產品策劃和產品運營(包括其他運營)因為崗位工作內容的不同,具有挺大的差別。隨著兩者段位

CGIFastCGIPHP-FPM區別關係詳解(包含圖解)

CGI、FastCGI和PHP-FPM區別和關係詳解(包含圖解) 轉載至:https://www.awaimai.com/371.html 在搭建 LAMP/LNMP 伺服器時,會經常遇到 PHP-FPM、FastCGI和CGI 這幾個概念。如果對它們一知半解,很難搭建出高效能的伺服器。

Qt QStringQByteArraychar* 三者之間的關係

Qt QString、QByteArray和char* 三者之間的關係 QString和QByteArray之間的互轉 QString是Qt的字串類,QByteArray是byte的陣列 1 QString轉QByteArray QString str=QString("hello world!"

域名瀏覽器HSTSHTTPS的關係

1.瀏覽器的轉換: 大家可以找一個瀏覽器試驗一下,我用的是谷歌的chrome瀏覽器,當你在位址列輸入 baidu.com,然後你再按回車,你發現了什麼? 對,位址列已經把地址自動轉換為  https://www.baidu.com了。這種第一種可能是伺服器的重定向導致的,第二

【網路程式設計】TCP網路程式設計中connect()listen()accept()三者之間的關係

舉個簡單的例子(以下程式碼只是示範性的,用於說明不同套接字的作用,實際的函式會需要更多的引數): /* 建立用於監聽和接受客戶端連線請求的套接字 */ server_sock = socket(); /* 繫結監聽的IP地址和埠 */ bind(server_sock); /* 開始監聽 */ li

WSSSSL https 之間的關係

SSL SSL(Secure Socket Layer,安全套接層) 簡單來說是一種加密技術, 通過它, 我們可以在通訊的雙方上建立一個安全的通訊鏈路, 因此資料互動的雙方可以安全地通訊, 而不需要擔心資料被竊取. 關於 SSL 的深入知識, 可以看這篇文章: SSL/TL

dockerfirewalldiptables之間的關係

要注意docker命令中使用 -p 暴露埠時,實現需要依賴iptables。CentOS 7預設使用的是firewalld,但是是否需要關閉firewalld並啟動iptables呢? 參考多篇博文,答案應該是不不需要的。 Note. You need to disti

CGIFastCGIPHP-FPM的關係

在搭建 LAMP/LNMP 伺服器時,會經常遇到 PHP-FPM、FastCGI和CGI 這幾個概念。如果對它們一知半解,很難搭建出高效能的伺服器。接下來我們就以圖形方式,解釋這些概念之間的關係。 基礎 在整個網站架構中,Web Server(如Apache)只是內容

JS中建構函式與普通函式的區別及JS建構函式原型例項的關係

JS中建構函式與普通函式的區別: https://www.cnblogs.com/cindy79/p/7245566.html JS建構函式、原型和例項的關係: https://blog.csdn.net/u012443286/article/details/78823955 Java