Jesus Redrado wrote:
>
> Hi,
>
> My redirector uses the following code to make standard output line buffered:
>
> if (setvbuf(stdout,NULL,_IOLBF,0) !=0)
> return -1;
>
> while ( fgets(buffer,BUFFER_SIZE,stdin ) != NULL){
> /*..........*/
> }
>
> Should it make standard input no buffered ?
>
> By example,
>
> if (setvbuf(stdout,NULL,_IOLBF,0) !=0)
> return -1;
>
> if (setvbuf(stdin,NULL,_IONBF,0) !=0)
> return -1;
>
> while ( fgets(buffer,BUFFER_SIZE,stdin ) != NULL){
> /*..........*/
> }
>
> However, my code works fine under Squid 1.1.22
>
> Thanks,
>
> Jes�s Redrado
> EduNet
> [EMAIL PROTECTED]
>
> -----Mensaje original-----
> De: Maciej Kozinski <[EMAIL PROTECTED]>
> Para: Jesus Redrado <[EMAIL PROTECTED]>
> CC: [EMAIL PROTECTED] <[EMAIL PROTECTED]>
> Fecha: Wednesday, April 28, 1999 11:47 AM
> Asunto: Re: Redirector fgets error
>
> >Jesus Redrado:
> >>
> >> I've developed a redirector program using C/C++.
> >>
> >> It works fine under Squid 1.1.22, but under Squid 2.1.PATCH2 and Squid
> >> 2.2.STABLE2 does not work.
> >>
> >> It uses the following code to read from Squid:
> >>
> >> while ( fgets(buffer,BUFFER_SIZE,stdin ) != NULL){
> >> /*..........*/
> >> }
> >
> >AFAIK redirector cannot use buffered i/o.
You can ignore buffering on stdin, pretty much. It's line-buffered, but
that's exactly what you want. As long as you fflush(stdout) after
writing each output url, you shouldn't have any problems with stream
buffering.
D