I just tried to read files from the filesystem using direct i/o to avoid the operating systems caching effects. The manpage of open lists the flag O_DIRECT for this. Although I included fcntl.h, my compiler complained that it couldn’t find O_DIRECT:

contrib/myfile.c:44: error: ‘O_DIRECT’ undeclared (first use in this function)

The solution was easy: You just have to

#define _GNU_SOURCE

before including fnctl.h. This is actually mentioned in the manpage, but only in a footnote that is easy to overlook.