Hands-on system programming with C++ : build performant and concurrent Unix and Linux systems with C++17 /
C++ is a general-purpose programming language with a bias towards systems programming. This book provides a detailed walkthrough of the C, C++ and POSIX standards and enables a firm understanding of various system calls for UNIX systems. Topics include console and file IO, memory management, sockets...
Clasificación: | Libro Electrónico |
---|---|
Autor principal: | |
Formato: | Electrónico eBook |
Idioma: | Inglés |
Publicado: |
Birmingham, UK :
Packt Publishing,
2018.
|
Temas: | |
Acceso en línea: | Texto completo (Requiere registro previo con correo institucional) |
Tabla de Contenidos:
- Cover; Title Page; Copyright and Credits; Dedication; About Packt; Contributors; Table of Contents; Preface; Chapter 1: Getting Started with System Programming; Technical requirements; Understanding system calls; The anatomy of a system call; Learning about different types of system calls; Console input/output; Memory allocation; File input/output; Networking; Time; Threading and process creation; System call security risks; SYSRET; Meltdown and Spectre; Benefits of using C++ when system programming; Type safety in C++; Objects of C++; Templates used in C++
- Functional programming associated with C++Error handling mechanism in C++; APIs and C++ containers in C++; Summary; Questions; Further reading; Chapter 2: Learning the C, C++17, and POSIX Standards; Technical requirements; Beginning with the C standard language; How the standard is organized; Environment; Language; Libraries; How a C program starts; All about linking; Static libraries; Dynamic libraries; Scope; Pointers and arrays; Libraries; Learning about the C++ standard; How the standard is organized; General conventions and concepts; Language syntax; Libraries; Linking C++ applications
- ScopePointers versus references; Libraries; Beginning with the POSIX standard; Memory management; Filesystems; Sockets; Threading; Summary; Questions; Further reading; Chapter 3: System Types for C and C++; Technical requirements; Exploring C and C++ default types; Character types; Integer types; Floating
- point numbers; Boolean; Learning standard integer types; Structure packing; Summary; Questions; Further reading; Chapter 4: C++, RAII, and the GSL Refresher; Technical requirements; A brief overview of C++17; Language changes; Initializers in if/switch statements
- Additions to compile-time facilitiesNamespaces; Structured bindings; Inline variables; Changes in the library; String View; std::any, std::variant, and std::optional; Resource Acquisition Is Initialization (RAII) ; The Guideline Support Library (GSL); Pointer ownership; Pointer arithmetic; Contracts; Utilities; Summary; Questions; Further Reading; Chapter 5: Programming Linux/Unix Systems; Technical requirements; The Linux ABI; The System V ABI; The register layout; The stack frame; Function prologs and epilogs; The calling convention; Exception handling and debugging; Virtual memory layout
- Executable and Linkable Format (ELF)ELF sections; ELF segments; The Unix filesystem; Unix processes; The fork() function; The wait() function; Interprocess communication (IPC); Unix pipes; Unix shared memory; The exec() function; Output redirection; Unix signals; Summary; Questions; Further reading; Chapter 6: Learning to Program Console Input/Output; Technical requirements; Learning about stream-based IO; The basics of stream; Advantages and disadvantages of C++ stream-based IO; Advantages of C++ stream-based IO; Disadvantages of C++ stream-based IO; Beginning with user-defined types