develooper Front page | perl.perl5.porters | Postings from May 2003

Re: [perl #22339] IO::Handle::setvbuf not defined properly

Thread Previous | Thread Next
Kurt Starsinic
May 28, 2003 07:39
Re: [perl #22339] IO::Handle::setvbuf not defined properly
Message ID:
On May 28, Mark-Jason Dominus wrote:
> Rafael Garcia-Suarez <>:
> > setbuf/setvbuf aren't available with a PerlIO-enabled perl.
> Thanks.
> Here's my problem.  I want two processes to access the same (small)
> file concurrently.  Process A reads part of the file.  Process B
> modifies part of the file.  Then process A wants to see the change.
> But it can't, because the block it just read is buffered, and
> subsequent reads are all coming from the buffer, which records the
> state of the file before the change, instead of from the real file.
> I thought my choices were
> a) use setvbuf() to discard the buffer, perhaps temporarily, or
> b) discard the buffered I/O system entirely and rewrite everything in
> terms of sysread(), effectively reimplementing the entire buffered I/O
> subsystem in Perl.
> But now it appears that my only choice is (b).  This isn't very
> attractive.  Is there some other option I've overlooked?

    How about mmap(), or closing and re-opening the read() filehandle?

    - Kurt

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About