Autor: Kamran Amini
Broj strana: 822
ISBN broj: 9781789343625
Izdavač:
PACKT PUBLISHING
Godina izdanja: 2019.
![]() |
![]() |
![]() |
![]() |
![]() |
||||
There’s a lot more to C than knowing the language syntax. The industry looks for developers with a rigorous, scientific understanding of the principles and practices. Extreme C will teach you to use C’s advanced low-level power to write effective, efficient systems. This intensive, practical guide will help you become an expert C programmer. Building on your existing C knowledge, you will master preprocessor directives, macros, conditional compilation, pointers, and much more. You will gain new insight into algorithm design, functions, and structures. You will discover how C helps you squeeze maximum performance out of critical, resource-constrained applications. C still plays a critical role in 21st-century programming, remaining the core language for precision engineering, aviations, space research, and more. This book shows how C works with Unix, how to implement OO principles in C, and fully covers multi-processing. In Extreme C, Amini encourages you to think, question, apply, and experiment for yourself. The book is essential for anybody who wants to take their C to the next level.
Table of contents
1 Essential Features
Preprocessor directives
Variable pointers
Some details about functions
Function pointers
Structures
Summary
2 From Source to Binary
Compilation pipeline
Preprocessor
Compiler
Assembler
Linker
Summary
3 Object Files
Application binary interface (ABI)
Object file formats
Relocatable object files
Executable Object Files
Static libraries
Dynamic libraries
Summary
4 Process Memory Structure
Process memory layout
Discovering memory structure
Probing static memory layout
Probing dynamic memory layout
Summary
5 Stack and Heap
Stack
Heap
Memory management in constrained environments
Summary
6 OOP and Encapsulation
Object-oriented thinking
C is not object-oriented, but why?
Encapsulation
Summary
7 Composition and Aggregation
Relations between classes
Object versus class
Composition
Aggregation
Summary
8 Inheritance and Polymorphism
Inheritance
Polymorphism
Summary
9 Abstraction and OOP in C++
Abstraction
Object-oriented constructs in C++
Summary
10 Unix – History and Architecture
Unix history
Unix architecture
Shell interface to user applications
Kernel interface to shell ring
Kernel
Hardware
Summary
11 System Calls and Kernels
System calls
Unix kernels
Summary
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
13 Concurrency
Introducing concurrency
Parallelism
Concurrency
Task scheduler unit
Processes and threads
Happens-before constraint
When to use concurrency
Shared states
Summary
14 Synchronization
Concurrency issues
Intrinsic concurrency issues
Post-synchronization issues
Synchronization techniques
Spin locks
Concurrency in POSIX
Multi-processing
Multithreading
Summary
15 Thread Execution
Threads
POSIX threads
Spawning POSIX threads
Example of race condition
Example of data race
Summary
16 Thread Synchronization
POSIX concurrency control
17 Process Execution
Process execution APIs
Process execution steps
Shared states
Multithreading versus multi-processing
Summary
18 Process Synchronization
Single-host concurrency control
Named POSIX semaphores
Named mutexes
Named condition variables
Distributed concurrency control
Summary
19 Single-Host IPC and Sockets
IPC techniques
Communication protocols
Single-host communication
Introduction to socket programming
20 Socket Programming
Socket programming review
Calculator project
Unix domain sockets
Network sockets
Summary
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
22 Unit Testing and Debugging
Software testing
Unit testing
Component testing
Testing libraries for C
Debugging
Summary
23 Build Systems
What is a build system?
Make
CMake – not a build system!
Ninja
Bazel
Comparing build systems
Summary
Epilogue
• Milos
ova knjiga je veoma interesantna! molim ukljucite je u ponudu!
• Mihajlo
Ovo je knjiga koja se već dugo čeka.
Cena: 2420 rsd
Popust i do: 1476 rsd
Cena: 3300 rsd
Popust i do: 2013 rsd
© Sva prava pridržana, Kompjuter biblioteka, Beograd, Obalskih radnika 4a, Telefon: +381 11 252 0 272 |
||