c-EAGAIN是什么意思?

正如标题所示,EAGAIN是什么意思?

mrdavenz asked 2019-11-08T02:04:58Z
4个解决方案
59 votes

执行非阻塞I / O时通常会引发EAGAIN。 这表示“目前没有可用数据,请稍后再试”。

它可能(也可能不)与EWOULDBLOCK相同,这意味着“您的线程必须进行阻塞才能这样做”。

Frédéric Hamidi answered 2019-11-08T02:05:22Z
15 votes

使用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.
turfx answered 2019-11-08T02:05:46Z
5 votes

这意味着次要的。 这意味着什么:

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

关于EAGAIN的全部问题是,您的进程未在系统调用内被阻止;请参见图11。 它有权选择:重试或执行一些有用的操作。

wildplasser answered 2019-11-08T02:06:43Z
0 votes

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

thelost answered 2019-11-08T02:07:07Z
translate from https://stackoverflow.com:/questions/4058368/what-does-eagain-mean