CONFSTR(3) | Library Functions Manual | CONFSTR(3)

# NAME

confstr — get string-valued configurable variables

# LIBRARY

Standard C Library (libc, -lc)

# SYNOPSIS

#include <unistd.h>

size_t
confstr(int name, char *buf, size_t len);

# DESCRIPTION

This interface is obsoleted by sysctl(3).

The confstr() function provides a method for applications to get configuration defined string values.

The name argument specifies the system variable to be queried. Symbolic constants for each name value are found in the <unistd.h> header. The len argument specifies the size of the buffer referenced by the argument buf. If len is non-zero, buf is a non-null pointer, and name has a value, up to len - 1 bytes of the value are copied into the buffer buf. The copied value is always null terminated.

The available values are as follows:

`_CS_PATH`
  Return a value for the PATH environment variable that finds all the standard utilities.

# RETURN VALUES

If the call to confstr is not successful, 0 is returned and errno is set appropriately. Otherwise, if the variable does not have a configuration defined value, 0 is returned and errno is not modified. Otherwise, the buffer size needed to hold the entire configuration-defined value is returned. If this size is greater than the argument len, the string in buf was truncated.

# ERRORS

The confstr function may fail and set error for any of the errors specified for the library functions malloc(3) and sysctl(3).

In addition, the following errors may be reported:

[EINVAL]
  The value of the name argument is invalid.

# SEE ALSO

sysctl(3)

# STANDARDS

The confstr function conforms to IEEE Std 1003.2-1992 (“POSIX.2”).

# HISTORY

The confstr function first appeared in 4.4BSD.

# BUGS

The standards require us to return 0 both on errors, and when the value is not set.

April 22, 2010 | NetBSD 7.2