Book Image

Hands-On System Programming with Linux

By : Kaiwan N. Billimoria, Tigran Aivazian
Book Image

Hands-On System Programming with Linux

By: Kaiwan N. Billimoria, Tigran Aivazian

Overview of this book

The Linux OS and its embedded and server applications are critical components of today’s software infrastructure in a decentralized, networked universe. The industry's demand for proficient Linux developers is only rising with time. Hands-On System Programming with Linux gives you a solid theoretical base and practical industry-relevant descriptions, and covers the Linux system programming domain. It delves into the art and science of Linux application programming— system architecture, process memory and management, signaling, timers, pthreads, and file IO. This book goes beyond the use API X to do Y approach; it explains the concepts and theories required to understand programming interfaces and design decisions, the tradeoffs made by experienced developers when using them, and the rationale behind them. Troubleshooting tips and techniques are included in the concluding chapter. By the end of this book, you will have gained essential conceptual design knowledge and hands-on experience working with Linux system programming interfaces.
Table of Contents (21 chapters)

Available signals

The Unix/Linux OS provides a set of 64 signals in total. They are broadly divided into two types: the standard or Unix signals and the real-time signals. We shall find that while they do share common attributes, there are some important differences as well; here, we shall investigate the Unix (or standard) signals and later, the latter.

The generic communication interface for signalling from userspace, besides the keyboard key combinations (such as Ctrl + C), is the kill(1) utility (and, consequently, the kill(2) system call).

Besides the kill, there are several other APIs that deliver a signal; we shall flesh out more on this in a later section of this chapter.

Running the kill(1) utility with the -l or list option lists the available signals on the platform:

$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL...