In my system, the final string on STDERR gets printed when the close above is commented; uncommenting the close triggers the fatal error:
And that’s exactly the point: when you have an explicit close, you can make it throw an exception; when you omit the close, the error is silent. But I want to omit the close and still get an exception. Fatal won’t help me there.
Thanks for the pointer about the loop device though! All I can say in retrospect is, d’uh. However, Linux has an easier way, mentioned by Zaxo in the old thread from gaal: there’s a /dev/full device where writing always fails with ENOSPC.
Makeshifts last the longest.