Escribir en archivo

Nuevo
19 de Septiembre del 2004
Hola; tengo un programa que tiene la función de apagar la computadora a través de un archivo .bat, pero me problema es que cuando quiero escribir en el archivo pasa esto:

lo que debe escribir en el archivo
c:windowsrundll32.exe user.exe,exitwindows

lo que escribe el programa
simbolos irroconocibles aqui
c:windowsrundll32.exe user.exe,exitwindows

dentro del código los tengo así:

fputs("nnnc:windowsrundll32.exe user.exe,exitwindows",archivo);

Que debo hacer para que ponga la cadena completa y por que falla la escribirla?

Deimos
19 de Septiembre del 2004
EL problema que tu tienes es que al tratar de escribir la cadena en el archivo el programa toma las barras como si el caracter siguiente fuera un caracter de control. Por ejemplo: t, avanzas una tabulación.
Entonces lo que debes hacer es colocar doble barra, entonces el programa interpreta como que tu quieres poner una barra y no un caracter de control.

Lo que escribes en el código debería ser algo así:
fputs("nnnc:\windows\rundll32.exe user.exe,exitwindows",archivo);


No lo he probado pero en teoría debería funcionar, pruebalo y luego me cuentas...

Nuevo
19 de Septiembre del 2004
Si era eso gracias.

Nuevo
19 de Septiembre del 2004
Disculpa pero tengo un nuevo problema cuando creo un archivo y trato de modificarlo no me respeta los saltos de línea, sabes por qué?
por ejemplo

archivo=fopen("c:\apagar.bat","a+b");
if(archivo!=NULL)
{
fputs("n@echo=off");
fputs("n echo apagando sistema n");
}

lo que debe escribir es esto:

.... salto de linea
@echo=off
.... salto de linea
echo apagando sistema
.... salto de linea

lo que me sale es:

.... salto de linea sale un cuadro negro@echo=off ...otro cuadro negro echo apagando sistema ..vuelve a salir un cuadro negro

Gracias por la ayuda

Alejandro_
19 de Septiembre del 2004
Para Windows (o DOS), cuando el archivo se abre en modo binario, necesitas especificar el salto de línea más el retorno de carro:

fputs("rn@echo=off", archivo);
fputs("rn echo apagando sistema rn", archivo);

Si lo abres en modo texto, el compilador se encargará de añadir los r por ti (aunque el editor no los muestre).

Alejandro