the linux O_PATH mode provides the necessary semantics for both the
O_SEARCH and O_EXEC modes defined and required by POSIX 2008.
#define O_NOFOLLOW 0100000
#define O_CLOEXEC 02000000
#define O_SEARCH 010000000
+#define O_EXEC 010000000
#define O_ASYNC 020000
#define O_DIRECT 0200000
#define O_NOFOLLOW 0400000
#define O_CLOEXEC 02000000
#define O_SEARCH 010000000
+#define O_EXEC 010000000
#define O_ASYNC 020000
#define O_DIRECT 040000
#define O_CLOEXEC 02000000
#define O_PATH 010000000
#define O_SEARCH 010000000
+#define O_EXEC 010000000
#define O_NDELAY O_NONBLOCK
#define O_NOFOLLOW 0400000
#define O_CLOEXEC 02000000
#define O_SEARCH 010000000
+#define O_EXEC 010000000
#define O_ASYNC 020000
#define O_DIRECT 040000