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");

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top