日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)Linux環(huán)境編程:從應(yīng)用到內(nèi)核

Linux環(huán)境編程:從應(yīng)用到內(nèi)核

Linux環(huán)境編程:從應(yīng)用到內(nèi)核

定 價(jià):¥99.00

作 者: 高峰
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: LINUX 操作系統(tǒng)/系統(tǒng)開發(fā) 計(jì)算機(jī)/網(wǎng)絡(luò)

ISBN: 9787111536109 出版時間: 2016-06-01 包裝: 平裝
開本: 16開 頁數(shù): 596 字?jǐn)?shù):  

內(nèi)容簡介

  本書將按照APUE的脈絡(luò),以筆者多年的Linux開發(fā)經(jīng)驗(yàn)為基礎(chǔ),從以下四個方面深入講解Linux環(huán)境編程:接口的功能使用介紹、接口缺陷分析、接口的內(nèi)部實(shí)現(xiàn)機(jī)制、接口的錯誤碼分析。本書將從一個全新的角度帶領(lǐng)讀者重新進(jìn)入Linux環(huán)境編程,從應(yīng)用出發(fā),深入內(nèi)核源碼,研究Linux各接口的工作機(jī)制和原理。讓讀者不僅知其然,還知其所以然。

作者簡介

暫缺《Linux環(huán)境編程:從應(yīng)用到內(nèi)核》作者簡介

圖書目錄

