[ace-users] ACE_OS::sendv() behavior question concerning partial writes

Olivier Langlois Olivier.Langlois at streamtheworld.com
Fri Aug 24 10:08:49 CDT 2007


By looking at the ACE::sendv_n_i() code, I have found out that writev() can perform partial writes. I am surprised of that behavior because in the book Unix network programming vol. 1, second edition, it is written that writev() is an atomic operation. My understanding of what an atomic operation is, is that it either writes all the data or it does not write anything but obviously in the writev() context, atomic operation means something else.

So I would like to ask this group what atomic operation means for writev() and besides if ACE_IOV_MAX is defined what are the conditions with a non blocking stream socket that could result in a writev() partial write?

Thank you very much,
Olivier Langlois

More information about the Ace-users mailing list