>It was suggested to me that this might be of interest outside the LSB, >and that I should forward it more widely... Running under strace, I see you write 2048 bytes at a time until you see EAGAIN. Then you read 4096 bytes to empty the pipe a little. Then you try to write 4120 bytes (more than you just emptied). Is that what you are trying to do? Do you expect a partial write, rather than the EAGAIN? -Tony