OK, if you prefer to abort immediately and return an `int`, that's another option. Although, since we're casting to `size_t` later, better to use `ssize_t`. And I don't know if this means the system is horribly broken, but if it's supported, it should be supported properly.