EAGAIN是什么意思?

在标题中,EAGAIN是什么意思?

通常在执行非阻塞I / O时引发EAGAIN 。 这意味着“现在没有可用的数据,以后再试一次”

它可能 (或可能不 )与EWOULDBLOCK相同,这意味着“你的线程将不得不阻止才能做到这一点”

使用man 2 intro | less -Ip EAGAIN man 2 intro | less -Ip EAGAIN

  35 EAGAIN Resource temporarily unavailable. This is a temporary condi- tion and later calls to the same routine may complete normally. 

这意味着什么并不重要。 这意味着什么:

  • 您的系统调用失败
  • 什么都没有发生(系统调用是primefaces的,而这只是没有发生)
  • 可以再试一次(它可能会失败,可能会有不同的结果)
  • 或者您可以select其他方式。

EAGAIN的整个事情是你的进程不会被系统调用阻塞; 它有权select:重试或做一些有用的事情。

据此,这意味着“操作会导致进程被暂停”。