summaryrefslogtreecommitdiffstats
path: root/upstream/archlinux/man3p/confstr.3p
diff options
context:
space:
mode:
Diffstat (limited to 'upstream/archlinux/man3p/confstr.3p')
-rw-r--r--upstream/archlinux/man3p/confstr.3p283
1 files changed, 283 insertions, 0 deletions
diff --git a/upstream/archlinux/man3p/confstr.3p b/upstream/archlinux/man3p/confstr.3p
new file mode 100644
index 00000000..2ec41bde
--- /dev/null
+++ b/upstream/archlinux/man3p/confstr.3p
@@ -0,0 +1,283 @@
+'\" et
+.TH CONFSTR "3P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\"
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.\"
+.SH NAME
+confstr
+\(em get configurable variables
+.SH SYNOPSIS
+.LP
+.nf
+#include <unistd.h>
+.P
+size_t confstr(int \fIname\fP, char *\fIbuf\fP, size_t \fIlen\fP);
+.fi
+.SH DESCRIPTION
+The
+\fIconfstr\fR()
+function shall return configuration-defined string values. Its use and
+purpose are similar to
+\fIsysconf\fR(),
+but it is used where string values rather than numeric values are
+returned.
+.P
+The
+.IR name
+argument represents the system variable to be queried. The
+implementation shall support the following name values, defined in
+.IR <unistd.h> .
+It may support others:
+.P
+.nf
+_CS_PATH
+_CS_POSIX_V7_ILP32_OFF32_CFLAGS
+_CS_POSIX_V7_ILP32_OFF32_LDFLAGS
+_CS_POSIX_V7_ILP32_OFF32_LIBS
+_CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
+_CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
+_CS_POSIX_V7_ILP32_OFFBIG_LIBS
+_CS_POSIX_V7_LP64_OFF64_CFLAGS
+_CS_POSIX_V7_LP64_OFF64_LDFLAGS
+_CS_POSIX_V7_LP64_OFF64_LIBS
+_CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
+_CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
+_CS_POSIX_V7_LPBIG_OFFBIG_LIBS
+_CS_POSIX_V7_THREADS_CFLAGS
+_CS_POSIX_V7_THREADS_LDFLAGS
+_CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
+_CS_V7_ENV
+_CS_POSIX_V6_ILP32_OFF32_CFLAGS
+_CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+_CS_POSIX_V6_ILP32_OFF32_LIBS
+_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+_CS_POSIX_V6_ILP32_OFFBIG_LIBS
+_CS_POSIX_V6_LP64_OFF64_CFLAGS
+_CS_POSIX_V6_LP64_OFF64_LDFLAGS
+_CS_POSIX_V6_LP64_OFF64_LIBS
+_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+_CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
+_CS_V6_ENV
+.fi
+.P
+If
+.IR len
+is not 0, and if
+.IR name
+has a configuration-defined value,
+\fIconfstr\fR()
+shall copy that value into the
+.IR len -byte
+buffer pointed to by
+.IR buf .
+If the string to be returned is longer than
+.IR len
+bytes, including the terminating null, then
+\fIconfstr\fR()
+shall truncate the string to
+.IR len \-1
+bytes and null-terminate the result. The application can detect that
+the string was truncated by comparing the value returned by
+\fIconfstr\fR()
+with
+.IR len .
+.P
+If
+.IR len
+is 0 and
+.IR buf
+is a null pointer, then
+\fIconfstr\fR()
+shall still return the integer value as defined below, but shall not
+return a string. If
+.IR len
+is 0 but
+.IR buf
+is not a null pointer, the result is unspecified.
+.P
+After a call to:
+.sp
+.RS 4
+.nf
+
+confstr(_CS_V7_ENV, buf, sizeof(buf))
+.fi
+.P
+.RE
+.P
+the string stored in
+.IR buf
+shall contain a
+<space>-separated
+list of the variable=value environment variable pairs an
+implementation requires as part of specifying a conforming
+environment, as described in the implementations' conformance
+documentation.
+.P
+If the implementation supports the POSIX shell option, the string
+stored in
+.IR buf
+after a call to:
+.sp
+.RS 4
+.nf
+
+confstr(_CS_PATH, buf, sizeof(buf))
+.fi
+.P
+.RE
+.P
+can be used as a value of the
+.IR PATH
+environment variable that accesses all of the standard utilities of
+POSIX.1\(hy2008, that are provided in a manner accessible via the
+.IR exec
+family of functions, if the return value is less than or equal to
+.IR sizeof (\c
+.IR buf ).
+.SH "RETURN VALUE"
+If
+.IR name
+has a configuration-defined value,
+\fIconfstr\fR()
+shall return the size of buffer that would be needed to hold the entire
+configuration-defined value including the terminating null. If this
+return value is greater than
+.IR len ,
+the string returned in
+.IR buf
+is truncated.
+.P
+If
+.IR name
+is invalid,
+\fIconfstr\fR()
+shall return 0 and set
+.IR errno
+to indicate the error.
+.P
+If
+.IR name
+does not have a configuration-defined value,
+\fIconfstr\fR()
+shall return 0 and leave
+.IR errno
+unchanged.
+.SH ERRORS
+The
+\fIconfstr\fR()
+function shall fail if:
+.TP
+.BR EINVAL
+The value of the
+.IR name
+argument is invalid.
+.LP
+.IR "The following sections are informative."
+.SH EXAMPLES
+None.
+.SH "APPLICATION USAGE"
+An application can distinguish between an invalid
+.IR name
+parameter value and one that corresponds to a configurable variable
+that has no configuration-defined value by checking if
+.IR errno
+is modified. This mirrors the behavior of
+\fIsysconf\fR().
+.P
+The original need for this function was to provide a way of finding the
+configuration-defined default value for the environment variable
+.IR PATH .
+Since
+.IR PATH
+can be modified by the user to include directories that could contain
+utilities replacing the standard utilities in the Shell and Utilities volume of POSIX.1\(hy2017, applications
+need a way to determine the system-supplied
+.IR PATH
+environment variable value that contains the correct search path for
+the standard utilities.
+.P
+An application could use:
+.sp
+.RS 4
+.nf
+
+confstr(name, (char *)NULL, (size_t)0)
+.fi
+.P
+.RE
+.P
+to find out how big a buffer is needed for the string value; use
+\fImalloc\fR()
+to allocate a buffer to hold the string; and call
+\fIconfstr\fR()
+again to get the string. Alternately, it could allocate a fixed, static
+buffer that is big enough to hold most answers (perhaps 512 or 1\|024
+bytes), but then use
+\fImalloc\fR()
+to allocate a larger buffer if it finds that this is too small.
+.SH RATIONALE
+Application developers can normally determine any configuration
+variable by means of reading from the stream opened by a call to:
+.sp
+.RS 4
+.nf
+
+popen("command -p getconf variable", "r");
+.fi
+.P
+.RE
+.P
+The
+\fIconfstr\fR()
+function with a
+.IR name
+argument of _CS_PATH returns a string that can be used as a
+.IR PATH
+environment variable setting that will reference the standard shell and
+utilities as described in the Shell and Utilities volume of POSIX.1\(hy2017.
+.P
+The
+\fIconfstr\fR()
+function copies the returned string into a buffer supplied by the
+application instead of returning a pointer to a string. This allows a
+cleaner function in some implementations (such as those with
+lightweight threads) and resolves questions about when the application
+must copy the string returned.
+.SH "FUTURE DIRECTIONS"
+None.
+.SH "SEE ALSO"
+.IR "\fIexec\fR\^",
+.IR "\fIfpathconf\fR\^(\|)",
+.IR "\fIsysconf\fR\^(\|)"
+.P
+The Base Definitions volume of POSIX.1\(hy2017,
+.IR "\fB<unistd.h>\fP"
+.P
+The Shell and Utilities volume of POSIX.1\(hy2017,
+.IR "\fIc99\fR\^"
+.\"
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1-2017, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 7, 2018 Edition,
+Copyright (C) 2018 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group.
+In the event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .
+.PP
+Any typographical or formatting errors that appear
+in this page are most likely
+to have been introduced during the conversion of the source files to
+man page format. To report such errors, see
+https://www.kernel.org/doc/man-pages/reporting_bugs.html .