Slightly different - I agree that it's possible stream_close might
need to signal a problem, but note that it is not responsible for
flushing the output (because stream_flush is automatically called
before stream_close).

It would go a long, long, long way to at least respect the return
value of stream_flush, especially since the bug in question can affect
plain old files too, and code that doesn't return a proper value from
stream_flush is already bombing for anyone who checks the result of
calling fflush().

So all I'm asking is for fclose() and its friends (copy(),
file_put_contents()...) to pay attention when flush fails.

Those of us who are trying to write stable stream wrappers can then
just keep in mind that stream_flush is where the action is. The lack
of a return value from stream_close is annoying but not
insurmountable.

However if folks are really so worried that respecting the return
values of the flush functions will break existing (bad) code, a
php.ini option could be added:

close_checks_flush

And turned on by those of us who would really like to know if our
files are really there (:

On Sun, Oct 23, 2011 at 8:59 AM, Jared Williams
<jared.willia...@ntlworld.com> wrote:
>
> Raised this 5 years ago..
>
> http://marc.info/?l=php-internals&m=113998880315574&w=2
>
> Jared
>
>> -----Original Message-----
>> From: Tom Boutell [mailto:t...@punkave.com]
>> Sent: 21 October 2011 20:40
>> To: PHP Internals
>> Subject: [PHP-DEV] fclose(), file_put_contents(), copy() all
>> fail to return false on error
>>
>> It appears that all three of these functions do not return
>> false on error as they should if the stream is not flushed
>> successfully. Yipes!
>>
>> https://bugs.php.net/bug.php?id=60110
>>
>> Am I missing something here?
>>
>> It's especially bad with, say, an S3 stream wrapper that
>> wants to write the whole thing as one HTTP request, but it
>> could bite you with plain old files too.
>>
>> --
>> Tom Boutell
>> P'unk Avenue
>> 215 755 1330
>> punkave.com
>> window.punkave.com
>>
>> --
>> PHP Internals - PHP Runtime Development Mailing List To
>> unsubscribe, visit: http://www.php.net/unsub.php
>>
>
>



-- 
Tom Boutell
P'unk Avenue
215 755 1330
punkave.com
window.punkave.com

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to