> (In general, erroring in I/O is a whole additional can of worms; it's > wrong to not report back however much work happened before the error > when it can't be undone, but also impossible to both report work and > raise an error. [...])
To the extent that it's impossible, it's impossible only because the APIs provided by the kernel to userland don't have any way to represent such a thing. This would border on trivial to fix, except that it would be difficult to get much userland code to use the resulting APIs because of their lack of portability to other UNIX variants. /~\ The ASCII Mouse \ / Ribbon Campaign X Against HTML mo...@rodents-montreal.org / \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B