April 2020
Intermediate to advanced
412 pages
9h 58m
English
As you can see, we introduced a minimal number of changes to the code of our application. All the mechanisms and the API for reading and writing data remain the same. The crucial difference hides behind a single line of code:
int ret = mkfifo(kSharedFile.c_str(), 0600);
This line creates a special type of file called named pipe. It looks like a regular file—it has a name, permission attributes, and a modification time. However, it does not store any real data. Everything written to this file is immediately delivered to the processes that read from this file.
This difference has a number of consequences. Since no real data is stored in the file, all reading attempts are blocked until any data is written. Similarly, writes ...