目  錄 Contents前 言第0章 基礎(chǔ)知識10.1 一個Linux程序的誕生記10.2 程序的構(gòu)成20.3 程序是如何“跑”的40.4 背景概念介紹50.4.1 系統(tǒng)調(diào)用50.4.2 C庫函數(shù)60.4.3 線程安全70.4.4 原子性90.4.5 可重入函數(shù)90.4.6 阻塞與非阻塞110.4.7 同步與非同步11第1章 文件I/O121.1 Linux中的文件121.1.1 文件、文件描述符和文件表121.1.2 內(nèi)核文件表的實(shí)現(xiàn)131.2 打開文件141.2.1 open介紹141.2.2 更多選項(xiàng)151.2.3 open源碼跟蹤161.2.4 如何選擇文件描述符171.2.5 文件描述符fd與文件管理結(jié)構(gòu)file181.3 creat簡介191.4 關(guān)閉文件191.4.1 close介紹191.4.2 close源碼跟蹤191.4.3 自定義files_operations211.4.4 遺忘c(diǎn)lose造成的問題221.4.5 如何查找文件資源泄漏251.5 文件偏移261.5.1 lseek簡介261.5.2 小心lseek的返回值261.5.3 lseek源碼分析271.6 讀取文件291.6.1 read源碼跟蹤291.6.2 部分讀取301.7 寫入文件311.7.1 write源碼跟蹤311.7.2 追加寫的實(shí)現(xiàn)331.8 文件的原子讀寫331.9 文件描述符的復(fù)制341.10 文件數(shù)據(jù)的同步381.11 文件的元數(shù)據(jù)411.11.1 獲取文件的元數(shù)據(jù)411.11.2 內(nèi)核如何維護(hù)文件的元數(shù)據(jù)421.11.3 權(quán)限位解析431.12 文件截?cái)?51.12.1 truncate與ftruncate的簡單介紹451.12.2 文件截?cái)嗟膬?nèi)核實(shí)現(xiàn)451.12.3 為什么需要文件截?cái)?8第2章 標(biāo)準(zhǔn)I/O庫502.1 stdin、stdout和stderr502.2 I/O緩存引出的趣題512.3 fopen和open標(biāo)志位對比522.4 fdopen與fileno552.5 同時讀寫的痛苦562.6 ferror的返回值572.7 clearerr的用途572.8 小心fgetc和getc602.9 注意fread和fwrite的返回值602.10 創(chuàng)建臨時文件61第3章 進(jìn)程環(huán)境663.1 main是C程序的開始嗎663.2 “活雷鋒”exit703.3 atexit介紹753.3.1 使用atexit753.3.2 atexit的局限性763.3.3 atexit的實(shí)現(xiàn)機(jī)制773.4 小心使用環(huán)境變量783.5 使用動態(tài)庫803.5.1 動態(tài)庫與靜態(tài)庫803.5.2 編譯生成和使用動態(tài)庫803.5.3 程序的“平滑無縫”升級823.6 避免內(nèi)存問題843.6.1 尷尬的realloc843.6.2 如何防止內(nèi)存越界853.6.3 如何定位內(nèi)存問題863.7 “長跳轉(zhuǎn)”longjmp903.7.1 setjmp與longjmp的使用903.7.2 “長跳轉(zhuǎn)”的實(shí)現(xiàn)機(jī)制913.7.3 “長跳轉(zhuǎn)”的陷阱93第4章 進(jìn)程控制:進(jìn)程的一生964.1 進(jìn)程ID964.2 進(jìn)程的層次984.2.1 進(jìn)程組994.2.2 會話1024.3 進(jìn)程的創(chuàng)建之fork()1034.3.1 fork之后父子進(jìn)程的內(nèi)存關(guān)系1044.3.2 fork之后父子進(jìn)程與文件的關(guān)系1074.3.3 文件描述符復(fù)制的內(nèi)核實(shí)現(xiàn)1104.4 進(jìn)程的創(chuàng)建之vfork()1154.5 daemon進(jìn)程的創(chuàng)建1174.6 進(jìn)程的終止1194.6.1 _exit函數(shù)1194.6.2 exit函數(shù)1204.6.3 return退出1224.7 等待子進(jìn)程1224.7.1 僵尸進(jìn)程1224.7.2 等待子進(jìn)程之wait()1244.7.3 等待子進(jìn)程之waitpid()1264.7.4 等待子進(jìn)程之等待狀態(tài)值1294.7.5 等待子進(jìn)程之waitid()1314.7.6 進(jìn)程退出和等待的內(nèi)核實(shí)現(xiàn)1334.8 exec家族1414.8.1 execve函數(shù)1414.8.2 exec家族1424.8.3 execve系統(tǒng)調(diào)用的內(nèi)核實(shí)現(xiàn)1444.8.4 exec與信號1514.8.5 執(zhí)行exec之后進(jìn)程繼承的屬性1524.9 system函數(shù)1524.9.1 system函數(shù)接口1534.9.2 system函數(shù)與信號1564.10 總結(jié)157第5章 進(jìn)程控制:狀態(tài)、調(diào)度和優(yōu)先級1585.1 進(jìn)程的狀態(tài)1585.1.1 進(jìn)程狀態(tài)概述1595.1.2 觀察進(jìn)程狀態(tài)1715.2 進(jìn)程調(diào)度概述1735.3 普通進(jìn)程的優(yōu)先級1815.4 完全公平調(diào)度的實(shí)現(xiàn)1865.4.1 時間片和虛擬運(yùn)行時間1865.4.2 周期性調(diào)度任務(wù)1905.4.3 新進(jìn)程的加入1925.4.4 睡眠進(jìn)程醒來1985.4.5 喚醒搶占2025.5 普通進(jìn)程的組調(diào)度2045.6 實(shí)時進(jìn)程2075.6.1 實(shí)時調(diào)度策略和優(yōu)先級2075.6.2 實(shí)時調(diào)度相關(guān)API2115.6.3 限制實(shí)時進(jìn)程運(yùn)行時間2135.7 CPU的親和力214第6章 信號2196.1 信號的完整生命周期2196.2 信號的產(chǎn)生2206.2.1 硬件異常2206.2.2 終端相關(guān)的信號2216.2.3 軟件事件相關(guān)的信號2236.3 信號的默認(rèn)處理函數(shù)2246.4 信號的分類2276.5 傳統(tǒng)信號的特點(diǎn)2286.5.1 信號的ONESHOT特性2306.5.2 信號執(zhí)行時屏蔽自身的特性2326.5.3 信號中斷系統(tǒng)調(diào)用的重啟特性2336.6 信號的可靠性2366.6.1 信號的可靠性實(shí)驗(yàn)2366.6.2 信號可靠性差異的根源2406.7 信號的安裝2436.8 信號的發(fā)送2466.8.1 kill、tkill和tgkill2466.8.2 raise函數(shù)2476.8.3 sigqueue函數(shù)2476.9 信號與線程的關(guān)系2536.9.1 線程之間共享信號處理函數(shù)2546.9.2 線程有獨(dú)立的阻塞信號掩碼2556.9.3 私有掛起信號和共享掛起信號2576.9.4 致命信號下,進(jìn)程組全體退出2606.10 等待信號2606.10.1 pause函數(shù)2616.10.2 sigsuspend函數(shù)2626.10.3 sigwait函數(shù)和sigwaitinfo函數(shù)2636.11 通過文件描述符來獲取信號2656.12 信號遞送的順序2676.13 異步信號安全2726.14 總結(jié)275第7章 理解Linux線程(1)2767.1 線程與進(jìn)程2767.2 進(jìn)程ID和線程ID2817.3 pthread庫接口介紹2847.4 線程的創(chuàng)建和標(biāo)識2857.4.1 pthread_create函數(shù)2857.4.2 線程ID及進(jìn)程地址空間布局2867.4.3 線程創(chuàng)建的默認(rèn)屬性2917.5 線程的退出2927.6 線程的連接與分離2937.6.1 線程的連接2937.6.2 為什么要連接退出的線程2957.6.3 線程的分離2997.7 互斥量3007.7.1 為什么需要互斥量3007.7.2 互斥量的接口3047.7.3 臨界區(qū)的大小3057.7.4 互斥量的性能3067.7.5 互斥鎖的公平性3107.7.6 互斥鎖的類型3117.7.7 死鎖和活鎖3147.8 讀寫鎖3167.8.1 讀寫鎖的接口3177.8.2 讀寫鎖的競爭策略3187.8.3 讀寫鎖總結(jié)3237.9 性能殺手:偽共享3237.10 條件等待3287.10.1 條件變量的創(chuàng)建和銷毀3287.10.2 條件變量的使用329第8章 理解Linux線程(2)3338.1 線程取消3338.1.1 函數(shù)取消接口3338.1.2 線程清理函數(shù)3358.2 線程局部存儲3398.2.1 使用NPTL庫函數(shù)實(shí)現(xiàn)線程局部存儲3408.2.2 使用__thread關(guān)鍵字實(shí)現(xiàn)線程局部存儲3428.3 線程與信號3438.3.1 設(shè)置線程的信號掩碼3448.3.2 向線程發(fā)送信號3448.3.3 多線程程序?qū)π盘柕奶幚?458.4 多線程與fork()345第9章 進(jìn)程間通信:管道3499.1 管道3519.1.1 管道概述3519.1.2 管道接口3529.1.3 關(guān)閉未使用的管道文件描述符3569.1.4 管道對應(yīng)的內(nèi)存區(qū)大小3619.1.5 shell管道的實(shí)現(xiàn)3619.1.6 與shell命令進(jìn)行通信(popen)3629.2 命名管道FIFO3659.2.1 創(chuàng)建FIFO文件3659.2.2 打開FIFO文件3669.3 讀寫管道文件3679.4 使用管道通信的示例372第10章 進(jìn)程間通信:System V IPC37510.1 System V IPC概述37510.1.1 標(biāo)識符與IPC Key37610.1.2 IPC的公共數(shù)據(jù)結(jié)構(gòu)37910.2 System V消息隊(duì)列38310.2.1 創(chuàng)建或打開一個消息隊(duì)列38310.2.2 發(fā)送消息38510.2.3 接收消息38810.2.4 控制消息隊(duì)列39010.3 System V信號量39110.3.1 信號量概述39110.3.2 創(chuàng)建或打開信號量39310.3.3 操作信號量39510.3.4 信號量撤銷值39910.3.5 控制信號量40010.4 System V共享內(nèi)存40210.4.1 共享內(nèi)存概述40210.4.2 創(chuàng)建或打開共享內(nèi)存40310.4.3 使用共享內(nèi)存40510.4.4 分離共享內(nèi)存40710.4.5 控制共享內(nèi)存408第11章 進(jìn)程間通信:POSIX IPC41011.1 POSIX IPC概述41111.1.1 IPC對象的名字41111.1.2 創(chuàng)建或打開IPC對象41311.1.3 關(guān)閉和刪除IPC對象41411.1.4 其他41411.2 POSIX消息隊(duì)列41511.2.1 消息隊(duì)列的創(chuàng)建、打開、關(guān)閉及刪除41511.2.2 消息隊(duì)列的屬性41811.2.3 消息的發(fā)送和接收42211.2.4 消息的通知42311.2.5 I/O多路復(fù)用監(jiān)控消息隊(duì)列42711.3 POSIX信號量42811.3.1 創(chuàng)建、打開、關(guān)閉和刪除有名信號量43011.3.2 信號量的使用43111.3.3 無名信號量的創(chuàng)建和銷毀43211.3.4 信號量與futex43311.4 內(nèi)存映射mmap43611.4.1 內(nèi)存映射概述43611.4.2 內(nèi)存映射的相關(guān)接口43811.4.3 共享文件映射43911.4.4 私有文件映射45511.4.5 共享匿名映射45511.4.6 私有匿名映射45611.5 POSIX共享內(nèi)存45611.5.1 共享內(nèi)存的創(chuàng)建、使用和刪除45711.5.2 共享內(nèi)存與tmpfs458第12章 網(wǎng)絡(luò)通信:連接的建立46212.1 socket文件描述符46212.2 綁定IP地址46312.2.1 bind的使用46412.2.2 bind的源碼分析46512.3 客戶端連接過程46812.3.1 connect的使用46812.3.2 connect的源碼分析46912.4 服務(wù)器端連接過程47712.4.1 listen的使用47712.4.2 listen的源碼分析47812.4.3 accept的使用48012.4.4 accept的源碼分析48012.5 TCP三次握手的實(shí)現(xiàn)分析48312.5.1 SYN包的發(fā)送48312.5.2 接收SYN包,發(fā)送SYN+ACK包48512.5.3 接收SYN+ACK數(shù)據(jù)包49412.5.4 接收ACK數(shù)據(jù)包,完成三次握手499第13章 網(wǎng)絡(luò)通信:數(shù)據(jù)報(bào)文的發(fā)送50513.1 發(fā)送相關(guān)接口50513.2 數(shù)據(jù)包從用戶空間到內(nèi)核空間的流程50613.3 UDP數(shù)據(jù)包的發(fā)送流程51013.4 TCP數(shù)據(jù)包的發(fā)送流程51713.5 IP數(shù)據(jù)包的發(fā)送流程52713.5.1 ip_send_skb源碼分析52813.5.2 ip_queue_xmit源碼分析53113.6 底層模塊數(shù)據(jù)包的發(fā)送流程532第14章 網(wǎng)絡(luò)通信:數(shù)據(jù)報(bào)文的接收53614.1 系統(tǒng)調(diào)用接口53614.2 數(shù)據(jù)包從內(nèi)核空間到用戶空間的流程53714.3 UDP數(shù)據(jù)包的接收流程54014.4 TCP數(shù)據(jù)包的接收流程54414.5 TCP套接字的三個接收隊(duì)列55314.6 從網(wǎng)卡到套接字55614.6.1 從硬中斷到軟中斷55614.6.2 軟中斷處理55714.6.3 傳遞給協(xié)議棧流程55914.6.4 IP協(xié)議處理流程56414.6.5 大師的錯誤?原始套接字的接收56814.6.6 注冊傳輸層協(xié)議57114.6.7 確定UDP套接字57114.6.8 確定TCP套接字576第15章 編寫安全無錯代碼58215.1 不要用memcmp比較結(jié)構(gòu)體58215.2 有符號數(shù)和無符號數(shù)的移位區(qū)別58315.3 數(shù)組和指針58415.4 再論數(shù)組首地址58715.5 “神奇”的整數(shù)類型轉(zhuǎn)換58815.6 小心volatile的原子性誤解58915.7 有趣的問題:“x == x”何時為假?59115.8 小心浮點(diǎn)陷阱59315.8.1 浮點(diǎn)數(shù)的精度限制59315.8.2 兩個特殊的浮點(diǎn)值59315.9 Intel移位指令陷阱595

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號