[C con Clase] problema con system

Martin Chiappero martinchiappero en gmail.com
Jue Jul 29 16:50:37 CEST 2010


Gracias Cristian, pero estoy trabajando como root, no hace falta el sudo cono seguramente sabras. de todos modos gracias por tu interes.

no pongo todo porque seria eterno pero gracias a que david me dijo que si le funciono se me ocurrió probar otras cosas y descubrí que solamente no me funciona cuando /dev/hda lo traigo en una variable.
Aca te pongo una buena parte y desde donde consigo esa variable a ver si le encuentran el problema.

//la variable disco la traigo desde una funcion con un digito que puede ser //desde 0 a 8
//El array hd contiene una lista con los discos detectados seria algo como 
// /dev/hda en el orden 0, /dev/hdb en el 1, etc..

char discoelegido[8];

switch(disco+1){
    case 1:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[0][i];
        }
	break;
    case 2:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[1][i];
	}
    break;
    case 3:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[2][i];
	}
    break;
    case 4:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[3][i];
	}
    break;
    case 5:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[4][i];
	}
    break;
    case 6:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[5][i];
	}
    break;
    case 7:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[6][i];
	}
    break;
    case 8:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[7][i];
	}
    break;
    case 9:
	for(i=6;i<14;i++){
	    discoelegido[i-6]=hd[8][i];
	}
    break;
}

char comando[41]="fdisk -l ";
char comando1[23]=" > fdisk_l_al_disco.zn";

sprintf (comando,"%s%s",comando,discoelegido);//oelegido);
sprintf (comando,"%s%s",comando,comando1);
system (comando);
printf(comando);


si le hago un printf al comando me lo muestra perfecto pero a la hora de la ejecución solo me crea el archivo fdisck_al_disco.zn en blanco, es decir, no graba los datos que entrega el comando fdisk -l.
he probado todo y hasta ese punto llego bien, he probado darle un valor fijo a la variable disco elegido y de esa manera si funciona, como lo dijo david, pero con una variable sin predefinir no.

Gracias por su tiempo


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