wake-up-neo.com

Was bedeutet EAGAIN?

Wie im Titel was bedeutet EAGAIN?

56
mrdavenz

EAGAIN wird häufig ausgelöst, wenn nicht blockierende E/A ausgeführt wird. Es bedeutet "derzeit sind keine Daten verfügbar, versuchen Sie es später erneut".

Vielleicht (oder vielleicht auch nicht ) ist das Gleiche wie EWOULDBLOCK, das heißt "Ihr Thread müsste dafür blockieren".

57

man 2 intro | less -Ip EAGAIN verwenden:

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

Was es bedeutet, ist weniger wichtig. Was es bedeutet:

  • ihr Systemaufruf ist fehlgeschlagen
  • nichts ist passiert (Systemaufrufe sind atomar, und dieser ist einfach nicht passiert)
  • sie könnten versuchen es erneut (es könnte fehlschlagen erneut, möglicherweise mit einem anderen Ergebnis)
  • oder du könntest etwas anderes wählen.

Das Ganze an EAGAIN ist, dass Ihr Prozess im Systemaufruf nicht blockiert ist. Es hat das Recht zu wählen: entweder erneut versuchen oder etwas Nützliches tun.

5
wildplasser

Gemäß this bedeutet dies: "Der Vorgang hätte den Prozess ausgesetzt."

0
thelost