summaryrefslogtreecommitdiff
path: root/usr
diff options
context:
space:
mode:
authorRobert Mustacchi <rm@joyent.com>2014-12-23 06:23:37 +0000
committerRobert Mustacchi <rm@joyent.com>2014-12-27 08:30:25 -0800
commit1fcc078ae7c0a359a9274d2a5a90547aceb213a6 (patch)
tree9b8362a6b25333d87ff276d53ee415da3fe4ff57 /usr
parentd3864341aacc6a2ecc95960d23ac0e49f1f538fa (diff)
downloadillumos-joyent-1fcc078ae7c0a359a9274d2a5a90547aceb213a6.tar.gz
5479 Need missing *at family manual pages
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Richard Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr')
-rw-r--r--usr/src/man/man2/Makefile17
-rw-r--r--usr/src/man/man2/chmod.292
-rw-r--r--usr/src/man/man2/link.280
-rw-r--r--usr/src/man/man2/mkdir.261
-rw-r--r--usr/src/man/man2/mknod.250
-rw-r--r--usr/src/man/man2/open.247
-rw-r--r--usr/src/man/man2/readlink.255
-rw-r--r--usr/src/man/man2/symlink.235
-rw-r--r--usr/src/man/man3c/Makefile3
-rw-r--r--usr/src/man/man3c/mkfifo.3c64
-rw-r--r--usr/src/man/man3lib/libc.3lib13
-rw-r--r--usr/src/pkg/manifests/system-kernel.man2.inc6
-rw-r--r--usr/src/pkg/manifests/system-library.man3c.inc1
13 files changed, 398 insertions, 126 deletions
diff --git a/usr/src/man/man2/Makefile b/usr/src/man/man2/Makefile
index 9b6f660fe4..2e5c7a51e6 100644
--- a/usr/src/man/man2/Makefile
+++ b/usr/src/man/man2/Makefile
@@ -183,6 +183,7 @@ MANLINKS= _Exit.2 \
facl.2 \
fchdir.2 \
fchmod.2 \
+ fchmodat.2 \
fchown.2 \
fchownat.2 \
fchroot.2 \
@@ -209,7 +210,10 @@ MANLINKS= _Exit.2 \
gettaskid.2 \
intro.2 \
lchown.2 \
+ linkat.2 \
lstat.2 \
+ mkdirat.2 \
+ mknodat.2 \
openat.2 \
pathconf.2 \
pipe2.2 \
@@ -221,6 +225,7 @@ MANLINKS= _Exit.2 \
putacct.2 \
putpmsg.2 \
pwrite.2 \
+ readlinkat.2 \
readv.2 \
renameat.2 \
sbrk.2 \
@@ -241,6 +246,7 @@ MANLINKS= _Exit.2 \
shmat.2 \
shmdt.2 \
sigsendset.2 \
+ symlinkat.2 \
umount2.2 \
unlinkat.2 \
utimensat.2 \
@@ -273,6 +279,7 @@ sbrk.2 := LINKSRC = brk.2
fchdir.2 := LINKSRC = chdir.2
fchmod.2 := LINKSRC = chmod.2
+fchmodat.2 := LINKSRC = chmod.2
fchown.2 := LINKSRC = chown.2
fchownat.2 := LINKSRC = chown.2
@@ -332,6 +339,12 @@ getgid.2 := LINKSRC = getuid.2
setustack.2 := LINKSRC = getustack.2
+linkat.2 := LINKSRC = link.2
+
+mkdirat.2 := LINKSRC = mkdir.2
+
+mknodat.2 := LINKSRC = mknod.2
+
openat.2 := LINKSRC = open.2
pipe2.2 := LINKSRC = pipe.2
@@ -348,6 +361,8 @@ putpmsg.2 := LINKSRC = putmsg.2
pread.2 := LINKSRC = read.2
readv.2 := LINKSRC = read.2
+readlinkat.2 := LINKSRC = readlink.2
+
renameat.2 := LINKSRC = rename.2
semtimedop.2 := LINKSRC = semop.2
@@ -366,6 +381,8 @@ shmdt.2 := LINKSRC = shmop.2
sigsendset.2 := LINKSRC = sigsend.2
+symlinkat.2 := LINKSRC = symlink.2
+
fstat.2 := LINKSRC = stat.2
fstatat.2 := LINKSRC = stat.2
lstat.2 := LINKSRC = stat.2
diff --git a/usr/src/man/man2/chmod.2 b/usr/src/man/man2/chmod.2
index cecd79a1e7..30734fa468 100644
--- a/usr/src/man/man2/chmod.2
+++ b/usr/src/man/man2/chmod.2
@@ -1,5 +1,6 @@
'\" te
.\" Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved.
+.\" Copyright (c) 2014, Joyent, Inc.
.\" Copyright 1989 AT&T.
.\" Portions Copyright (c) 2001, the Institute of Electrical and Electronics Engineers, Inc. and The Open Group. All Rights Reserved.
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
@@ -9,9 +10,9 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH CHMOD 2 "Sep 12, 2005"
+.TH CHMOD 2 "Dec 22, 2014"
.SH NAME
-chmod, fchmod \- change access permission mode of file
+chmod, fchmod, fchmodat \- change access permission mode of file
.SH SYNOPSIS
.LP
.nf
@@ -26,13 +27,17 @@ chmod, fchmod \- change access permission mode of file
\fBint\fR \fBfchmod\fR(\fBint\fR \fIfildes\fR, \fBmode_t\fR \fImode\fR);
.fi
+.LP
+.nf
+\fBint\fR \fBfchmodat\fR(\fBint\fR \fIfildes\fR, \fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR, \fBint\fR \fIflag\fR);
+.fi
+
.SH DESCRIPTION
-.sp
.LP
-The \fBchmod()\fR and \fBfchmod()\fR functions set the access permission
-portion of the mode of the file whose name is given by \fIpath\fR or referenced
-by the open file descriptor \fIfildes\fR to the bit pattern contained in
-\fImode\fR. Access permission bits are interpreted as follows:
+The \fBchmod()\fR, \fBfchmod()\fR, and \fBfchmodat()\fR functions set the access
+permission portion of the mode of the file whose name is given by \fIpath\fR or
+referenced by the open file descriptor \fIfildes\fR to the bit pattern contained
+in \fImode\fR. Access permission bits are interpreted as follows:
.sp
.sp
@@ -142,18 +147,27 @@ system name space with \fBfattach\fR(3C), the \fBfchmod()\fR call performs no
action and returns successfully.
.sp
.LP
-Upon successful completion, \fBchmod()\fR and \fBfchmod()\fR mark for update
-the \fBst_ctime\fR field of the file.
-.SH RETURN VALUES
+The \fBfchmodat()\fR function behaves similarly to \fBchmod()\fR, except when
+\fIpath\fR is a relative path, it is resolved relative to the directory
+specified by \fIfiledes\fR. If \fBfiledes\fR has the value \fBAT_FDCWD\fR, then
+\fBpath\fR will be resolved relative to the current working directory. The
+argument \fIflag\fR should be zero, but may include the value
+\fBAT_SYMLINK_NOFOLLOW\fR, which indicates that if \fIpath\fR refers to a
+symbolic link, then permissions should be changed on the symbolic link itself.
+However, changing permissions of symbolic links is not supported on illumos, and
+will result in an error.
.sp
.LP
+Upon successful completion, \fBchmod()\fR, \fBfchmod()\fR, \fBfchmodat()\fR mark
+for update the \fBst_ctime\fR field of the file.
+.SH RETURN VALUES
+.LP
Upon successful completion, \fB0\fR is returned. Otherwise, \fB\(mi1\fR is
returned, the file mode is unchanged, and \fBerrno\fR is set to indicate the
error.
.SH ERRORS
-.sp
.LP
-The \fBchmod()\fR and \fBfchmod()\fR functions will fail if:
+The \fBchmod()\fR, \fBfchmod()\fR, and \fBfchmodat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -183,14 +197,15 @@ apply. See \fBprivileges\fR(5).
.sp
.LP
-The \fBchmod()\fR function will fail if:
+The \fBchmod()\fR and \fBfchmodat()\fR functions will fail if:
.sp
.ne 2
.na
\fB\fBEACCES\fR\fR
.ad
.RS 16n
-Search permission is denied on a component of the path prefix of \fIpath\fR.
+Search permission is denied on a component of the path prefix of \fIpath\fR and
+for \fBfchmodat()\fR, \fBfiledes\fR was not opened with \fBO_SEARCH\fR requsted.
The privilege {\fBFILE_DAC_SEARCH\fR} overrides file permissions restrictions
in that case.
.RE
@@ -317,7 +332,49 @@ The value of the \fImode\fR argument is invalid.
.sp
.LP
-The \fBchmod()\fR function may fail if:
+The \fBfchmodat()\fR will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+The argument \fIpath\fR is a relative path and \fIfiledes\fR is not an open file
+descriptor or the value \fBAT_FDCWD\fR.
+.RE
+
+.sp
+.ne 2
+.na
+.B EINVAL
+.ad
+.RS 16n
+The argument \fIflags\fR has a non-zero value other than
+\fBAT_SYMLINK_NOFOLLOW\fR.
+.RE
+
+.sp
+.ne 2
+.na
+.B ENOTDIR
+.ad
+.RS 16n
+The argument \fIpath\fR is a relative path and \fIfiledes\fR is a valid file
+descriptor which does not refer to a file.
+.RE
+
+.sp
+.ne 2
+.na
+.B EOPNOTSUPP
+.ad
+.RS 16n
+The \fBAT_SYMLINK_NOFOLLOW\fR bit is set in the \fIflags\fR argument.
+.RE
+
+.sp
+.LP
+The \fBchmod()\fR and \fBfchmodat()\fR functions may fail if:
.sp
.ne 2
.na
@@ -334,7 +391,7 @@ resolution of the \fIpath\fR argument.
\fB\fBENAMETOOLONG\fR\fR
.ad
.RS 16n
-As a result of encountering a symbolic link in resolution of the\fIpath\fR
+As a result of encountering a symbolic link in resolution of the \fIpath\fR
argument, the length of the substituted pathname strings exceeds
{\fBPATH_MAX\fR}.
.RE
@@ -425,7 +482,6 @@ status = stat("home/cnd/mod1", &buffer;);
.in -2
.SH USAGE
-.sp
.LP
If \fBchmod()\fR or \fBfchmod()\fR is used to change the file group owner
permissions on a file with non-trivial ACL entries, only the ACL mask is set to
@@ -435,7 +491,6 @@ one whose meaning cannot be represented in the file's mode field alone. The new
ACL mask permissions might change the effective permissions for additional
users and groups that have ACL entries on the file.
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -453,7 +508,6 @@ MT-Level Async-Signal-Safe
.TE
.SH SEE ALSO
-.sp
.LP
\fBchmod\fR(1), \fBchown\fR(2), \fBcreat\fR(2), \fBfcntl\fR(2), \fBmknod\fR(2),
\fBopen\fR(2), \fBread\fR(2), \fBrename\fR(2), \fBstat\fR(2), \fBwrite\fR(2),
diff --git a/usr/src/man/man2/link.2 b/usr/src/man/man2/link.2
index 479c1fe202..b9cb8fb288 100644
--- a/usr/src/man/man2/link.2
+++ b/usr/src/man/man2/link.2
@@ -1,12 +1,13 @@
'\" te
.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" Copyright (c) 2014, Joyent, Inc.
.\" Copyright 1989 AT&T
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH LINK 2 "May 18, 2007"
.SH NAME
-link \- link to a file
+link, linkat \- link to a file
.SH SYNOPSIS
.LP
.nf
@@ -14,14 +15,19 @@ link \- link to a file
\fBint\fR \fBlink\fR(\fBconst char *\fR\fIexisting\fR, \fBconst char *\fR\fInew\fR);
.fi
+.LP
+.nf
+\fBint\fR \fBlinkat\fR(\fBint\fR \fIefd\fR, \fBconst char *\fR\fIexisting\fR, \fBint\fR \fInfd\fR,
+ \fBconst char *\fR\fInew\fR, \fBint\fR \fIflag\fR);
+.fi
.SH DESCRIPTION
-.sp
.LP
-The \fBlink()\fR function creates a new link (directory entry) for the existing
-file and increments its link count by one. The \fIexisting\fR argument points
-to a path name naming an existing file. The \fInew\fR argument points to a
-pathname naming the new directory entry to be created.
+The \fBlink()\fR and \fBlinkat()\fR functions create a new link (directory
+entry) for the existing file and increments its link count by one. The
+\fIexisting\fR argument points to a path name naming an existing file. The
+\fInew\fR argument points to a pathname naming the new directory entry to be
+created.
.sp
.LP
To create hard links, both files must be on the same file system. Both the old
@@ -30,18 +36,29 @@ Privileged processes can make multiple links to a directory. Unless the caller
is privileged, the file named by \fIexisting\fR must not be a directory.
.sp
.LP
-Upon successful completion, \fBlink()\fR marks for update the \fBst_ctime\fR
-field of the file. Also, the \fBst_ctime\fR and \fBst_mtime\fR fields of the
-directory that contains the new entry are marked for update.
-.SH RETURN VALUES
+The \fBlinkat()\fR function is similar to \fBlink()\fR. If the path
+\fIexisting\fR is a relative path, then the directory represented by \fIefd\fR
+will be used as the starting point to resolve \fIexisting\fR. If the path
+\fInew\fR is a relative path, then the directory represented by \fInfd\fR will
+be used as the starting point to resolve \fInew\fR. Both \fIefd\fR and \fInfd\fR
+may be the special value \fBAT_FDCWD\fR which causes the current working
+directory to be used as the starting point for path resolution.
.sp
.LP
+By default, \fBlinkat()\fR does not follow symbolic links. To cause it to follow
+symbolic links, the value of \fIflag\fR should be \fBAT_SYMLINK_FOLLOW\fR.
+.sp
+.LP
+Upon successful completion, \fBlink()\fR and \fBlinkat()\fR mark for update the
+\fBst_ctime\fR field of the file. Also, the \fBst_ctime\fR and \fBst_mtime\fR
+fields of the directory that contains the new entry are marked for update.
+.SH RETURN VALUES
+.LP
Upon successful completion, \fB0\fR is returned. Otherwise, \fB\(mi1\fR is
returned, no link is created, and \fBerrno\fR is set to indicate the error.
.SH ERRORS
-.sp
.LP
-The \fBlink()\fR function will fail if:
+The \fBlink()\fR and \fBlinkat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -97,7 +114,8 @@ file names where all characters are part of the UTF-8 character codeset.
\fB\fBEINTR\fR\fR
.ad
.RS 16n
-A signal was caught during the execution of the \fBlink()\fR function.
+A signal was caught during the execution of the \fBlink()\fR or \fBlinkat()\fR
+functions.
.RE
.sp
@@ -202,9 +220,42 @@ The link named by \fInew\fR and the file named by \fIexisting\fR are on
different logical devices (file systems).
.RE
-.SH ATTRIBUTES
.sp
.LP
+The \fBlinkat()\fR functions will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+If either \fIexisting\fR or \fInew\fR is a relative path and \fIefd\fR or
+\fInfd\fR respectively are not a valid file descriptor or the value
+\fBAT_FDCWD\fR.
+.RE
+
+.sp
+.ne 2
+.na
+.B EINVAL
+.ad
+.RS 16n
+An invalid value is set in \fIflag\fR. The only valid values are \fB0\fR and
+\fBfBAT_SYMLINK_FOLLOW\fR.
+.RE
+
+.sp
+.ne 2
+.na
+.B ENOTDIR
+.ad
+.RS 16n
+If either \fIexisting\fR or \fInew\fR is a relative path and \fIefd\fR or
+\fInfd\fR respectively refer to a valid descriptor which is not a directory.
+.RE
+
+.SH ATTRIBUTES
+.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -221,7 +272,6 @@ MT-Level Async-Signal-Safe
.TE
.SH SEE ALSO
-.sp
.LP
\fBsymlink\fR(2), \fBunlink\fR(2), \fBattributes\fR(5), \fBprivileges\fR(5),
\fBstandards\fR(5)
diff --git a/usr/src/man/man2/mkdir.2 b/usr/src/man/man2/mkdir.2
index 6649c96c7d..902c3fd8d2 100644
--- a/usr/src/man/man2/mkdir.2
+++ b/usr/src/man/man2/mkdir.2
@@ -1,5 +1,6 @@
'\" te
.\" Copyright (c) 2007, Sun Microsystems, Inc. All Rights Reserved.
+.\" Copyright (c) 2014, Joyent, Inc.
.\" Copyright 1989 AT&T
.\" Portions Copyright (c) 2001, the Institute of Electrical and Electronics Engineers, Inc. and The Open Group. All Rights Reserved.
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
@@ -9,9 +10,9 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH MKDIR 2 "May 18, 2007"
+.TH MKDIR 2 "Dec 23, 2014"
.SH NAME
-mkdir \- make a directory
+mkdir, mkdirat \- make a directory
.SH SYNOPSIS
.LP
.nf
@@ -20,15 +21,18 @@ mkdir \- make a directory
\fBint\fR \fBmkdir\fR(\fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR);
.fi
+.LP
+.nf
+\fBint\fR \fBmkdirat\fR(\fBint\fR \fIfd\fR, \fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR);
+.fi
.SH DESCRIPTION
-.sp
.LP
-The \fBmkdir()\fR function creates a new directory named by the path name
-pointed to by \fIpath\fR. The mode of the new directory is initialized from
-\fImode\fR (see \fBchmod\fR(2) for values of mode). The protection part of the
-\fImode\fR argument is modified by the process's file creation mask (see
-\fBumask\fR(2)).
+The \fBmkdir()\fR and \fBmkidrat()\fR functions create a new directory named by
+the path name pointed to by \fIpath\fR. The mode of the new directory is
+initialized from \fImode\fR (see \fBchmod\fR(2) for values of mode). The
+protection part of the \fImode\fR argument is modified by the process's file
+creation mask (see \fBumask\fR(2)).
.sp
.LP
The directory's owner \fBID\fR is set to the process's effective user ID. The
@@ -38,28 +42,32 @@ of the directory is inherited from the parent. The \fBS_ISGID\fR bit of the
new directory is inherited from the parent directory.
.sp
.LP
-If \fIpath\fR names a symbolic link, \fBmkdir()\fR fails and sets errno to
-\fBEEXIST\fR.
+If \fIpath\fR names a symbolic link, \fBmkdir()\fR and \fBmkdirat()\fR fail and
+set errno to \fBEEXIST\fR.
.sp
.LP
The newly created directory is empty with the exception of entries for itself
(\fB\&.\fR) and its parent directory (\fB\&..\fR).
.sp
.LP
-Upon successful completion, \fBmkdir()\fR marks for update the \fBst_atime\fR,
-\fBst_ctime\fR and \fBst_mtime\fR fields of the directory. Also, the
-\fBst_ctime\fR and \fBst_mtime\fR fields of the directory that contains the new
-entry are marked for update.
-.SH RETURN VALUES
+The \fBmkdirat()\fR function behaves similarly to \fBmkdir()\fR; however, if
+\fIpath\fR is a relative path, then the directory represented by \fBfd\fR is
+used as the starting point for resolving \fIpath\fR. To use the processes
+current working directory, \fIfd\fR may be set to the value \fBAT_FDCWD\fR.
.sp
.LP
+Upon successful completion, \fBmkdir()\fR and \fBmkdirat()\fR mark for update
+the \fBst_atime\fR, \fBst_ctime\fR and \fBst_mtime\fR fields of the directory.
+Also, the \fBst_ctime\fR and \fBst_mtime\fR fields of the directory that
+contains the new entry are marked for update.
+.SH RETURN VALUES
+.LP
Upon successful completion, \fB0\fR is returned. Otherwise, \fB\(mi1\fR is
returned, no directory is created, and \fBerrno\fR is set to indicate the
error.
.SH ERRORS
-.sp
.LP
-The \fBmkdir()\fR function will fail if:
+The \fBmkdir()\fR and \fBmkdirat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -193,7 +201,9 @@ No free space is available on the device containing the directory.
\fB\fBENOTDIR\fR\fR
.ad
.RS 16n
-A component of the path prefix is not a directory.
+A component of the path prefix is not a directory. For \fBlinkat()\fR, if
+\fIpath\fR is a relative path and \fIfd\fR refers to a valid file descriptor
+which is not a directory.
.RE
.sp
@@ -207,6 +217,19 @@ The path prefix resides on a read-only file system.
.sp
.LP
+The \fBmkdirat()\fR function will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+The path \fIpath\fR is a relative path and \fIfd\fR is not a valid open file
+descriptor or the value \fBAT_FDCWD\fR.
+.RE
+
+.sp
+.LP
The \fBmkdir()\fR function may fail if:
.sp
.ne 2
@@ -241,7 +264,6 @@ status = mkdir("/home/cnd/mod1",
.in -2
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -259,7 +281,6 @@ MT-Level Async-Signal-Safe
.TE
.SH SEE ALSO
-.sp
.LP
\fBchmod\fR(2), \fBmknod\fR(2), \fBumask\fR(2), \fBmkdirp\fR(3GEN),
\fBstat.h\fR(3HEAD), \fBattributes\fR(5), \fBstandards\fR(5)
diff --git a/usr/src/man/man2/mknod.2 b/usr/src/man/man2/mknod.2
index e50db4b73f..9d2378a66a 100644
--- a/usr/src/man/man2/mknod.2
+++ b/usr/src/man/man2/mknod.2
@@ -1,4 +1,5 @@
'\" te
+.\" Copright (c) 2014, Joyent, Inc.
.\" Copyright 1989 AT&T. Copyright (c) 2004 Sun Microsystems, Inc. All Rights Reserved. Portions Copyright (c) 1992, X/Open Company Limited. All Rights Reserved.
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
.\" http://www.opengroup.org/bookstore/.
@@ -9,7 +10,7 @@
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH MKNOD 2 "Feb 19, 2004"
.SH NAME
-mknod \- make a directory, a special file, or a regular file
+mknod, mknodat \- make a directory, a special file, or a regular file
.SH SYNOPSIS
.LP
.nf
@@ -17,13 +18,16 @@ mknod \- make a directory, a special file, or a regular file
\fBint\fR \fBmknod\fR(\fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR, \fBdev_t\fR \fIdev\fR);
.fi
+.LP
+.nf
+\fBint\fR \fBmknodat(\fBint\fR \fIfd\fR, \fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR, \fBdev_t\fR \fIdev\fR);
+.fi
.SH DESCRIPTION
-.sp
.LP
-The \fBmknod()\fR function creates a new file named by the path name pointed to
-by \fIpath\fR. The file type and permissions of the new file are initialized
-from \fImode\fR.
+The \fBmknod()\fR and \fBmknodat()\fR function creates a new file named by the
+path name pointed to by \fIpath\fR. The file type and permissions of the new
+file are initialized from \fImode\fR.
.sp
.LP
The file type is specified in \fImode\fR by the \fBS_IFMT\fR bits, which must
@@ -126,16 +130,20 @@ or character special device, \fIdev\fR is ignored. See \fBmakedev\fR(3C).
.sp
.LP
If \fIpath\fR is a symbolic link, it is not followed.
-.SH RETURN VALUES
.sp
.LP
-Upon successful completion, \fBmknod()\fR returns \fB0\fR. Otherwise, it
-returns \fB\(mi1\fR, the new file is not created, and \fBerrno\fR is set to
-indicate the error.
+The \fBmknodat()\fR function is similar to \fBmknod()\fR; however, when
+\fIpath\fR is a relative path, it is resolved starting at the directory
+represented by the file descriptor \fIfd\fR. To start at the current working
+directory, \fIfd\fR may be set to the special value \fBAT_FDCWD\fR.
+.SH RETURN VALUES
+.LP
+Upon successful completion, \fBmknod()\fR and \fBmknodat()\fR return \fB0\fR.
+Otherwise, they return \fB\(mi1\fR, the new file is not created, and \fBerrno\fR
+is set to indicate the error.
.SH ERRORS
-.sp
.LP
-The \fBmknod()\fR function will fail if:
+The \fBmknod()\fR and \fBmknodat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -259,7 +267,9 @@ system is out of file allocation resources.
\fB\fBENOTDIR\fR\fR
.ad
.RS 16n
-A component of the path prefix is not a directory.
+A component of the path prefix is not a directory. In addition, when calling
+\fBmknodat()\fR, if \fIpath\fR is a relative path and \fIfd\fR is a valid file
+descriptor which does not refer to a directory.
.RE
.sp
@@ -283,6 +293,19 @@ system.
.sp
.LP
+The \fBmknodat()\fR function will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+The \fIpath\fR argument is a relative path and \fIfd\fR is not a valid open file
+descriptor or the special value \fBAT_FDCWD\fR.
+.RE
+
+.sp
+.LP
The \fBmknod()\fR function may fail if:
.sp
.ne 2
@@ -295,7 +318,6 @@ length exceeds {\fBPATH_MAX\fR}.
.RE
.SH USAGE
-.sp
.LP
Applications should use the \fBmkdir\fR(2) function to create a directory
because appropriate permissions are not required and because \fBmknod()\fR
@@ -310,7 +332,6 @@ system using \fBfattach\fR(3C). Symbolic links can be created using
\fBsymlink\fR(2). An endpoint for communication can be created using
\fBsocket\fR(3SOCKET).
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -328,7 +349,6 @@ MT-Level Async-Signal-Safe
.TE
.SH SEE ALSO
-.sp
.LP
\fBchmod\fR(2), \fBcreat\fR(2), \fBexec\fR(2), \fBmkdir\fR(2), \fBopen\fR(2),
\fBstat\fR(2), \fBsymlink\fR(2), \fBumask\fR(2), \fBdoor_create\fR(3C),
diff --git a/usr/src/man/man2/open.2 b/usr/src/man/man2/open.2
index 461bcb2742..0978f5a3e5 100644
--- a/usr/src/man/man2/open.2
+++ b/usr/src/man/man2/open.2
@@ -10,7 +10,7 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH OPEN 2 "Nov 16, 2013"
+.TH OPEN 2 "Dec 23, 2014"
.SH NAME
open, openat \- open a file
.SH SYNOPSIS
@@ -30,7 +30,6 @@ open, openat \- open a file
.fi
.SH DESCRIPTION
-.sp
.LP
The \fBopen()\fR function establishes the connection between a file and a file
descriptor. It creates an open file description that refers to a file and a
@@ -168,6 +167,19 @@ regardless of the contents of the symbolic link. If \fBO_EXCL\fR is set and
.sp
.ne 2
.na
+.B O_EXEC
+.na
+.ad
+.sp .6
+.RS 4n
+If set, indicates that the file should be opened for execute permission.
+This option is only valid for regular files, an error will be returned
+if it is not.
+.RE
+
+.sp
+.ne 2
+.na
\fB\fBO_LARGEFILE\fR\fR
.ad
.sp .6
@@ -296,6 +308,18 @@ file integrity completion.
.sp
.ne 2
.na
+.B O_SEARCH
+.ad
+.sp .6
+.RS 4n
+If set, indicates that the directory should be opened for searching.
+This option is only valid for a directory, an error will be returned if
+it is not.
+.RE
+
+.sp
+.ne 2
+.na
\fB\fBO_SYNC\fR\fR
.ad
.sp .6
@@ -420,14 +444,12 @@ Certain flag values can be set following \fBopen()\fR as described in
The largest value that can be represented correctly in an object of type
\fBoff_t\fR is established as the offset maximum in the open file description.
.SH RETURN VALUES
-.sp
.LP
Upon successful completion, the \fBopen()\fR function opens the file and return
a non-negative integer representing the lowest numbered unused file descriptor.
Otherwise, \fB\(mi1\fR is returned, \fBerrno\fR is set to indicate the error,
and no files are created or modified.
.SH ERRORS
-.sp
.LP
The \fBopen()\fR and \fBopenat()\fR functions will fail if:
.sp
@@ -632,6 +654,16 @@ The \fBO_CREAT\fR flag is not set and the named file does not exist; or the
.sp
.ne 2
.na
+.B ENOEXEC
+.ad
+.RS 16n
+The \fBO_EXEC\fR flag is set and \fIpath\fR does not point to a regular
+file.
+.RE
+
+.sp
+.ne 2
+.na
\fB\fBENOLINK\fR\fR
.ad
.RS 16n
@@ -676,7 +708,8 @@ The device specified by \fIpath\fR does not support the open operation.
.RS 16n
A component of the path prefix is not a directory or a relative path was
supplied to \fBopenat()\fR, the \fBO_XATTR\fR flag was not supplied, and the
-file descriptor does not refer to a directory.
+file descriptor does not refer to a directory. The \fBO_SEARCH\fR flag
+was passed and \fIpath\fR does not refer to a directory.
.RE
.sp
@@ -877,13 +910,11 @@ if ((pfd = open(filename, O_WRONLY | O_CREAT | O_TRUNC,
.in -2
.SH USAGE
-.sp
.LP
The \fBopen()\fR function has a transitional interface for 64-bit file offsets.
See \fBlf64\fR(5). Note that using \fBopen64()\fR is equivalent to using
\fBopen()\fR with \fBO_LARGEFILE\fR set in \fIoflag\fR.
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -903,7 +934,6 @@ Standard For \fBopen()\fR, see \fBstandards\fR(5).
.TE
.SH SEE ALSO
-.sp
.LP
\fBIntro\fR(2), \fBchmod\fR(2), \fBclose\fR(2), \fBcreat\fR(2), \fBdup\fR(2),
\fBexec\fR(2), \fBfcntl\fR(2), \fBgetmsg\fR(2), \fBgetrlimit\fR(2),
@@ -912,7 +942,6 @@ Standard For \fBopen()\fR, see \fBstandards\fR(5).
\fBunlockpt\fR(3C), \fBattributes\fR(5), \fBlf64\fR(5), \fBprivileges\fR(5),
\fBstandards\fR(5), \fBconnld\fR(7M), \fBstreamio\fR(7I)
.SH NOTES
-.sp
.LP
Hierarchical Storage Management (HSM) file systems can sometimes cause long
delays when opening a file, since HSM files must be recalled from secondary
diff --git a/usr/src/man/man2/readlink.2 b/usr/src/man/man2/readlink.2
index 1cc3d38181..2240be79c0 100644
--- a/usr/src/man/man2/readlink.2
+++ b/usr/src/man/man2/readlink.2
@@ -1,4 +1,5 @@
'\" te
+.\" Copyright (c) 2014, Joyent, Inc.
.\" Copyright 1989 AT&T. Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved. Portions Copyright (c) 1992, X/Open Company Limited. All Rights Reserved.
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
.\" http://www.opengroup.org/bookstore/.
@@ -7,7 +8,7 @@
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
-.TH READLINK 2 "Dec 1, 2003"
+.TH READLINK 2 "Dec 23, 2014"
.SH NAME
readlink \- read the contents of a symbolic link
.SH SYNOPSIS
@@ -18,26 +19,34 @@ readlink \- read the contents of a symbolic link
\fBssize_t\fR \fBreadlink\fR(\fBconst char *restrict\fR \fIpath\fR,
\fBchar *restrict\fR \fIbuf\fR, \fBsize_t\fR \fIbufsiz\fR);
.fi
+.LP
+.nf
+\fBssize_t\fR \fBreadlinkat\fR(\fBint\fR \fIfd\fR, \fBconst char *restrict\fR \fIpath\fR,
+ \fBchar *restrict\fR \fIbuf\fR, \fBsize_t\fR \fIbufsiz\fR);
+.fi
.SH DESCRIPTION
+.LP
+The \fBreadlink()\fR and \fBreadlinkat()\fR functions place the contents of the
+symbolic link referred to by \fIpath\fR in the buffer \fIbuf\fR which has size
+\fIbufsiz\fR. If the number of bytes in the symbolic link is less than
+\fIbufsiz\fR, the contents of the remainder of \fIbuf\fR are left unchanged. If
+the \fIbuf\fR argument is not large enough to contain the link content, the
+first \fIbufsize\fR bytes are placed in \fIbuf\fR.
.sp
.LP
-The \fBreadlink()\fR function places the contents of the symbolic link referred
-to by \fIpath\fR in the buffer \fIbuf\fR which has size \fIbufsiz\fR. If the
-number of bytes in the symbolic link is less than \fIbufsiz\fR, the contents of
-the remainder of \fIbuf\fR are left unchanged. If the \fIbuf\fR argument is not
-large enough to contain the link content, the first \fIbufsize\fR bytes are
-placed in \fIbuf\fR.
+The \fBrealinkat()\fR function behaves similarly to \fBreadlink()\fR; however,
+when \fIpath\fR is a relative path, it is resolved relative to the directory
+referred to by \fIfd\fR. To use the current working directory, \fIfd\fR should
+be the special value \fBAT_FDCWD\fR.
.SH RETURN VALUES
-.sp
.LP
-Upon successful completion, \fBreadlink()\fR returns the count of bytes placed
-in the buffer. Otherwise, it returns \fB\(mi1\fR, leaves the buffer
-unchanged, and sets \fBerrno\fR to indicate the error.
+Upon successful completion, \fBreadlink()\fR and \fBreadlinkat()\fR return the
+count of bytes placed in the buffer. Otherwise, they returns \fB\(mi1\fR, leave
+the buffer unchanged, and set \fBerrno\fR to indicate the error.
.SH ERRORS
-.sp
.LP
-The \fBreadlink()\fR function will fail if:
+The \fBreadlink()\fR and \fBreadlinkat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -110,7 +119,9 @@ longer than {\fBNAME_MAX\fR} while \fB_POSIX_NO_TRUNC\fR is in effect.
\fB\fBENOTDIR\fR\fR
.ad
.RS 16n
-A component of the path prefix is not a directory.
+A component of the path prefix is not a directory. For \fBreadlinkat()\fR, if
+\fIpath\fR is a relative path and \fIfd\fR refers to a valid file descriptor
+which is not a directory.
.RE
.sp
@@ -124,6 +135,19 @@ The file system does not support symbolic links.
.sp
.LP
+The \fBreadlinkat()\fR function will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+The \fIpath\fR argument is a relative path and \fIfd\fR is not a valid, open
+file descriptor or the special value \fBAT_FDCWD\fR.
+.RE
+
+.sp
+.LP
The \fBreadlink()\fR function may fail if:
.sp
.ne 2
@@ -155,12 +179,10 @@ the length of the substituted pathname string exceeded {\fBPATH_MAX\fR}.
.RE
.SH USAGE
-.sp
.LP
Portable applications should not assume that the returned contents of the
symbolic link are null-terminated.
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -178,6 +200,5 @@ MT-Level Async-Signal-Safe
.TE
.SH SEE ALSO
-.sp
.LP
\fBstat\fR(2), \fBsymlink\fR(2), \fBattributes\fR(5), \fBstandards\fR(5)
diff --git a/usr/src/man/man2/symlink.2 b/usr/src/man/man2/symlink.2
index 11d440cc67..4bb9b4f5a6 100644
--- a/usr/src/man/man2/symlink.2
+++ b/usr/src/man/man2/symlink.2
@@ -14,9 +14,12 @@ symlink \- make a symbolic link to a file
\fBint\fR \fBsymlink\fR(\fBconst char *\fR\fIname1\fR, \fBconst char *\fR\fIname2\fR);
.fi
+.LP
+.nf
+\fBint\fR \fBsymlinkat\fR(\fBconst char *\fR\fIname1\fR, \fBint\fR \fIfd\fR, \fBconst char *\fR\fIname2\fR);
+.fi
.SH DESCRIPTION
-.sp
.LP
The \fBsymlink()\fR function creates a symbolic link \fIname2\fR to the file
\fIname1\fR. Either name may be an arbitrary pathname, the files need not be on
@@ -30,16 +33,21 @@ returns information about the link itself. See \fBstat\fR(2). Unexpected
results may occur when a symbolic link is made to a directory. To avoid
confusion in applications, the \fBreadlink\fR(2) call can be used to read the
contents of a symbolic link.
-.SH RETURN VALUES
.sp
.LP
+The \fBsymlinkat()\fR function behaves similarly to \fBsymlink()\fR; however,
+when \fIpath2\fR is a relative path, then it will be looked up relative to the
+directory specified by the file descriptor \fIfd\fR. To look up something in the
+current working directory, the special value \fBAT_FDCWD\fR may be passed into
+\fIfd\fR.
+.SH RETURN VALUES
+.LP
Upon successful completion, \fB0\fR is returned. Otherwise, \fB\(mi1\fR is
returned, \fBerrno\fR is set to indicate the error, and the symbolic link is
not made.
.SH ERRORS
-.sp
.LP
-The \fBsymlink()\fR function will fail if:
+The \fBsymlink()\fR and \fBsymlinkat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -157,7 +165,9 @@ The file system does not support symbolic links.
\fB\fBENOTDIR\fR\fR
.ad
.RS 16n
-A component of the path prefix of \fIname2\fR is not a directory.
+A component of the path prefix of \fIname2\fR is not a directory. For
+\fBsymlinkat()\fR, if \fIpath2\fR refers to a relative path and \fIfd\fR is a
+valid file descriptor that is not a directory.
.RE
.sp
@@ -169,9 +179,21 @@ A component of the path prefix of \fIname2\fR is not a directory.
The file \fIname2\fR would reside on a read-only file system.
.RE
-.SH ATTRIBUTES
.sp
.LP
+The \fBsymlinkat()\fR function will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+The \fIpath2\fR argument is a relative path, and \fIfd\fR is not a valid, open
+file descriptor or the special value \fBAT_FDCWD\fR.
+.RE
+
+.SH ATTRIBUTES
+.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -186,7 +208,6 @@ Interface Stability Standard
.TE
.SH SEE ALSO
-.sp
.LP
\fBcp\fR(1), \fBlink\fR(2), \fBopen\fR(2), \fBreadlink\fR(2), \fBstat\fR(2),
\fBunlink\fR(2), \fBattributes\fR(5)
diff --git a/usr/src/man/man3c/Makefile b/usr/src/man/man3c/Makefile
index 768917447e..5ed555b26a 100644
--- a/usr/src/man/man3c/Makefile
+++ b/usr/src/man/man3c/Makefile
@@ -930,6 +930,7 @@ MANLINKS= FD_CLR.3c \
memset.3c \
minor.3c \
mkdtemp.3c \
+ mkfifoat.3c \
mkostemp.3c \
mkostemps.3c \
mkstemps.3c \
@@ -1847,6 +1848,8 @@ memmem.3c := LINKSRC = memory.3c
memmove.3c := LINKSRC = memory.3c
memset.3c := LINKSRC = memory.3c
+mkfifoat.3c := LINKSRC = mkfifo.3c
+
mkdtemp.3c := LINKSRC = mkstemp.3c
mkostemp.3c := LINKSRC = mkstemp.3c
mkostemps.3c := LINKSRC = mkstemp.3c
diff --git a/usr/src/man/man3c/mkfifo.3c b/usr/src/man/man3c/mkfifo.3c
index 29de2b15e3..e77e35ff12 100644
--- a/usr/src/man/man3c/mkfifo.3c
+++ b/usr/src/man/man3c/mkfifo.3c
@@ -1,5 +1,6 @@
'\" te
.\" Copyright (c) 2002, Sun Microsystems, Inc. All Rights Reserved.
+.\" Copyright (c) 2014, Joyent, Inc.
.\" Copyright 1989 AT&T
.\" Portions Copyright (c) 2001, the Institute of Electrical and Electronics Engineers, Inc. and The Open Group. All Rights Reserved.
.\" Sun Microsystems, Inc. gratefully acknowledges The Open Group for permission to reproduce portions of its copyrighted documentation. Original documentation from The Open Group can be obtained online at
@@ -11,7 +12,7 @@
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH MKFIFO 3C "Apr 24, 2002"
.SH NAME
-mkfifo \- make a FIFO special file
+mkfifo, mkfifoat \- make a FIFO special file
.SH SYNOPSIS
.LP
.nf
@@ -20,19 +21,23 @@ mkfifo \- make a FIFO special file
\fBint\fR \fBmkfifo\fR(\fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR);
.fi
+.LP
+.nf
+\fBint\fR \fBmkfifoat\fR(\fBint\fR \fIfd\fR, \fBconst char *\fR\fIpath\fR, \fBmode_t\fR \fImode\fR);
+.fi
.SH DESCRIPTION
-.sp
.LP
-The \fBmkfifo()\fR function creates a new FIFO special file named by the
-pathname pointed to by \fIpath\fR. The file permission bits of the new FIFO
-are initialized from \fImode\fR. The file permission bits of the \fImode\fR
-argument are modified by the process's file creation mask (see \fBumask\fR(2)).
-Bits other than the file permission bits in \fImode\fR are ignored.
+The \fBmkfifo()\fR and \fBmkfifoat()\fR functions create a new FIFO special file
+named by the pathname pointed to by \fIpath\fR. The file permission bits of the
+new FIFO are initialized from \fImode\fR. The file permission bits of the
+\fImode\fR argument are modified by the process's file creation mask (see
+\fBumask\fR(2)). Bits other than the file permission bits in \fImode\fR are
+ignored.
.sp
.LP
-If \fIpath\fR names a symbolic link, \fBmkfifo()\fR fails and sets \fBerrno\fR
-to \fBEEXIST\fR.
+If \fIpath\fR names a symbolic link, \fBmkfifo()\fR and \fBmkfifoat()\fR fail
+and set \fBerrno\fR to \fBEEXIST\fR.
.sp
.LP
The FIFO's user ID is set to the process's effective user ID. The FIFO's group
@@ -40,22 +45,28 @@ ID is set to the group ID of the parent directory or to the effective group ID
of the process.
.sp
.LP
-The \fBmkfifo()\fR function calls \fBmknod\fR(2) to create the file.
+The \fBmkfifoat()\fR function is equivalent to \fBmkfifo()\fR; however, if
+\fIpath\fr is a relative path, then it is resolved start at the directory
+represented by \fIfd\fR. \fIfd\fR may be set to the special value of
+\fBAT_FDCWD\fR which indicates that the current working directory should be used
+to start resolving \fIpath\fR.
.sp
.LP
-Upon successful completion, \fBmkfifo()\fR marks for update the \fBst_atime\fR,
-\fBst_ctime\fR, and \fBst_mtime\fR fields of the file. Also, the \fBst_ctime\fR
-and \fBst_mtime\fR fields of the directory that contains the new entry are
-marked for update.
-.SH RETURN VALUES
+The \fBmkfifo()\fR function calls \fBmknod\fR(2) to create the file. The
+\fBmkfifoat()\fR function calls \fBmknodat\fR(2) to create the file.
.sp
.LP
+Upon successful completion, \fBmkfifo()\fR and \fBmkfifoat()\fR mark for update
+the \fBst_atime\fR, \fBst_ctime\fR, and \fBst_mtime\fR fields of the file. Also,
+the \fBst_ctime\fR and \fBst_mtime\fR fields of the directory that contains the
+new entry are marked for update.
+.SH RETURN VALUES
+.LP
Upon successful completion, \fB0\fR is returned. Otherwise, \fB\(mi1\fR is
returned and \fBerrno\fR is set to indicate the error.
.SH ERRORS
-.sp
.LP
-The \fBmkfifo()\fR function will fail if:
+The \fBmkfifo()\fR and \fBmkfifoat()\fR functions will fail if:
.sp
.ne 2
.na
@@ -121,7 +132,9 @@ system is out of file-allocation resources.
\fB\fBENOTDIR\fR\fR
.ad
.RS 16n
-A component of the path prefix is not a directory.
+A component of the path prefix is not a directory. For \fBmkfifoat()\fR,
+\fIpath\fR is a relative path and \fIfd\fR is a valid file descriptor which is
+not a directory.
.RE
.sp
@@ -135,6 +148,19 @@ The named file resides on a read-only file system.
.sp
.LP
+The \fBmkfifoat()\fR function will fail if:
+.sp
+.ne 2
+.na
+.B EBADF
+.ad
+.RS 16n
+The \fIpath\fR argument is a relative path and \fIfd\fR is not a valid file
+descriptor or the value \fBAT_FDCWD\fR.
+.RE
+
+.sp
+.LP
The \fBmkfifo()\fR function may fail if:
.sp
.ne 2
@@ -177,7 +203,6 @@ status = mkfifo("/home/cnd/mod_done", S_IWUSR | S_IRUSR |
.in -2
.SH ATTRIBUTES
-.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes:
.sp
@@ -195,7 +220,6 @@ MT-Level MT-Safe
.TE
.SH SEE ALSO
-.sp
.LP
\fBmkdir\fR(1), \fBchmod\fR(2), \fBexec\fR(2), \fBmknod\fR(2), \fBumask\fR(2),
\fBstat.h\fR(3HEAD), \fBufs\fR(7FS), \fBattributes\fR(5), \fBstandards\fR(5)
diff --git a/usr/src/man/man3lib/libc.3lib b/usr/src/man/man3lib/libc.3lib
index 61da3d9c82..827bf53f28 100644
--- a/usr/src/man/man3lib/libc.3lib
+++ b/usr/src/man/man3lib/libc.3lib
@@ -222,6 +222,7 @@ l l .
\fBfaccessat\fR
\fBfacl\fR \fBfattach\fR
\fBfchdir\fR \fBfchmod\fR
+\fBfchmodat\fR
\fBfchown\fR \fBfchownat\fR
\fBfchroot\fR \fBfclose\fR
\fBfcloseall\fR \fBfcntl\fR
@@ -385,8 +386,8 @@ l l .
\fBlcong48\fR \fBldexp\fR
\fBldivide\fR \fBlexp10\fR
\fBlfind\fR \fBlfmt\fR
-\fBlink\fR \fBlio_listio\fR
-\fBllabs\fR
+\fBlink\fR \fBlinkat\fR
+\fBlio_listio\fR \fBllabs\fR
\fBlldiv\fR \fBllog10\fR
\fBllseek\fR \fBlltostr\fR
\fBlocaleconv\fR \fBlocaltime\fR
@@ -415,8 +416,10 @@ l l .
\fBmeminfo\fR \fBmemmem\fR
\fBmemmove\fR
\fBmemset\fR \fBmincore\fR
-\fBmkdir\fR \fBmkfifo\fR
-\fBmknod\fR \fBmkstemp\fR
+\fBmkdir\fR \fBmkdirat\fR
+\fBmkfifo\fR \fBmkfifoat\fR
+\fBmknod\fR \fBmknodat\fR
+\fBmkstemp\fR
\fBmktemp\fR \fBmktime\fR
\fBmlock\fR \fBmlockall\fR
\fBmmap\fR \fBmmapobj\fR
@@ -581,6 +584,7 @@ l l .
\fBre_comp\fR \fBre_exec\fR
\fBread\fR \fBreaddir\fR
\fBreaddir_r\fR \fBreadlink\fR
+\fBreadlinkat\fR
\fBreadv\fR \fBrealloc\fR
\fBrealpath\fR \fBreboot\fR
\fBregcmp\fR \fBregcomp\fR
@@ -696,6 +700,7 @@ l l .
\fBswab\fR \fBswapcontext\fR
\fBswapctl\fR \fBswprintf\fR
\fBswscanf\fR \fBsymlink\fR
+\fBsymlinkat\fR
\fBsync\fR \fBsync_instruction_memory\fR
\fBsysconf\fR \fBsysfs\fR
\fBsysinfo\fR \fBsyslog\fR
diff --git a/usr/src/pkg/manifests/system-kernel.man2.inc b/usr/src/pkg/manifests/system-kernel.man2.inc
index 6b05a8c5ab..c1b9076963 100644
--- a/usr/src/pkg/manifests/system-kernel.man2.inc
+++ b/usr/src/pkg/manifests/system-kernel.man2.inc
@@ -178,6 +178,7 @@ link path=usr/share/man/man2/faccessat.2 target=access.2
link path=usr/share/man/man2/facl.2 target=acl.2
link path=usr/share/man/man2/fchdir.2 target=chdir.2
link path=usr/share/man/man2/fchmod.2 target=chmod.2
+link path=usr/share/man/man2/fchmodat.2 target=chmod.2
link path=usr/share/man/man2/fchown.2 target=chown.2
link path=usr/share/man/man2/fchownat.2 target=chown.2
link path=usr/share/man/man2/fchroot.2 target=chroot.2
@@ -203,8 +204,11 @@ link path=usr/share/man/man2/getprojid.2 target=settaskid.2
link path=usr/share/man/man2/getrctl.2 target=setrctl.2
link path=usr/share/man/man2/gettaskid.2 target=settaskid.2
link path=usr/share/man/man2/intro.2 target=Intro.2
+link path=usr/share/man/man2/linkat.2 target=link.2
link path=usr/share/man/man2/lchown.2 target=chown.2
link path=usr/share/man/man2/lstat.2 target=stat.2
+link path=usr/share/man/man2/mkdirat.2 target=mkdir.2
+link path=usr/share/man/man2/mknodat.2 target=mknod.2
link path=usr/share/man/man2/openat.2 target=open.2
link path=usr/share/man/man2/pathconf.2 target=fpathconf.2
link path=usr/share/man/man2/pipe2.2 target=pipe.2
@@ -216,6 +220,7 @@ link path=usr/share/man/man2/pset_getattr.2 target=pset_setattr.2
link path=usr/share/man/man2/putacct.2 target=getacct.2
link path=usr/share/man/man2/putpmsg.2 target=putmsg.2
link path=usr/share/man/man2/pwrite.2 target=write.2
+link path=usr/share/man/man2/readlinkat.2 target=readlink.2
link path=usr/share/man/man2/readv.2 target=read.2
link path=usr/share/man/man2/renameat.2 target=rename.2
link path=usr/share/man/man2/sbrk.2 target=brk.2
@@ -236,6 +241,7 @@ link path=usr/share/man/man2/setustack.2 target=getustack.2
link path=usr/share/man/man2/shmat.2 target=shmop.2
link path=usr/share/man/man2/shmdt.2 target=shmop.2
link path=usr/share/man/man2/sigsendset.2 target=sigsend.2
+link path=usr/share/man/man2/symlinkat.2 target=symlink.2
link path=usr/share/man/man2/umount2.2 target=umount.2
link path=usr/share/man/man2/unlinkat.2 target=unlink.2
link path=usr/share/man/man2/utimensat.2 target=utimes.2
diff --git a/usr/src/pkg/manifests/system-library.man3c.inc b/usr/src/pkg/manifests/system-library.man3c.inc
index 5796c0588d..0440f9bc40 100644
--- a/usr/src/pkg/manifests/system-library.man3c.inc
+++ b/usr/src/pkg/manifests/system-library.man3c.inc
@@ -930,6 +930,7 @@ link path=usr/share/man/man3c/memmem.3c target=memory.3c
link path=usr/share/man/man3c/memmove.3c target=memory.3c
link path=usr/share/man/man3c/memset.3c target=memory.3c
link path=usr/share/man/man3c/minor.3c target=makedev.3c
+link path=usr/share/man/man3c/mkfifoat.3c target=mkfifo.3c
link path=usr/share/man/man3c/mkdtemp.3c target=mkstemp.3c
link path=usr/share/man/man3c/mkostemp.3c target=mkstemp.3c
link path=usr/share/man/man3c/mkostemps.3c target=mkstemp.3c