Получить строковую переменную, зависящую от конфигурации
#include <unistd.h>size_t confstr( int name,char *buf,size_t len );
libc
The confstr() function lets applications get or set configuration-defined string values. This is similar to the sysconf() function, but you use it to get string values, rather than numeric values. By default, the function queries and returns values in the system.
The name argument represents the system variable to query. The values are defined in <confname.h>
; at least the following name values are valid:
![]() | A hostname can consist only of letters, numbers, and hyphens, and must not start or end with a hyphen. For more information, see RFC 952. |
LD_LIBRARY_PATH
environment variable that finds all standard libraries. PATH
environment variable that finds all standard utilities. resolv.conf
file, excluding the domain name. TZ
style) The configuration-defined value is returned in the buffer pointed to by buf, and will be ≤ len bytes long, including the terminating NULL
.
To find out the length of a configuration-defined value, call confstr() with buf set to NULL
and len set to 0
.
To set a configuration value:
_CS_HOSTNAME
) with _CS_SET
. NULL
-terminated string. 0
. You can compare the confstr() return value against len to see if the configuration-defined value was truncated when retrieving a value (you can't do this when setting a value).
Print information similar to that returned by the uname() function:
#include <unistd.h>#include <stdio.h>#include <limits.h>#define BUFF_SIZE (256 + 1)int main( void ){char buff[BUFF_SIZE];if ( confstr( _CS_SYSNAME, buff, BUFF_SIZE ) > 0 ){printf( "System name: %s\n", buff );}if ( confstr( _CS_HOSTNAME, buff, BUFF_SIZE ) > 0 ){printf( "Host name: %s\n", buff );}if ( confstr( _CS_RELEASE, buff, BUFF_SIZE ) > 0 ){printf( "Release: %s\n", buff );}if ( confstr( _CS_VERSION, buff, BUFF_SIZE ) > 0 ){printf( "Version: %s\n", buff );}if ( confstr( _CS_MACHINE, buff, BUFF_SIZE ) > 0 ){printf( "Machine: %s\n", buff );}if ( confstr( _CS_SET | _CS_HOSTNAME, "myhostname", 0 ) != 0 ){printf( "Hostname set to: %s\n", "myhostname" );}return (0);}
POSIX 1003.1
The confstr() function is part of a draft standard; its interface and/or behavior may change in the future.
getconf, setconf в Справочнике по Утилитам
Предыдущий раздел: Описание API системной библиотеки