[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Pipes, scanf, y manual de C



At 23/12/03 11:47, Alberto wrote:
Hola a todos,

tengo un programa en C que hace lo siguiente:

//cliente
char str[256];
scanf("%s", str);
write (envio, &str, strlen(str));

donde "envio" es el canal que apunta a una pipe.

por otro lado, otro proceso lee de la pipe:

//servidor
read(recept, &str, strlen(str));


donde "recept" es el canal que apunta a la pipe.

Pues bien, parece ser que si en cliente le introduces por ejemplo ls -l -a,
el servidor lee de la pipe solamente ls !!!

Osea que parece ser que dicho comando el scanf lo guarde en lugar de "ls -l
-a\0", como "ls\0 -l\0 -a\0" !!!! o es el scanf que me extraña muchísimo por
que no sabría por qué hace eso, o es el write, que tampoco veo por que, o es
la lectura de la pipe en el read.

No me equivoco si afirmo que scanf guardaría una frase como "El perro de san
Roque\0" verdad?


De paso, hay alguna pagina oficial de C? alguna como el manual de Java que
tienen en la de sun.

Gracias!



Si no recuerdo mal el C debería ser algo como esto
//cliente
char str[256];
scanf("%s", str);
write (envio, str, strlen(str)); /*no se puede poner el &, str ya es un puntero*/

//servidor
read(recept, str, strlen(str)); /*otra vez lo mismo*/

Prueba con esto y cuentanos

Un saludo
Pedro


Reply to: