學會Linux UNIX高級程式設計才叫大師 | 誠品線上

學會Linux UNIX高級程式設計才叫大師

作者 趙克佳/ 沈志宇
出版社 佳魁資訊股份有限公司
商品描述 學會Linux UNIX高級程式設計才叫大師:本書遵循最新的〝統一UNIX標準版本4〞,以Linux為平台,系統性地說明了UNIXAPI各種函數的程式設計方法。本書內容包含UNIX的發展歷史

內容簡介

內容簡介 本書遵循最新的〝統一UNIX標準版本4〞,以Linux為平台,系統性地說明了UNIX API各種函數的程式設計方法。本書內容包含UNIX的發展歷史與標準、標準I O和低階I O、檔案與目錄操作、處理程序環境與處理程序控制、訊號處理、時間與定時、終端I O、進階I O、處理程序之間的通訊、通訊端與網路通訊、多執行緒程式設計。

作者介紹

作者介紹 ■作者簡介趙克佳、沈志宇

產品目錄

產品目錄 第01章 UNIX 導論1.1 UNIX 簡史1.1.1 UNIX 的誕生1.1.2 UNIX 的早期發展1.1.3 BSD UNIX1.1.4 系統V UNIX1.1.5 UNIX 的商業化1.1.6 Linux1.2 標準1.2.1 SVID1.2.2 POSIX1.2.3 統一UNIX 標準1.2.4 C 標準1.3 UNIX 基本概念1.3.1 程式和處理程序1.3.2 核心1.3.3 shell1.3.4 使用者名稱與使用者ID、使用者群組與群組ID1.3.5 特權使用者1.3.6 系統呼叫與函數1.4 系統函數庫1.4.1 標頭檔1.4.2 保留字1.4.3 特徵測試1.5 範例程式和編譯環境1.6 錯誤處理1.7 系統資訊1.7.1 機器標識1.7.2 硬體 軟體型態識別1.8 系統能力限制1.8.1 一般能力限制值1.8.2 系統和檔案特徵選項1.8.3 sysconf()、pathconf() 和 fpathconf() 函1.9 思考與練習第02章 標準輸入輸出2.1 UNIX 輸入輸出基本概念2.2 流和FILE 物件2.3 開啟和關閉流2.4 讀和寫流2.4.1 字元I O2.4.2 行I O2.4.3 讀回2.4.4 區塊I O2.5 檔案定位2.6 檔案結束和錯誤指示器2.7 流緩衝2.8 格式I O2.8.1 格式輸出2.8.2 格式輸入2.9 暫存檔案2.10 思考與練習第03章 低階輸入輸出3.1 檔案描述子的開啟、建立和關閉函數3.2 read() 和write() 函數3.3 設定描述子的檔案位置3.4 dup() 和dup2() 函數3.5 fdopen() 和fileno() 函數3.6 檔案控制函數fcntl()3.6.1 重複檔案描述子呼叫3.6.2 檔案描述子標籤3.6.3 檔案狀態標籤3.7 非阻塞I O3.8 readv() 和writev() 函數3.9 fsync() 和fdatasync() 函數3.10 思考與練習第04章 檔案與目錄4.1 檔案4.1.1 stat()、fstat() 和lstat()函數4.2 檔案型態4.2.1 一般檔案4.2.2 目錄4.2.3 連結與link() 函數4.2.4 符號連結與symlink() 和readlink() 函數4.2.5 特別檔案4.2.6 測試檔案的型態4.3 檔案的擁有者和使用者群組4.3.1 chown()、fchown() 和lchown() 函數4.4 檔案規則4.4.1 檔案存取權限4.4.2 調整使用者ID 和調整群組ID4.4.3 sticky 位元4.4.4 檔案規則位元小結4.5 確定和改變檔案規則4.5.1 umask() 函數4.5.2 chmod() 和fchmod()函數4.5.3 access() 函數4.6 檔案大小4.6.1 截斷檔案4.7 檔案時間4.7.1 utime() 和utimes() 函數4.8 檔案的刪除與重新命名4.8.1 刪除檔案和目錄4.8.2 檔案重新命名4.9 目錄操作4.9.1 工作目錄4.9.2 建立目錄4.9.3 讀取目錄4.9.4 對目錄流的隨機存取4.10 思考與練習第05章 處理程序環境5.1 main() 函數5.2 命令列參數5.2.1 命令列參數的語法約定5.2.2 掃描命令列中的選項5.3 環境變數5.3.1 環境表5.3.2 存取環境5.4 終止處理5.4.1 Exit|Code5.4.2 終止前的清理5.4.3 中止程式5.5 處理程序的儲存空間5.5.1 處理程序的位址空間5.5.2 動態儲存裝置分配與釋放5.5.3 釋放分配的儲存單元5.6 setjmp() 和longjmp() 函數5.7 處理程序資源5.7.1 檢視與設定資源限制5.7.2 資源使用統計5.8 使用者資訊5.8.1 使用者名稱5.8.2 使用者資料庫5.8.3 群組資料庫5.9 處理程序的身份憑證5.10 調整處理程序的身份5.11 思考與練習第06章 處理程序控制6.1 處理程序標識6.2 處理程序建立6.3 執行一個新程式6.4 等待處理程序完成6.5 處理程序終止與僵屍處理程序6.6 system() 函數6.7 處理程序群組6.8 階段6.9 控制終端6.10 作業控制6.11 思考與練習第07章 訊號處理7.1 訊號概念7.2 UNIX 訊號7.2.1 程式錯誤類訊號7.2.2 程式中止類訊號程式7.2.3 鬧鈴類訊號7.2.4 I O 類訊號7.2.5 作業控制類訊號7.2.6 操作錯誤類訊號7.2.7 其他訊號7.3 產生訊號7.3.1 raise() 函數7.3.2 kill() 函數7.4 設定訊號的動作7.4.1 signal() 函數7.4.2 處理程序啟始時的訊號動作7.4.3 不可靠訊號7.4.4 sigaction() 函數7.5 訊號控制7.5.1 正常傳回的訊號控制碼7.5.2 終止處理程序的控制碼7.6 阻塞訊號7.6.1 sigset_t 型態和訊號集操作7.6.2 設定訊號隱藏7.6.3 檢查擱置訊號7.7 等待訊號7.7.1 pause() 函數7.7.2 sigsuspend() 函數7.8 使用分開的訊號7.9 訊號控制碼程式設計技巧7.9.1 控制碼內非局部控制轉移7.9.2 可重入函數與非同步訊號安全函數7.9.3 被訊號中斷的系統呼叫7.9.4 最小資料7.10 即時訊號7.10.1 SA_SIGINFO 標示7.10.2 發送即時訊號7.10.3 等待即時訊號7.11 思考與練習第08章 時間與定時8.1 系統時鐘時鐘8.1.1 time() 函數8.1.2 gettimeofday() 函數8.2 時間格式轉換8.2.1 分解的日曆時間8.2.2 格式化日期與時間8.3 CPU 時間與鐘錶時間8.3.1 clock() 函數8.3.2 times() 函數8.4 休眠與定時8.4.1 sleep() 函數8.4.2 設定計時器8.5 即時時鐘與定時8.5.1 即時時鐘8.5.2 即時休眠相8.5.3 即時計時器8.5.4 建立和刪除即時計時器8.5.5 設定即時計時器8.5.6 計時器超期計數8.6 思考與練習第09章 終端I O9.1 需要改變終端設定的實例9.2 終端I O 概述9.2.1 終端9.2.2 序列埠9.2.3 終端裝置檔案9.2.4 輸入輸出佇列9.2.5 加工和非加工輸入方式9.3 GTI 控制介面9.3.1 termios 資料結構9.3.2 GTI 控制函數9.4 終端屬性9.4.1 輸入方式輸入9.4.2 輸出方式9.4.3 控制方式9.4.4 局部方式9.4.5 特殊字元9.4.6 stty 指令9.5 終端標識9.6 改變終端屬性9.7 加工方式與非加工方式輸入9.7.1 加工方式輸入9.7.2 非加工方式輸入9.8 設定串列傳輸速率9.9 行控制函數9.10 序列埠程式設計9.11 思考與練習第10章 進階I O110.1 檔案鎖10.1.1 fcntl() 檔案鎖操作10.1.2 鎖的測試、請求和釋放10.1.3 檔案鎖與處理程序和檔案的關係10.1.4 鎖死10.1.5 建議鎖與強制鎖10.2 訊號驅動的I O10.3 多路轉接I O10.3.1 select() 函數10.3.2 poll() 函數10.4 非同步I O10.4.1 非同步I O 控制區塊10.4.2 I O 完成時的訊號發佈10.4.3 非同步I O 的優先順序10.4.4 非同步I O 函數10.4.5 非同步I O 範例10.4.6 非同步I O 注意事項10.5 儲存映射I O10.6 思考與練習第11章 處理程序間通訊„11.1 管道11.1.1 建立管道11.1.2 父子處理程序間的管道通訊11.1.3 連接標準輸入和標準輸出的管道11.1.4 popen() 和pclose() 函數11.1.5 管道I O 的不可分割性11.2 FIFO 特別檔案11.2.1 建立FIFO11.2.2 FIFO 操作11.2.3 FIFO 用於客戶 服務通訊11.3 系統V IPC11.3.1 關鍵字和標識11.3.2 IPC 資源描述結構與成員ipc_perm11.3.3 ipcs 和ipcrm 指令11.4 訊息佇列11.4.1 建立和獲得訊息佇列11.4.2 訊息佇列的查詢、設定和刪除11.4.3 發送和接收訊息11.5 共用儲存區段11.5.1 建立和獲得共用儲存區段11.5.2 共用儲存區段的查詢、設定和刪除11.5.3 共用儲存區段的連接和分離11.6 號誌11.6.1 建立和獲得號誌標識11.6.2 號誌的查詢、設定和刪除11.6.3 號誌操作11.7 思考與練習第12章 通訊端及網路通訊12.1 TCP IP 協定12.2 通訊端12.3 通訊端位址結構12.3.1 IP 位址12.3.2 域名位址12.3.3 服務與通訊埠號12.3.4 通訊端位址資料結構12.3.5 位元組順序12.4 命名通訊端12.5 通訊端通訊模式12.6 流通訊端操作12.6.1 請求連接12.6.2 接收連接12.6.3 getsockname() 和getpeername() 函數12.6.4 多客戶服務12.6.5 send() 和recv() 函數12.7 通訊端選項12.8 頻外資料12.8.1 TCP 頻外資料12.8.2 頻外資料的發送和接收12.8.3 頻外資料標示12.9 資料通訊端操作12.9.1 sendto() 和recvfrom()函數12.9.2 資料通訊端客戶 服務範例12.9.3 使用connect() 函數12.10 逾時處理12.11 思考與練習第13章 執行緒13.1 執行緒概念13.1.1 什麼是執行緒13.1.2 執行緒的好處13.1.3 Pthreads 執行緒13.1.4 執行緒標識13.2 建立執行緒13.3 終止執行緒13.3.1 等待中的執行緒終止13.3.2 可匯合與分離的執行緒13.4 建立特殊屬性的執行緒13.5 互斥變數13.5.1 互斥變數的初始化和銷毀13.5.2 互斥變數屬性13.5.3 互斥變數的加鎖與解鎖13.5.4 互斥變數與spin 鎖13.6 讀寫鎖13.6.1 讀寫鎖的初始化和銷毀13.6.2 讀寫鎖的上鎖與解鎖13.7 條件變數13.7.1 建立和銷毀條件變數13.7.2 條件變數屬性13.7.3 等待條件變數13.7.4 喚醒條件變數等待13.8 思考與練習第14章 執行緒進階特徵14.1 執行緒專有資料14.1.1 執行緒專有資料鍵的建立和刪除14.1.2 使用執行緒專有資料14.2 取消執行緒14.2.1 執行緒的可取消屬性14.2.2 取消執行緒與取消點14.2.3 非同步取消的安全性14.2.4 現場清理14.3 執行緒排程14.3.1 執行緒排程競爭範圍14.3.2 排程策略與優先順序14.3.3 執行緒排程屬性14.3.4 動態改變執行緒的排程策略和優先順序14.4 執行緒與訊號14.4.1 訊號動作14.4.2 訊號隱藏14.4.3 向執行緒發送訊號14.4.4 等待訊號14.4.5 一種新的事件通知方法:SIGEV_THREAD14.5 思考與練習

