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

Re: Pipes, scanf, y manual de C



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

El Martes, 23 de Diciembre de 2003 12:54, Fernando M. Maresca escribió:
> On Tue, Dec 23, 2003 at 11:47:52AM +0100, Alberto wrote:
> > Hola a todos,
> >
> > tengo un programa en C que hace lo siguiente:
> >
> > //cliente
> > char str[256];
> > scanf("%s", str);
>
> /* el segundo argumento debe ser un puntero */
> scanf("%s", &str);

Extraído de la página del man de scanf:

       s      Matches  a  sequence  of non-white-space characters; the next 
pointer must be a pointer to char, and the array must be large
              enough to accept all the sequence and the terminating NUL 
character.  The input string stops at white space or at the  maxi-
              mum field width, whichever occurs first.

Es decir, lo tenias bien, pero únicamente lee hasta el primer separador 
(espacio, tabulador, salto de línea, fin de fichero, etc.)

>
> > 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.
>
> man <funcion> en Linux/Bsd te va a dar la página de manual de las
> funciones de librería standard de C.
> Comprate o conseguite el pdf de "The C programing Language" de Kernighan
> y Ritchie.
> Sds
>
> > Gracias!
> >
> >
> >
> >
> >
> > ---Publicidad--------------------------------------------------------
> > Únete a los miles de sin pareja en Meetic... ¡te vas a enamorar!
> > http://www.iespana.es/_reloc/email.meetic
> >
> >
> > --
> > To UNSUBSCRIBE, email to debian-user-spanish-request@lists.debian.org
> > with a subject of "unsubscribe". Trouble? Contact
> > listmaster@lists.debian.org
>
> --
>
> Fernando M. Maresca
>
> Cel: (54) 221 15 502 3938
> Cel: 0221-15-502-3938

- -- 
- ----------------------------------+---------------------------
José Manuel Pérez Fuente          | Universidad del País Vasco
Punto Neutro EuskoNIX (UPV/EHU)   | E-mail: scxpefuj@sc.ehu.es
Plaza Elhuyar, 1 (Edif. Barriola) | Tel.....:  +34 943 018 281
20018 San Sebastián (SPAIN)       | Fax.....:  +34 943 219 306
- ----------------------------------+---------------------------

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)

iD8DBQE/6D0rRRyB6LZLkhsRAhLyAJ9tFqaxJykUbt5nVb5iD0mxwh6ntgCePfq1
RvzgzXxatPnptuvwTdhx3ZM=
=QbLg
-----END PGP SIGNATURE-----



Reply to: