Hands-On System Programming with C++: Build performant and concurrent Unix and Linux systems with C++17

Dr. Rian Quinn

  • 出版商: Packt Publishing
  • 出版日期: 2018-12-24
  • 售價: $1,750
  • 貴賓價: 9.5$1,663
  • 語言: 英文
  • 頁數: 552
  • 裝訂: Paperback
  • ISBN: 1789137888
  • ISBN-13: 9781789137880
  • 相關分類: C++ 程式語言Linux
  • 立即出貨 (庫存 < 3)

買這商品的人也買了...

商品描述

A hands-on guide to making system programming with C++ easy

Key Features

  • Write system-level code leveraging C++17
  • Learn the internals of the Linux Application Binary Interface (ABI) and apply it to system programming
  • Explore C++ concurrency to take advantage of server-level constructs

Book Description

C++ is a general-purpose programming language with a bias toward system programming as it provides ready access to hardware-level resources, efficient compilation, and a versatile approach to higher-level abstractions.

This book will help you understand the benefits of system programming with C++17. You will gain a firm understanding of various C, C++, and POSIX standards, as well as their respective system types for both C++ and POSIX. After a brief refresher on C++, Resource Acquisition Is Initialization (RAII), and the new C++ Guideline Support Library (GSL), you will learn to program Linux and Unix systems along with process management. As you progress through the chapters, you will become acquainted with C++'s support for IO. You will then study various memory management methods, including a chapter on allocators and how they benefit system programming. You will also explore how to program file input and output and learn about POSIX sockets. This book will help you get to grips with safely setting up a UDP and TCP server/client.

Finally, you will be guided through Unix time interfaces, multithreading, and error handling with C++ exceptions. By the end of this book, you will be comfortable with using C++ to program high-quality systems.

What you will learn

  • Understand the benefits of using C++ for system programming
  • Program Linux/Unix systems using C++
  • Discover the advantages of Resource Acquisition Is Initialization (RAII)
  • Program both console and file input and output
  • Uncover the POSIX socket APIs and understand how to program them
  • Explore advanced system programming topics, such as C++ allocators
  • Use POSIX and C++ threads to program concurrent systems
  • Grasp how C++ can be used to create performant system applications

Who this book is for

If you are a fresh developer with intermediate knowledge of C++ but little or no knowledge of Unix and Linux system programming, this book will help you learn system programming with C++ in a practical way.

Table of Contents

  1. Getting Started with System Programming
  2. Learning the C, C++17 and POSIX Standards
  3. System Types for C++ and POSIX
  4. C++, RAII and the GSL Refresher
  5. Programming Linux / Unix System
  6. Learning to Program Console Input / Output
  7. A Comprehensive Look at Memory Management
  8. Learning to Program File Input / Output
  9. A Hands-On Approach to Allocators
  10. Programming POSIX Sockets using C++
  11. Time Interfaces in Unix
  12. Learn to Program POSIX and C++ Threads
  13. Error Handling with Exceptions

商品描述(中文翻譯)

一本實踐系統程式設計的C++指南

關鍵特點:
- 使用C++17撰寫系統層級程式碼
- 學習Linux應用程式二進制介面(ABI)的內部結構並應用於系統程式設計
- 探索C++並行性以利用伺服器級別的結構

書籍描述:
C++是一種通用的程式語言,偏向系統程式設計,因為它提供了對硬體級資源的即時存取、高效的編譯和多變的高階抽象方法。

本書將幫助您了解使用C++17進行系統程式設計的好處。您將深入了解各種C、C++和POSIX標準,以及它們分別對於C++和POSIX的系統類型。在對C++、資源取得即初始化(RAII)和新的C++指導支援庫(GSL)進行簡要複習後,您將學習如何在Linux和Unix系統上進行程式設計,包括處理程序管理。隨著章節的進展,您將熟悉C++對IO的支援。然後,您將學習各種記憶體管理方法,包括一章關於配置器及其對系統程式設計的好處。您還將探索如何編寫檔案輸入和輸出程式,並了解POSIX套接字。本書將幫助您安全地設置UDP和TCP伺服器/客戶端。

最後,您將通過Unix時間介面、多執行緒和C++異常處理來進行指導。通過閱讀本書,您將能夠使用C++來編寫高品質的系統。

您將學到什麼:
- 了解使用C++進行系統程式設計的好處
- 使用C++編寫Linux/Unix系統
- 發現資源取得即初始化(RAII)的優勢
- 編寫控制台和檔案的輸入和輸出程式
- 探索POSIX套接字API並了解如何編寫它們
- 探索高級系統程式設計主題,如C++配置器
- 使用POSIX和C++執行緒來編寫並行系統
- 理解如何使用C++創建高效的系統應用程式

本書適合對C++有中級知識,但對Unix和Linux系統程式設計幾乎沒有了解的新手開發者,將以實際方式幫助您學習使用C++進行系統程式設計。

目錄:
1. 開始進行系統程式設計
2. 學習C、C++17和POSIX標準
3. C++和POSIX的系統類型
4. C++、RAII和GSL複習
5. 程式設計Linux/Unix系統
6. 學習程式設計控制台輸入/輸出
7. 全面了解記憶體管理
8. 學習程式設計檔案輸入/輸出
9. 實踐配置器的方法
10. 使用C++編寫POSIX套接字
11. Unix的時間介面
12. 學習程式設計POSIX和C++執行緒
13. 使用異常處理錯誤