tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: partial failures in write(2) (and read(2))

On Feb 10, 2021, at 18:28, Thor Lancelot Simon <> 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.

John Franklin

Home | Main Index | Thread Index | Old Index