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

Responder a