A problem-solution-based guide to help you overcome hurdles effectively while working with kernel APIs, filesystems, networks, threads, and process communications
Key FeaturesLearn to apply the latest C++ features (from C++11, 14, 17, and 20) to facilitate systems programmingCreate robust and concurrent systems that make the most of the available hardware resourcesDelve into C++ inbuilt libraries and frameworks to design robust systems as per your business needsBook DescriptionC++ is the preferred language for system programming due to its efficient low-level computation, data abstraction, and object-oriented features. System programming is about designing and writing computer programs that interact closely with the underlying operating system and allow computer hardware to interface with the programmer and the user. The C++ System Programming Cookbook will serve as a reference for developers who want to have ready-to-use solutions for the essential aspects of system programming using the latest C++ standards wherever possible.
This C++ book starts out by giving you an overview of system programming and refreshing your C++ knowledge. Moving ahead, you will learn how to deal with threads and processes, before going on to discover recipes for how to manage memory. The concluding chapters will then help you understand how processes communicate and how to interact with the console (console I/O). Finally, you will learn how to deal with time interfaces, signals, and CPU scheduling.
By the end of the book, you will become adept at developing robust systems applications using C++.
What you will learnGet up to speed with the fundamentals including makefile, man pages, compilation, and linking and debuggingUnderstand how to deal with time interfaces, signals, and CPU schedulingDevelop your knowledge of memory managementUse processes and threads for advanced synchronizations (mutexes and condition variables)Understand interprocess communications (IPC): pipes, FIFOs, message queues, shared memory, and TCP and UDPDiscover how to interact with the console (console I/O)Who this book is forThis book is for C++ developers who want to gain practical knowledge of systems programming. Though no experience of Linux system programming is assumed, intermediate knowledge of C++ is necessary.
Table of ContentsGetting Started with System ProgrammingRevisiting C++Dealing with Processes and ThreadsDeep Dive into Memory ManagementUsing Mutexes, Semaphores, and Condition VariablesPipes, First-In First-Out (FIFO), Message Queues, and Shared MemoryNetwork ProgrammingDealing with Console I/O and FilesDealing with Time InterfacesManaging SignalsScheduling
You might expect to find everything covered in this book to be written in C++, though as you might already know when it comes to Linux system programming you will face a lot of C code inevitably because system calls are written in C code. Regarding how much C code gets involved in Linux system programming, the author did a good job introducing many aspects of system programming in C++, both for features coming with C++ standards, and Linux interface libraries in C. You might also expect to see only brief introductions to the topics and not in depth coverage. Generally you would want to read this book once and leave it in your shelves until future editions and improvements.
Short and sweet. Not a waste of your time. Problem is like all modern books, there is too much to absorb, even in a short book like this. Nothing can be done about it, I guess. I read it less than 6 months ago, and I remember almost nothing, I hope at least it did change some of the structures in my brain so that I can remember it easily when I have to use it.