封面
版权信息
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Conventions used
Get in touch
Reviews
Chapter 01 Essential Features
Preprocessor directives
Variable pointers
Some details about functions
Function pointers
Structures
Summary
Chapter 02 From Source to Binary
Compilation pipeline
Preprocessor
Compiler
Assembler
Linker
Summary
Chapter 03 Object Files
Application binary interface (ABI)
Object file formats
Relocatable object files
Executable Object Files
Static libraries
Dynamic libraries
Summary
Chapter 04 Process Memory Structure
Process memory layout
Discovering memory structure
Probing static memory layout
Probing dynamic memory layout
Summary
Chapter 05 Stack and Heap
Stack
Heap
Memory management in constrained environments
Summary
Chapter 06 OOP and Encapsulation
Object-oriented thinking
C is not object-oriented but why?
Encapsulation
Summary
Chapter 07 Composition and Aggregation
Relations between classes
Object versus class
Composition
Aggregation
Summary
Chapter 08 Inheritance and Polymorphism
Inheritance
Polymorphism
Summary
Chapter 09 Abstraction and OOP in C++
Abstraction
Object-oriented constructs in C++
Summary
Chapter 10 Unix – History and Architecture
Unix history
Unix architecture
Shell interface to user applications
Kernel interface to shell ring
Kernel
Hardware
Summary
Chapter 11 System Calls and Kernels
System calls
Unix kernels
Summary
Chapter 12 The Most Recent C
C11
Finding a supported version of C standard
Removal of the gets function
Changes to fopen function
Bounds-checking functions
No-return functions
Type generic macros
Unicode
Anonymous structures and anonymous unions
Multithreading
A bit about C18
Summary
Chapter 13 Concurrency
Introducing concurrency
Parallelism
Concurrency
Task scheduler unit
Processes and threads
Happens-before constraint
When to use concurrency
Shared states
Summary
Chapter 14 Synchronization
Concurrency issues
Intrinsic concurrency issues
Post-synchronization issues
Synchronization techniques
Spin locks
Concurrency in POSIX
Multi-processing
Multithreading
Summary
Chapter 15 Thread Execution
Threads
POSIX threads
Spawning POSIX threads
Example of race condition
Example of data race
Summary
Chapter 16 Thread Synchronization
Chapter 17 Process Execution
Process execution APIs
Process execution steps
Shared states
Multithreading versus multi-processing
Summary
Chapter 18 Process Synchronization
Single-host concurrency control
Named POSIX semaphores
Named mutexes
Named condition variables
Distributed concurrency control
Summary
Chapter 19 Single-Host IPC and Sockets
IPC techniques
Communication protocols
Single-host communication
Introduction to socket programming
Chapter 20 Socket Programming
Socket programming review
Calculator project
Unix domain sockets
Network sockets
Summary
Chapter 21 Integration with Other Languages
Why integration is possible?
Obtaining the necessary materials
Stack library
Integration with C++
Integration with Java
Integration with Python
Integration with Go
Summary
Chapter 22 Unit Testing and Debugging
Software testing
Unit testing
Component testing
Testing libraries for C
Debugging
Summary
Chapter 23 Build Systems
What is a build system?
Make
CMake – not a build system!
Ninja
Bazel
Comparing build systems
Summary
Epilogue
Other Books You May Enjoy
Leave a review - let other readers know what you think
Index
更新时间:2021-03-26 16:16:18