Book Image

Linux System Programming Techniques

By : Jack-Benny Persson
Book Image

Linux System Programming Techniques

By: Jack-Benny Persson

Overview of this book

Linux is the world's most popular open source operating system (OS). Linux System Programming Techniques will enable you to extend the Linux OS with your own system programs and communicate with other programs on the system. The book begins by exploring the Linux filesystem, its basic commands, built-in manual pages, the GNU compiler collection (GCC), and Linux system calls. You'll then discover how to handle errors in your programs and will learn to catch errors and print relevant information about them. The book takes you through multiple recipes on how to read and write files on the system, using both streams and file descriptors. As you advance, you'll delve into forking, creating zombie processes, and daemons, along with recipes on how to handle daemons using systemd. After this, you'll find out how to create shared libraries and start exploring different types of interprocess communication (IPC). In the later chapters, recipes on how to write programs using POSIX threads and how to debug your programs using the GNU debugger (GDB) and Valgrind will also be covered. By the end of this Linux book, you will be able to develop your own system programs for Linux, including daemons, tools, clients, and filters.
Table of Contents (14 chapters)

Getting access rights and ownership

In this recipe, we'll write a program that reads the access rights and ownership of a file using the stat() system call we have seen previously in this chapter. We will continue to build upon the my-stat-v1 program that we built in the first recipe in this chapter. Here we will add the features to show ownership and access rights as well. Knowing how to get the owner and access rights programmatically is key to working with files and directories. It will enable you to check whether the user has the appropriate permissions and print an error message if they haven't.

We will also learn how access rights are interpreted in Linux and how to convert between numerical representation and letter representation. Understanding access rights in Linux is key to being a Linux system programmer. Every file and directory on the entire system has access rights and an owner and a group assigned to them. It doesn't matter whether it's a log...