getenv, getenv_s
|
Definido en el encabezado
<stdlib.h>
|
||
|
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) | (desde C11) |
getenv
, así como una llamada a las funciones POSIX
setenv()
,
unsetenv()
, y
putenv()
puede invalidar el puntero devuelto por una llamada anterior o modificar la cadena obtenida de una llamada anterior.
getenv
provoca un comportamiento indefinido.
-
- name es un puntero nulo
- valuesz es mayor que RSIZE_MAX
- value es un puntero nulo y valuesz no es cero
-
Como con todas las funciones con verificación de límites,
getenv_ssolo está garantizado que esté disponible si __STDC_LIB_EXT1__ está definido por la implementación y si el usuario define __STDC_WANT_LIB_EXT1__ como la constante entera 1 antes de incluir <stdlib.h> .
Contenidos |
Parámetros
| name | - | cadena de caracteres terminada en nulo que identifica el nombre de la variable de entorno a buscar |
| len | - |
puntero a una ubicación proporcionada por el usuario donde
getenv_s
almacenará la longitud de la variable de entorno
|
| value | - |
puntero a un arreglo de caracteres proporcionado por el usuario donde
getenv_s
almacenará el contenido de la variable de entorno
|
| valuesz | - |
número máximo de caracteres que
getenv_s
puede escribir en
dest
(tamaño del búfer)
|
Valor de retorno
Notas
En sistemas POSIX, las
variables de entorno
también son accesibles mediante la variable global
environ
, declarada como
extern
char
**
environ
;
en
<unistd.h>
, y mediante el tercer argumento opcional,
envp
, de
la función main
.
La llamada a
getenv_s
con un puntero nulo para
value
y cero para
valuesz
se utiliza para determinar el tamaño del búfer requerido para contener el resultado completo.
Ejemplo
#include <stdio.h> #include <stdlib.h> int main(void) { const char *name = "PATH"; const char *env_p = getenv(name); if (env_p) printf("Your %s is %s\n", name, env_p); }
Salida posible:
Your PATH is /home/gamer/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/share/games
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.22.4.6 La función getenv (p: TBD)
-
- K.3.6.2.1 La función getenv_s (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.22.4.6 La función getenv (p: 256-257)
-
- K.3.6.2.1 La función getenv_s (p: 440-441)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.22.4.6 La función getenv (p: 352-353)
-
- K.3.6.2.1 La función getenv_s (p: 606-607)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.20.4.5 La función getenv (p: 317)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.10.4.4 La función getenv
Véase también
|
Documentación de C++
para
getenv
|