Что означает EAGAIN? - программирование
Подтвердить что ты не робот

Что означает EAGAIN?

Как и в названии, что означает EAGAIN?

4b9b3361

Ответ 1

EAGAIN часто возникает при выполнении неблокирующих операций ввода-вывода. Это означает, что "нет доступных данных прямо сейчас, повторите попытку позже".

Он мог (или не мог) быть таким же, как EWOULDBLOCK, что означает "ваш поток должен был бы блокировать, чтобы сделать это".

Ответ 2

Использование 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.

Ответ 3

То, что это означает, менее важно. Что это означает:

  • ваш системный вызов не выполнен.
  • ничего не произошло (системные вызовы являются атомарными, и этого просто не было)
  • вы можете попробовать еще раз (это может снова потерпеть неудачу, возможно, с другим результатом)
  • или вы можете выбрать другое.

Все о EAGAIN заключается в том, что ваш процесс не заблокирован внутри системного вызова; он имеет право выбрать: либо повторить попытку, либо сделать что-то полезное.

Ответ 4

В соответствии с this, это означает, что операция приведет к приостановке процесса.