[C con Clase] problema con system

David Fire ddfire en gmail.com
Jue Jul 29 17:25:04 CEST 2010


hola
no entiendo por que completas de esa manera el disco elejido, probablemente
no este bien.
fijate si no te falta el 0, al final del string.
ponete un  "discoelegido[i-6]=0;" antes del break, despues del for.

David

El 29 de julio de 2010 11:50, Martin Chiappero
<martinchiappero en gmail.com>escribió:

> 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
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
 (\__/)
(='.'=)This is Bunny. Copy and paste bunny into your
(")_(")signature to help him gain world domination.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100729/9a445540/attachment.html>


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