7.2. fcntl.h and sys/file.h
Many files that a BSD-like system expects to find in the sys directory are placed in /usr/include in System V. Other systems, such as VMS, do not even have a sys directory. (9)
The symbols used in the open function call are defined in different header files in the two types of systems:
#ifdef SYSV
# include <fcntl.h>
#else
# include <sys/file.h>
#endif
In some systems, e.g., BSD 4.3 and SunOS, it does not make a difference which one is used because both define the O_xxxx symbols.