develooper Front page | perl.perl5.porters | Postings from June 2017

Re: open '>:encoding(UTF-8)' masking write errors?

Thread Previous | Thread Next
Tony Cook
June 21, 2017 01:01
Re: open '>:encoding(UTF-8)' masking write errors?
Message ID:
On Sat, Jun 17, 2017 at 03:25:59PM +0100, Dave Mitchell wrote:
> Consider the following code:
>     my $data = 'x' x 1024;
>     my $file = '/dev/full';
>     open my $out, '>:encoding(UTF-8)', $file
>         or die "Error: can't open '$file' for writing: $!\n";
>     print $out $data or die "Error: writing to file '$file': $!\n";
>     close $out       or die "Error: closing file '$file': $!\n";
> It runs without error, which I find surprising and disturbing.
> Changing the open line to
>     open my $out, '>', $file
> gives the error I expect:
>     Error: closing file '/dev/full': No space left on device
> Is this a bug or do I have unrealistic expectations?
> An strace shows that in both cases, the OS is returning an error:
>     write(4, "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"..., 1024) = -1 ENOSPC (No space left on device)

That looks like a bug to me.


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