商品規格

書名 / 學會Linux UNIX高級程式設計才叫大師
作者 / 趙克佳 沈志宇
簡介 / 學會Linux UNIX高級程式設計才叫大師:本書遵循最新的〝統一UNIX標準版本4〞,以Linux為平台,系統性地說明了UNIXAPI各種函數的程式設計方法。本書內容包含UNIX的發展歷史
出版社 / 佳魁資訊股份有限公司
ISBN13 / 9789863793830
ISBN10 / 9863793833
EAN / 9789863793830
誠品26碼 / 2681364890001
頁數 / 688
開數 / 18K
注音版 /
裝訂 / P:平裝
語言 / 1:中文 繁體
級別 / N:無

試閱文字

內文 : 序
UNIX/Linux 流行起來這十年間,影響UNIX 程式設計介面的標準和標準發生了很大的變化,當時大家學習參考的Single UNIX Specification 2 現在已發展到Single UNIX Specification 4,而許多分離獨立的標準和標準,包含Single UNIXSpecification,現在都已經統一在POSIX.1-2008 標準之下了。隨著Linux 系統的成熟和發展,UNIX 系統已不再是少數大型主機和伺服器的專利。任何一個使用電腦的人現在都能安裝和使用Linux,進一步使得用UNIX 程式設計介面開發應用的人也越來越多。

活動