




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
管理Glibc庫文件物聯(lián)網(wǎng)學院平震宇GlibcGlibc(GNUCLibrary)是GNU發(fā)布的C語言標準庫,即C語言運行庫。Glibc是GNU工具鏈的關(guān)鍵組件用Glibc
做為系統(tǒng)的C語言運行庫,是Linux演進的一個重要里程碑
Glibc主要包含以下內(nèi)容動態(tài)庫與靜態(tài)庫函數(shù)庫頭文件函數(shù)庫說明文件字集轉(zhuǎn)換模組與區(qū)域化資料庫時區(qū)資料庫Glibc主要包含以下內(nèi)容動態(tài)庫與靜態(tài)庫 /lib與/usr/lib函數(shù)庫頭文件
/usr/include函數(shù)庫說明文件
/usr/man
/usr/share/manGlibc主要包含以下內(nèi)容字集轉(zhuǎn)換模組與區(qū)域化資料庫/usr/lib/gconv/內(nèi)含大量的字集轉(zhuǎn)換模塊,各種字集及編碼方式與系統(tǒng)的基底字集之間的轉(zhuǎn)換
/usr/lib/locale,內(nèi)含以系統(tǒng)基底字集寫成的區(qū)域化資料庫(locale)
/usr/share/locale/,內(nèi)含可跨平臺使用的區(qū)域化資料,主要是各應(yīng)用程式的信息翻譯部分/usr/share/i18n/,其內(nèi)容是各區(qū)域化資料庫的原始碼,以及系統(tǒng)支援的內(nèi)碼對應(yīng)表等時區(qū)資料庫
/usr/share/zoneinfo目錄下包含世界各地時區(qū)與格林威治時間的轉(zhuǎn)換資料GlibcGlibc是Linux平臺C程序運行的基礎(chǔ),提供一組頭文件和一組庫文件,最基本、最常用的C標準庫函數(shù)和系統(tǒng)函數(shù)在libc.so庫文件中。數(shù)學計算的C程序
libm.so多線程的C程序
libpthread.so
GlibcGlibc的庫有靜態(tài)庫和動態(tài)庫兩個版本,都位于/lib和/usr/lib目錄中,靜態(tài)庫的文件以.a為后綴名,動態(tài)庫以.so為后綴名。
lddldd命令用于判斷一個程序必須使用的動態(tài)庫。參數(shù)說明:
--version打印ldd的版本號
-v--verbose打印所有信息,例如包括符號的版本信息
-d--data-relocs執(zhí)行符號重部署,并報告缺少的目標對象(只對ELF格式適用)
-r--function-relocs對目標對象和函數(shù)執(zhí)行重新部署,并報告缺少的目標對象和函數(shù)(只對ELF格式適用)
ldconfigldconfig是一個動態(tài)鏈接庫管理命令,其目的為了讓動態(tài)鏈接庫為系統(tǒng)所共享。ldconfig的主要用途:默認搜尋/lilb和/usr/lib,以及配置文件/etc/ld.so.conf內(nèi)所列的目錄下的庫文件。搜索出可共享的動態(tài)鏈接庫,庫文件的格式為:lib***.so.**,進而創(chuàng)建出動態(tài)裝入程序(ld.so)所需的連接和緩存文件。緩存文件默認為/etc/ld.so.cache,該文件保存已排好序的動態(tài)鏈接庫名字列表。ldconfig通常在系統(tǒng)啟動時運行,而當用戶安裝了一個新的動態(tài)鏈接庫時,就需要手工運行這個命令。
GCC編譯器動態(tài)庫的搜索路徑搜索的先后順序
編譯目標代碼時指定的動態(tài)庫搜索路徑;環(huán)境變量
LD_LIBRARY_PATH
指定的動態(tài)庫搜索路徑;配置文件
/etc/ld.so.conf
中指定的動態(tài)庫搜索路徑;默認的動態(tài)庫搜索路徑
/lib
;默認的動態(tài)庫搜索路徑
/usr/lib
文件I/O編程物聯(lián)網(wǎng)學院平震宇文件描述符文件描述符是一個非負的整數(shù),它是一個索引值,并指向在內(nèi)核中每個進程打開文件的記錄表。當打開一個現(xiàn)存文件或創(chuàng)建一個新文件時,內(nèi)核就向進程返回一個文件描述符;當需要讀寫文件時,也需要把文件描述符作為參數(shù)傳遞給相應(yīng)的函數(shù)。打開文件Flag標記O_RDONLY就表示以只讀方式打開O_WRONLY表示以只寫方式打開O_RDWR表示以可讀可寫方式打開當打開已經(jīng)存在并且內(nèi)部有內(nèi)容的文件時O_APPEND標志:以添加方式打開文件,在打開文件的同時,文件指針指向文件的末尾,即將寫入的數(shù)據(jù)添加到文件的末尾O_TRUNC標志:若文件已經(jīng)存在,那么會刪除文件中的全部原有數(shù)據(jù),并且設(shè)置文件大小為0文件讀寫控制文件讀寫位置lseek參數(shù)fd:已經(jīng)打開的文件描述符。offset:偏移量,每一讀寫操作所需要移動的距離,單位是字節(jié),可正可負(向前移,向后移)。whence:當前位置的基點。SEEK_SET:當前位置為文件的開頭,新位置為偏移量的大小SEEK_CUR:當前位置為文件指針的位置,新位置為當前位置加上偏移量SEEK_END:當前位置為文件的結(jié)尾,新位置為文件的大小lseeklseek文件開始文件結(jié)束fcntl函數(shù)fcntl參數(shù)fd:已經(jīng)打開的文件描述符。cmd
:不同的命令struct
flock
*lock:設(shè)置記錄鎖的具體狀態(tài)
fcntl參數(shù)F_DUPFD與dup函數(shù)功能一樣,復(fù)制由fd指向的文件描述符,調(diào)用成功后返回新的文件描述符,與舊的文件描述符共同指向同一個文件。F_GETFD讀取文件描述符close-on-exec標志F_SETFD將文件描述符close-on-exec標志設(shè)置為第三個參數(shù)arg的最后一位F_GETFL獲取文件打開方式的標志,標志值含義與open調(diào)用一致F_SETF設(shè)置文件打開方式為arg指定方式fcntl參數(shù)F_SETLK此時fcntl函數(shù)用來設(shè)置或釋放鎖。當short_l_type為F_RDLCK為讀鎖,F(xiàn)_WDLCK為寫鎖,F(xiàn)_UNLCK為解鎖。如果鎖被其他進程占用,則返回-1;這種情況設(shè)的鎖遇到鎖被其他進程占用時,會立刻停止進程。F_SETLKW此時也是給文件上鎖,不同于F_SETLK的是,該上鎖是阻塞方式。當希望設(shè)置的鎖因為其他鎖而被阻止設(shè)置時,該命令會等待相沖突的鎖被釋放。F_GETLK第3個參數(shù)lock指向一個希望設(shè)置的鎖的屬性結(jié)構(gòu),如果鎖能被設(shè)置,該命令并不真的設(shè)置鎖,而是只修改lock的l_type為F_UNLCK,然后返回該結(jié)構(gòu)體。如果存在一個或多個鎖與希望設(shè)置的鎖相互沖突,則fcntl返回其中的一個鎖的flock結(jié)構(gòu)。structflock標準I/O編程物聯(lián)網(wǎng)學院平震宇文件I/O與標準I/O文件I/O:文件I/O稱之為不帶緩存的IO(unbufferedI/O)。標準I/O:基于流緩沖的,提供了三種類型的緩存。全緩存:當填滿標準I/O緩存后才進行實際的I/O操作。
行緩存:當輸入或輸出中遇到新行符時,標準I/O庫執(zhí)行I/O操作。
不帶緩存:標準出錯stderr。文件I/O與標準I/O
標準I/O文件I/O打開fopen,freopen,fdopenopen關(guān)閉fcloseclose讀getc,fgetc,getchar
fgets,gets
freadread寫putc,fputc,putchar
fputs,puts,
fwritewrite打開文件Mode取值標志名說
明r或rb打開只讀文件,該文件必須存在r+或r+b打開可讀寫的文件,該文件必須存在W或wb打開只寫文件。若文件不存在則建立該文件w+或w+b打開可讀寫文件。若文件不存在則建立該文件a或ab以附加的方式打開只寫文件。a+或a+b以附加方式打開可讀寫的文件。文件讀寫文件狀態(tài)structstat網(wǎng)絡(luò)通訊編程物聯(lián)網(wǎng)學院平震宇TCP/IP協(xié)議模型TCP/IP協(xié)議模型TCP/IP協(xié)議模型Socket套接字
socket起源于Unix,而Unix/Linux基本哲學之一就是“一切皆文件”,都可以用“打開open–>讀寫write/read–>關(guān)閉close”模式來操作。socket就是該模式的一個實現(xiàn),socket即是一種特殊的文件,一些socket函數(shù)就是對其進行的操作(讀/寫IO、打開、關(guān)閉).Socket套接字
流式套接字socket(SOCK_STREAM)數(shù)據(jù)報套接字socket(SOCK_DGRAM)原始套接字socket客戶/服務(wù)模式socket()建立一個socket連接bind()用于將本地IP地址綁定到端口號sockaddr獲取本地IP地址listen()讓Socket偵聽傳入的連接嘗試,并指定偵聽隊列容量accept()接收連接并返回一個新的socketconnect()初始化與另一個Socket的連接send()和recv()發(fā)送和接收數(shù)據(jù)網(wǎng)絡(luò)編程實例當用戶從客戶端輸入“HelloServer”傳送到服務(wù)器端,服務(wù)器端發(fā)送“Hello,Client”到客戶端;如果從客戶端輸入“HelloABC”,傳送到服務(wù)器端,服務(wù)器端發(fā)送“Helloabc”到客戶端;如果從客戶端輸入“exit”,傳送到服務(wù)器端,服務(wù)器端程序退出,不向客戶端送回任何信息。網(wǎng)絡(luò)編程實例串口通訊編程物聯(lián)網(wǎng)學院平震宇并行通信與串行通信并行通信:是指利用多條數(shù)據(jù)傳輸線將數(shù)據(jù)的各位同時傳送優(yōu)點:傳輸速度快缺點:數(shù)據(jù)有多少位就需要多少根傳輸線,所以在位數(shù)多、傳輸距離遠時,通信線路復(fù)雜,成本高。串行通信:是指利用一條傳輸線將數(shù)據(jù)一位位地順序傳送。優(yōu)點:這種通信方式的數(shù)據(jù)傳輸只需一、兩根傳輸線,通信線路簡單,成本低,特別適用于遠程通信缺點:傳輸速度較慢。多用于傳輸距離長、低速度的場合。串口簡介
RS-232-C:也稱標準串口,是目前最常用的一種串行通訊接口RS-422:為改進RS-232通信距離短、速率低的缺點RS-485:為擴展應(yīng)用范圍,EIA又于1983年在RS-422基礎(chǔ)上制定了RS-485標準,增加了多點、雙向通信能力USB:通用串行總線,用于規(guī)范電腦與外部設(shè)備的連接和通訊。是應(yīng)用在PC領(lǐng)域的接口技術(shù)。RJ-45:RJ-45接口,適用于由雙絞線構(gòu)建的網(wǎng)絡(luò),以太網(wǎng)集線器都會提供這種端口串行接口簡稱串口,也稱串行通信接口(通常指COM接口),是采用串行通信方式的擴展接口。9芯D型插座(DB9)針腳名稱全名3TDTransmitData2RDReceiveData7RTSRequestToSend8CTSClearToSend6DSRDataSetReady4DTRDataTerminalReady1CDDataCarrierDetect9RIRingIndicator5-SignalGround串口文件在linux中,針對所有的周邊設(shè)備都提供了設(shè)備文件供用戶訪問,所以如果要訪問串口,只要打開相關(guān)的設(shè)備文件即可。在Linux下串口文件是位于/dev下的COM1串口一為/dev/ttyS0COM2串口二為/dev/ttyS1串口設(shè)置在使用串口之前必須設(shè)置相關(guān)配置,包括:波特率、數(shù)據(jù)位、校驗位、停止位等c_cflag常量名稱
設(shè)置波特率設(shè)置數(shù)據(jù)位設(shè)置奇偶校驗位設(shè)置停止位
激活配置
打開串口fd
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 細胞治療產(chǎn)品審批流程中臨床試驗法規(guī)解讀與風險防范報告
- 2025年醫(yī)療器械臨床試驗質(zhì)量管理規(guī)范化與臨床試驗項目設(shè)計優(yōu)化報告
- 教育行業(yè)投資并購市場報告:2025年職業(yè)教育并購案例研究
- 文化與娛樂:網(wǎng)絡(luò)文學IP影視化趨勢分析報告
- 醫(yī)療器械臨床試驗質(zhì)量管理2025年法規(guī)實施策略報告
- 2025年文化產(chǎn)業(yè)園產(chǎn)業(yè)集聚與服務(wù)優(yōu)化:產(chǎn)業(yè)轉(zhuǎn)型升級路徑與挑戰(zhàn)深度分析報告
- 2025-2030中國食品飲料微藻市場銷售動態(tài)與營銷前景預(yù)測報告
- 2025-2030中國酮類胡蘿卜素角黃素行業(yè)供需態(tài)勢與應(yīng)用趨勢預(yù)測報告
- 2025-2030中國貨物控制帶行業(yè)運行動態(tài)與投資趨勢預(yù)測報告
- 切紙機安全操作規(guī)范考核試卷
- 子癇的搶救和護理
- 2025年高考政治一輪復(fù)習:統(tǒng)編版必修3《政治與法治》必背考點知識講義
- 民政統(tǒng)計信息管理系統(tǒng)培訓手冊街鄉(xiāng)鎮(zhèn)
- 中職英語新課標詞匯表
- 2024秋期國家開放大學《國際法》一平臺在線形考(形考任務(wù)1至5)試題及答案
- 天翼云從業(yè)者認證考試題庫及答案
- T-CEC 153-2018并網(wǎng)型微電網(wǎng)的負荷管理技術(shù)導則
- 《食品經(jīng)營許可證》申請書(范本)
- 2024至2030年中國博物館行業(yè)現(xiàn)狀調(diào)研及未來發(fā)展規(guī)劃分析報告
- 廣東省揭陽市2024年小升初語文真題試卷及答案
- 化工過程安全管理導則培訓
評論
0/150
提交評論