I experimented with async Linux network sockets (aio_read and others in aio.h / librt), and one thing I was trying to figure out was whether they are a null copy or not. Pretty much everything I've read so far discusses input / output files, while my network input / output interests me.
AIO is a little painful to use, and I suspect it is not portable, so I wondered if its perseverance was worth it. Zero-copy is the only advantage (albiet is the main one for my purposes), which would have (without blocking) select / epoll ..
c linux aio
Remy
source share