summaryrefslogtreecommitdiff
path: root/static/openbsd/man2/pathconf.2
diff options
context:
space:
mode:
Diffstat (limited to 'static/openbsd/man2/pathconf.2')
-rw-r--r--static/openbsd/man2/pathconf.2299
1 files changed, 299 insertions, 0 deletions
diff --git a/static/openbsd/man2/pathconf.2 b/static/openbsd/man2/pathconf.2
new file mode 100644
index 00000000..8be0618a
--- /dev/null
+++ b/static/openbsd/man2/pathconf.2
@@ -0,0 +1,299 @@
+.\" $OpenBSD: pathconf.2,v 1.26 2024/05/18 05:20:22 guenther Exp $
+.\" $NetBSD: pathconf.2,v 1.2 1995/02/27 12:35:22 cgd Exp $
+.\"
+.\" Copyright (c) 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)pathconf.2 8.1 (Berkeley) 6/4/93
+.\"
+.Dd $Mdocdate: May 18 2024 $
+.Dt PATHCONF 2
+.Os
+.Sh NAME
+.Nm pathconf ,
+.Nm pathconfat ,
+.Nm fpathconf
+.Nd get configurable pathname variables
+.Sh SYNOPSIS
+.In unistd.h
+.Ft long
+.Fn pathconf "const char *path" "int name"
+.Ft long
+.Fn fpathconf "int fd" "int name"
+.In fcntl.h
+.Ft long
+.Fn pathconfat "int fd" "const char *path" "int name" "int flag"
+.Sh DESCRIPTION
+The
+.Fn pathconf ,
+.Fn pathconfat ,
+and
+.Fn fpathconf
+functions provide a method for applications to determine the current
+value of a configurable system limit or option variable associated
+with a pathname or file descriptor.
+.Pp
+For
+.Fn pathconf ,
+the
+.Fa path
+argument is the name of a file or directory.
+For
+.Fn fpathconf ,
+the
+.Fa fd
+argument is an open file descriptor.
+The
+.Fa name
+argument specifies the system variable to be queried.
+Symbolic constants for each name value are found in the include file
+.In unistd.h .
+.Pp
+The available values are as follows:
+.Bl -tag -width "123456"
+.It Dv _PC_LINK_MAX
+The maximum file link count.
+.It Dv _PC_MAX_CANON
+The maximum number of bytes in a terminal canonical input line.
+.It Dv _PC_MAX_INPUT
+The maximum number of bytes for which space is available in
+a terminal input queue.
+.It Dv _PC_NAME_MAX
+The maximum number of bytes in a file name.
+.It Dv _PC_PATH_MAX
+The maximum number of bytes in a pathname.
+.It Dv _PC_PIPE_BUF
+The maximum number of bytes which will be written atomically to a pipe.
+.It Dv _PC_CHOWN_RESTRICTED
+Returns 1 if appropriate privileges are required for the
+.Xr chown 2
+system call, otherwise 0.
+.St -p1003.1-2001
+requires appropriate privilege in all cases, but this behavior was
+optional in prior editions of the standard.
+.It Dv _PC_NO_TRUNC
+Returns 1 if attempts to use pathname components longer than
+.Brq Dv NAME_MAX
+will result in an
+.Bq Er ENAMETOOLONG
+error; otherwise, such components will be truncated to
+.Brq Dv NAME_MAX .
+.St -p1003.1-2001
+requires the error in all cases, but this behavior was optional in prior
+editions of the standard, and some non-POSIX-compliant file systems do not
+support this behavior.
+.It Dv _PC_VDISABLE
+Returns the terminal character disabling value.
+.It Dv _PC_2_SYMLINKS
+Returns 1 if the filesystem supports the creation of symbolic links
+within the specified directory; the meaning of
+.Dv _PC_2_SYMLINKS
+is unspecified for non-directory files.
+.It Dv _PC_ALLOC_SIZE_MIN
+Minimum number of bytes of storage allocated for any portion of a file.
+.It Dv _PC_ASYNC_IO
+Returns 1 if asynchronous I/O is supported, otherwise 0.
+.It Dv _PC_FILESIZEBITS
+Number of bits needed to represent the maximum file size.
+.It Dv _PC_PRIO_IO
+Returns 1 if prioritized I/O is supported, otherwise 0.
+.It Dv _PC_REC_INCR_XFER_SIZE
+Recommended increment for file transfer sizes between _PC_REC_MIN_XFER_SIZE
+and _PC_REC_MAX_XFER_SIZE.
+.It Dv _PC_REC_MAX_XFER_SIZE
+Maximum recommended file transfer size.
+.It Dv _PC_REC_MIN_XFER_SIZE
+Minimum recommended file transfer size.
+.It Dv _PC_REC_XFER_ALIGN
+Recommended file transfer buffer alignment.
+.It Dv _PC_SYMLINK_MAX
+Maximum number of bytes in a symbolic link.
+.It Dv _PC_SYNC_IO
+Returns 1 if synchronized I/O is supported, otherwise 0.
+.It Dv _PC_TIMESTAMP_RESOLUTION
+The resolution in nanoseconds of file timestamps.
+.El
+.Pp
+The
+.Fn pathconfat
+function is equivalent to
+.Fn pathconf
+except in the case where
+.Fa path
+specifies a relative path.
+In this case the file to be changed is determined relative to the directory
+associated with the file descriptor
+.Fa fd
+instead of the current working directory.
+.Pp
+If
+.Fn pathconfat
+is passed the special value
+.Dv AT_FDCWD
+(defined in
+.In fcntl.h )
+in the
+.Fa fd
+parameter, the current working directory is used.
+If
+.Fa flag
+is also zero, the behavior is identical to a call to
+.Fn pathconf .
+.Pp
+The
+.Fa flag
+argument is the bitwise OR of zero or more of the following values:
+.Pp
+.Bl -tag -width AT_SYMLINK_NOFOLLOW -offset indent -compact
+.It Dv AT_SYMLINK_NOFOLLOW
+If
+.Fa path
+names a symbolic link, then the system variable for the symbolic
+link is queried.
+.El
+.Sh RETURN VALUES
+If the call to
+.Fn pathconf ,
+.Fn pathconfat ,
+or
+.Fn fpathconf
+is not successful, \-1 is returned and
+.Va errno
+is set appropriately.
+Otherwise, if the variable is associated with functionality that does
+not have a limit in the system, \-1 is returned and
+.Va errno
+is not modified.
+Otherwise, the current variable value is returned.
+.Sh ERRORS
+If any of the following conditions occur, the
+.Fn pathconf ,
+.Fn pathconfat ,
+and
+.Fn fpathconf
+functions shall return \-1 and set
+.Va errno
+to the corresponding value.
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The value of the
+.Fa name
+argument is invalid.
+.It Bq Er EINVAL
+The implementation does not support an association of the variable
+name with the associated file.
+.It Bq Er EIO
+An I/O error occurred while reading from the file system.
+.El
+.Pp
+.Fn pathconf
+and
+.Fn pathconfat
+will fail if:
+.Bl -tag -width Er
+.It Bq Er ENOTDIR
+A component of the path prefix is not a directory.
+.It Bq Er ENAMETOOLONG
+A component of a pathname exceeded
+.Dv NAME_MAX
+characters (but see
+.Dv _PC_NO_TRUNC
+above), or an entire pathname (including the terminating NUL)
+exceeded
+.Dv PATH_MAX
+bytes.
+.It Bq Er ENOENT
+The named file does not exist.
+.It Bq Er EACCES
+Search permission is denied for a component of the path prefix.
+.It Bq Er ELOOP
+Too many symbolic links were encountered in translating the pathname.
+.It Bq Er EFAULT
+.Fa path
+points outside the process's allocated address space.
+.El
+.Pp
+Additionally, the
+.Fn pathconfat
+function will fail if:
+.Bl -tag -width Er
+.It Bq Er EINVAL
+The value of the
+.Fa flag
+argument was neither zero nor
+.Dv AT_SYMLINK_NOFOLLOW .
+.It Bq Er EBADF
+The
+.Fa path
+argument specifies a relative path and the
+.Fa fd
+argument is neither
+.Dv AT_FDCWD
+nor a valid file descriptor.
+.It Bq Er ENOTDIR
+The
+.Fa path
+argument specifies a relative path and the
+.Fa fd
+argument is a valid file descriptor but it does not reference a directory.
+.It Bq Er EACCES
+The
+.Fa path
+argument specifies a relative path but search permission is denied
+for the directory which the
+.Fa fd
+file descriptor references.
+.El
+.Pp
+.Fn fpathconf
+will fail if:
+.Bl -tag -width Er
+.It Bq Er EBADF
+.Fa fd
+is not a valid open file descriptor.
+.El
+.Sh SEE ALSO
+.Xr sysctl 2 ,
+.Xr sysconf 3
+.Sh STANDARDS
+The
+.Fn pathconf
+and
+.Fn fpathconf
+functions conform to
+.St -p1003.1-2008 .
+.Sh HISTORY
+The
+.Fn pathconf
+and
+.Fn fpathconf
+functions first appeared in
+.Bx 4.4 .
+The
+.Fn pathconfat
+function first appeared in
+.Ox 7.6 .