web-dev-qa-db-fra.com

Que signifie EAGAIN?

Comme dans le titre, que signifie EAGAIN?

56
mrdavenz

EAGAIN est souvent déclenché lors de l'exécution de E/S non bloquantes . Cela signifie que "il n’ya pas de données disponibles pour le moment, réessayez plus tard".

Il pourrait (ou ne pourrait pas ) sera identique à EWOULDBLOCK, ce qui signifie que "votre thread devra bloquer pour pouvoir le faire".

57
Frédéric Hamidi

Utiliser 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.
15
turfx

Ce que cela signifie est moins important. Qu'est-ce que cela implique:

  • votre appel système a échoué
  • rien ne s'est passé (les appels système sont atomiques, et celui-ci n'a tout simplement pas eu lieu)
  • vous pourriez essayez à nouveau (cela pourrait échouer encore , avec éventuellement un résultat différent)
  • ou vous pouvez choisissez autrement.

La chose à propos de EAGAIN est que votre processus n'est pas bloqué dans l'appel système; il a le droit de choisir: réessayer ou faire quelque chose d'utile.

4
wildplasser

Selon this , cela signifie que "l'opération aurait entraîné la suspension du processus".

0
thelost