[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