On Feb 10, 2021, at 18:28, Thor Lancelot Simon <t...@panix.com> wrote: > > On Fri, Feb 05, 2021 at 08:10:06PM -0500, Mouse wrote: >>> It is possible for write() calls to fail partway through, after >>> already having written some data. >> >> It is. As you note later, it's also possible for read(). >> >> The rightest thing to do, it seems to me, would be to return the error >> indication along with how much was successfully written (or read). But >> that, of course, requires a completely new API, which I gather is more >> intrusive than you want to get into here. > > I think it could be done with a signal in combination with the existing > API.
From the application’s perspective of calling write() in libc, when there is such an error the libc function could return a short response and set errno. That doesn’t work so much for the kernel’s system call. I suppose libc could set a default handler for the new signal, and do some extra work to set errno. Apps that need more control can override the signal hander. jf -- John Franklin frank...@elfie.org