.BR openat (2)
and provides a superset of its functionality.
Rather than taking a single
-.I flag
+.I flags
argument, an extensible structure (\fIhow\fP) is passed instead to allow for
future extensions.
.I size
will be implemented as new fields appended to the above structure, with the
zero value of the new fields acting as though the extension were not present.
Therefore, users must ensure that they zero-fill this structure on
-initialisation (see the "Extensibility" section of
+initialization (see the "Extensibility" section of
the
.B NOTES
for more detail on why this is necessary.)
Users of this flag are encouraged to make its use configurable (unless it is
used for a specific security purpose), as bind mounts are very widely used by
end-users.
-Setting this flag indiscrimnately for all uses of
+Setting this flag indiscriminately for all uses of
.IR openat2 ()
may result in spurious errors on previously-functional systems.
.TP
Users of this flag are encouraged to make its use configurable (unless it is
used for a specific security purpose), as symbolic links are very widely used
by end-users.
-Setting this flag indiscrimnately for all uses of
+Setting this flag indiscriminately for all uses of
.IR openat2 ()
may result in spurious errors on previously-functional systems.
.TP
Due to the potential danger of unknowingly opening these magic links,
it may be
preferable for users to disable their resolution entirely (see
-.BR symbolic link (7)
+.BR symlink (7)
for more details.)
.TP
.B RESOLVE_BENEATH
The semantics of
.B RESOLVE_BENEATH
-were modelled after FreeBSD's
+were modeled after FreeBSD's
.BR O_BENEATH .
.SH NOTES
Glibc does not provide a wrapper for this system call; call it using
to ensure that re-compiling the program with new headers will not result in
spurious errors at runtime.
The simplest way is to use a designated
-initialiser:
+initializer:
.PP
.in +4n
.EX