This is primarily useful for opening files on NFS mounts as it allows you to
skip the potentially stale local cache. It has a very real impact on I/O
- performance so don't use this mode unless you need it.
+ performance so don't use this flag unless you need it.
Note that this doesn't turn `fs.open()` into a synchronous blocking call.
If that's what you want then you should be using `fs.openSync()`
* `'w'` - Open file for writing.
The file is created (if it does not exist) or truncated (if it exists).
-* `'wx'` - Like `'w'` but opens the file in exclusive mode.
+* `'wx'` - Like `'w'` but fails if `path` exists.
* `'w+'` - Open file for reading and writing.
The file is created (if it does not exist) or truncated (if it exists).
-* `'wx+'` - Like `'w+'` but opens the file in exclusive mode.
+* `'wx+'` - Like `'w+'` but fails if `path` exists.
* `'a'` - Open file for appending.
The file is created if it does not exist.
-* `'ax'` - Like `'a'` but opens the file in exclusive mode.
+* `'ax'` - Like `'a'` but fails if `path` exists.
* `'a+'` - Open file for reading and appending.
The file is created if it does not exist.
-* `'ax+'` - Like `'a+'` but opens the file in exclusive mode.
+* `'ax+'` - Like `'a+'` but fails if `path` exists.
-`mode` defaults to `0666`. The callback gets two arguments `(err, fd)`.
+`mode` sets the file mode (permission and sticky bits), but only if the file was
+created. It defaults to `0666`, readable and writeable.
-Exclusive mode (`O_EXCL`) ensures that `path` is newly created. `fs.open()`
-fails if a file by that name already exists. On POSIX systems, symlinks are
-not followed. Exclusive mode may or may not work with network file systems.
+The callback gets two arguments `(err, fd)`.
+
+The exclusive flag `'x'` (`O_EXCL` flag in open(2)) ensures that `path` is newly
+created. On POSIX systems, `path` is considered to exist even if it is a symlink
+to a non-existent file. The exclusive flag may or may not work with network file
+systems.
On Linux, positional writes don't work when the file is opened in append mode.
The kernel ignores the position argument and always appends the data to
## fs.openSync(path, flags, [mode])
-Synchronous open(2).
+Synchronous version of `fs.open()`.
## fs.utimes(path, atime, mtime, callback)
## fs.utimesSync(path, atime, mtime)