Chapter 9. Processes and System Calls: Breaking boundaries

image with no caption

It’s time to think outside the box.

You’ve already seen that you can build complex applications by connecting small tools together on the command line. But what if you want to use other programs from inside your own code? In this chapter, you’ll learn how to use system services to create and control processes. That will give your programs access to email, the Web, and any other tool you’ve got installed. By the end of the chapter, you’ll have the power to go beyond C.

System calls are your hotline to the OS

C programs rely on the operating system for pretty much everything. They make system calls if they want to talk to the hardware. System calls are just functions that live inside the operating system’s kernel. Most of the code in the C Standard Library depends on them. Whenever you call printf() to display something on the command line, somewhere at the back of things, a system call will be made to the operating system to send the string of text to the screen.

image with no caption

Let’s look at an example of a system call. We’ll begin with one called (appropriately) system().

system() takes a single string parameter and executes it as if you had typed it on the command line:

The system() function is an easy way of running other ...

Get Head First C now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.