Cómo importar la ruta de inicio al programa c usando gcc
Pregunta
estoy usando gcc para ventanas.El sistema operativo es Windows XP.¿Cómo importo la variable homepath a mi programa c para poder escribir en c:\%homepath%\desktop?Me gustaría usar algo similar a:
fd = fopen("C:\\%%homepath%%\\desktop\\helloworld.txt","w")
;
Solución
Use getenv() para obtener el valor de una variable de entorno, luego use sprintf o strcat para componer la ruta.
Otros consejos
Usar getenv("homepath")
para obtener el valor de la variable de entorno.Debes manejar el caso en el que la variable no ha sido definida (getenv
devoluciones NULL
en ese caso).
Para componer el uso de la ruta sprintf
char * homepath = getenv("homepath");
if(homepath == null) {
/* variable HOMEPATH has not been defined */
}
sprintf(path,"%s\\desktop\\helloworld.txt",homepath);
Debes hacer un camino lo suficientemente grande para acomodar el valor. homepath
y \\desktop\\helloworld.txt
.
Tenga en cuenta también el uso de \\
en la cuerda.No puedes usar solo \
.
Nota:en realidad, también necesita obtener el valor de HOMEDRIVE y anteponerlo a HOMEPATH.En muchos entornos corporativos, los directorios personales se guardan en grandes servidores o dispositivos de red.