Eu diria que esses valores constantes são específicos do Linux, não específicos do Ubuntu.
No seu arquivo C, você recebe fcntl.h
de /usr/include/fcntl.h
, que contém:
/* Get the definitions of O_*, F_*, FD_*: all the
numbers and flag bits for 'open', 'fcntl', et al. */
#include <bits/fcntl.h>
Em /usr/include/<your_arch>/bits/fcntl.h
você pode ver o seguinte código:
/* Include generic Linux declarations. */
#include <bits/fcntl-linux.h>
Finalmente, esse arquivo /usr/include/<your_arch>/bits/fcntl-linux.h
define esses valores da seguinte forma:
#ifndef F_RDLCK
/* For posix fcntl() and 'l_type' field of a 'struct flock' for lockf(). */
# define F_RDLCK 0 /* Read lock. */
# define F_WRLCK 1 /* Write lock. */
# define F_UNLCK 2 /* Remove lock. */
#endif
Para confirmar que não é específico do Ubuntu, você pode verificar as definições no fonte libc , eles são iguais.