At fairly high level in the Linux write() function, it filters out requests for writing 0 length buffers. Which makes sense. Who'd want to the OS wasting it's time drilling through layers only to determine there is no work to be done?
Well ... me.
It's related to this question; and the discovery that the bit-banged I2C driver will give a potentially useful return code if the address (sent on the bus before data) will give an error if the handshaking is wrong.
One could send dummy data after the address, but not with the device I'm using. (Perhaps I'll try a read ...).
So the question is: What sort of hell would be unleashed if the kernel were to allow zero (0) length writes?