c语⾔realpath函数,getenv_s-[C语⾔中⽂开发⼿册]-在线原⽣
⼿册-php中⽂⽹
在头⽂件中定义char * getenv(const char * name);(1)
errno_t getenv_s(size_t * restrict len,char * restrict value,rsize_t valuesz,const char * restrict name);(2)(⾃C11以来)
1)name在主机指定的环境列表中搜索具有名称的环境变量,并返回指向与匹配的环境变量关联的字符串的指针。环境变量和改变它的⽅法的集合是实现定义的。
这个函数不需要是线程安全的。另⼀个对getenv的调⽤,以及对POSIX函数setenv(),unsetenv()和putenv()的调⽤可能会使先前调⽤返回的指针⽆效,或者修改先前调⽤中获得的字符串。
修改由getenv返回的字符串将调⽤未定义的⾏为。
2)与(1)相同,只是将环境变量的值写⼊⽤户提供的缓冲区值(除⾮为空),并且写⼊的字节数存储在⽤户提供的位置* len(除⾮为空)。 如果环境变量未在环境中设置,则将0写⼊* len(除⾮为null),并且将'\ 0'写⼊值[0](除⾮为空)。 另外,在运⾏时检测到以下错误并调⽤当前安装的约束处理函数:
name 是⼀个空指针
valuesz ⼤于 RSIZE_MAX
value是⼀个空指针,valuesz不为零
作为所有边界检查函数,只有当__STDC_LIB_EXT1__由实现定义并且⽤户在包含stdlib.h之前将__STDC_WANT_LIB_EXT1__定义为整数常量1时,getenv_s才能保证可⽤。
参数
name-以空字符结尾的字符串标识要查的环境变量的名称len-指向⽤户提供的位置的指针,其中getenv_s将存储环境变量的长度
value-指向⽤户提供的字符数组的指针,其中getenv_s将存储环境变量的内容
valuesz-允许getenv_s写⼊dest的最⼤字符数(缓冲区的⼤⼩)
返回值
1)如果没有到这样的变量,则标识环境变量或空指针的值的字符串。
2)如果到环境变量,则为零;如果未发现运⾏时常量违例发⽣,则为⾮零。在出现任何错误时,写⼊零*len(除⾮len是空指针)。
注意
在POSIX系统上,环境变量也可以通过全局变量environ访问,声明为extern char ** environ; 在中,并通过主函数的可选第三个参数envp。php手册官方中文版
调⽤getenv_s时,值为null的指针和valuesz的值为零⽤于确定保存整个结果所需的缓冲区的⼤⼩。
例
#include #include
int main(void){
char *env_p = getenv("PATH"); if (env_p) printf("PATH = %s\n", env_p);}
可能的输出:
PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
参考
C11标准(ISO / IEC 9899:2011):7.22.4.6 getenv函数(p:352-353)
K.3.6.2.1 getenv_s函数(p:606-607)
C99标准(ISO / IEC 9899:1999):7.20.4.5 getenv函数(p:317) C89 / C90标准(ISO / IEC 9899:1990):4.10.4.4 getenv函数
扩展内容
| getenv的C ++⽂档 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论