语法

#include <unistd.h>

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

glibc的功能测试宏要求(请参阅feature_test_macros(7)):

confstr():_POSIX_C_SOURCE => 2 || _XOPEN_SOURCE

示例

以下代码片段确定了在其中找到POSIX.2系统实用程序的路径:

char *pathbuf;
size_t n;

n = confstr(_CS_PATH, NULL, (size_t) 0);
pathbuf = malloc(n);
if (pathbuf == NULL)
    abort();
confstr(_CS_PATH, pathbuf, n);
CONFSTR - Linux手册页

Linux程序员手册 第3部分
更新日期: 2020-06-09

返回值

如果name是有效的配置变量,则confstr()返回保存该变量的整个值所需的字节数(包括终止的空字节)。该值可能大于len,这意味着buf中的值被截断了。

如果name是有效的配置变量,但该变量没有值,则confstr()返回0。如果name不对应于有效的配置变量,则confstr()返回0,并将errno设置为EINVAL。

说明

confstr()获取依赖于配置的字符串变量的值。

name参数是要查询的系统变量。支持以下变量:

_CS_GNU_LIBC_VERSION(GNU C library only; since glibc 2.3.2)
标识此系统上GNU C库版本的字符串(例如" glibc 2.3.4")。
_CS_GNU_LIBPTHREAD_VERSION(GNU C library only; since glibc 2.3.2)
标识此C库提供的POSIX实现的字符串(例如" NPTL 2.3.4"或" linuxthreads-0.10")。
_CS_PATH
PATH变量的值,指示可以在哪里找到所有POSIX.2标准实用程序。

如果buf不为NULL并且len不为零,则confstr()将字符串的值复制到buf截断为len-1个字节(如有必要),并以空字节(aq \ 0aq)作为终止符。可以通过将confstr()的返回值与len比较来检测到。

如果len为零且buf为NULL,则confstr()仅返回如下定义的值。

出版信息

这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/

名称

confstr-获取配置相关的字符串变量

属性

有关本节中使用的术语的说明,请参见attribute(7)。

InterfaceAttributeValue
confstr()Thread safetyMT-Safe

错误说明

EINVAL
名称的值无效。

另外参见

getconf(1),sh(1),exec(3),fpathconf(3),pathconf(3),sysconf(3),system(3)

遵循规范

POSIX.1-2001,POSIX.1-2008。

日期:2019-08-20 18:00:03 来源:oir作者:oir