如何在非阻塞sendfile完成时收到通知

时间:2015-04-06 15:28:24

标签: c linux network-programming

我在Linux上以非阻塞模式使用sendfile来使用零拷贝。 但是我不知道如何处理以下情况。

  • sendfile(所有数据都缓存在要发送的内核中)
  • 在发送所有数据包之前,已修改基础文件。
  • 客户端现在将收到修改数据而不是原始数据

你可以看到这里发生的一个例子。

https://git.kernel.org/cgit/docs/man-pages/man-pages.git/patch?id=7b6a3299776b5c1c4f169a591434a855d50c68b4

我的问题是,有什么方法可以在发送所有数据包时收到通知,而不是仅在套接字可用于再次写入时通知?

我已尝试轮询SIOCOUTQ以检查它是否为零,我仍然遇到同样的问题。

0 个答案:

没有答案