[C con Clase] Problema con system

Programante programante en gmail.com
Sab Oct 4 13:42:14 CEST 2008


Rubén escribió:
> Buenas tardes,
>
> Estoy empezando una pequeña aplicación y me encontrado con un problemilla.
>
> La aplicación es para conectar por remoto a unos equipos de win. La 
> cosa es que el programa debe leer primero el nombre del equipo escrito 
> por el usuario y luego añadirlo en system después de la ruta de la 
> carpeta donde se encuentra el archivo y añadir después ".rdp"
>
> He buscado información sobre system pero no he encontrado gran cosa. 
> ¿es posible hacer esto?

system() acepta un único parametro que es la cadena a ejecutar.
Por lo tanto, el problema es poner la ruta, el nombre y la extensión en 
una única cadena.
Podemos usar la función sprintf () que nos escribe en una cadena.
Por ejemplo:
char Comando_a_ejecutar[200];
snprintf(Comando_a_ejecutar, sizeof Comando_a_ejecutar, 
""./carpeta/%s.rdp", leer);

Juan, system() no tiene problemas con los nombres largos de archivo. Sin 
embargo, si hay espacios puede que se "pierda" como otro argumento 
diferente.

Así, en vez de ejecutar copy docume~1\wxwidgets2.exe wxwidgets2.exe 
querrías ejecutar copy "documentos c\wxwidgets2.exe" wxwidgets2.exe para 
lo cual harías system("copy \"documentos c\\wxwidgets2.exe\" 
wxwidgets2.exe");





Más información sobre la lista de distribución Cconclase