O_CLOEXEC doesn't exist, because this flag is unconditionally added by libuv. O_SHARE_DELETE, O_SHARE_WRITE, O_SHARE_READ are always added on Windows, unless O_EXLOCK is specified.
type file_kind =
| S_REG
(*
Regular file
*)
| S_DIR
(*
Directory
*)
| S_CHR
(*
Character device
*)
| S_BLK
(*
Block device
*)
| S_LNK
(*
Symbolic link
*)
| S_FIFO
(*
Named pipe
*)
| S_SOCK
(*
Socket
*)
| S_UNKNOWN
(*
Everything else - possible on some platforms.
*)
type symlink_mode =
| S_Default
| S_Dir
(*
indicates that path points to a directory.
*)
| S_Junction
(*
request that the symlink is created using junction points.
*)
On Windows it can be specified how to create symlinks.