web-dev-qa-db-ja.com

EAGAINの意味?

タイトルのように、EAGAINはどういう意味ですか?

57
mrdavenz

[〜#〜] eagain [〜#〜] は、 ノンブロッキングI/O の実行時に頻繁に発生します。これは、「現在利用可能なデータがありません。後で再試行してください」を意味します。

might (または might not )はEWOULDBLOCKと同じです。つまり、 "スレッドはブロックする必要がありますそれをするために」

59

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

それが意味することはそれほど重要ではありません。それが意味するもの:

  • システムコールに失敗しました
  • 何も起こりませんでした(システムコールはアトミックであり、これは発生しませんでした)
  • you couldもう一度試してください(失敗する可能性がありますagain、場合によっては異なる結果が得られます)
  • またはcouldを選択します。

EAGAINのすべては、システムコール内でプロセスがブロックされないことです。選択する権利があります。再試行するか、何か役に立つことをしてください。

5
wildplasser

this によれば、これは「操作がプロセスを中断させたであろう」ことを意味します。

0
thelost