Document that setvbuf() is not probably any more available.
Jarkko Hietaniemi [Thu, 29 May 2003 08:11:42 +0000 (08:11 +0000)]
Many reports, most recently by mjd in
[perl #22339] IO::Handle::setvbuf not defined properly

p4raw-id: //depot/perl@19631

ext/IO/lib/IO/Handle.pm

index 81bec5a..29b8316 100644 (file)
@@ -20,6 +20,7 @@ IO::Handle - supply object methods for I/O handles
         $io->print("Some text\n");
     }
 
+    # setvbuf is not available by default on Perls 5.8.0 and later.
     use IO::Handle '_IOLBF';
     $io->setvbuf($buffer_var, _IOLBF, 1024);
 
@@ -193,6 +194,10 @@ C<_IOLBF>, and C<_IONBF> for setvbuf()--except that the buffer parameter
 specifies a scalar variable to use as a buffer. You should only
 change the buffer before any I/O, or immediately after calling flush.
 
+WARNING: The IO::Handle::setvbuf() is not available by default on
+Perls 5.8.0 and later because setvbuf() is rather specific to using
+the stdio library, while Perl prefers the new perlio subsystem instead.
+
 WARNING: A variable used as a buffer by C<setbuf> or C<setvbuf> B<must not
 be modified> in any way until the IO::Handle is closed or C<setbuf> or
 C<setvbuf> is called again, or memory corruption may result! Remember that