As in the title what does EAGAIN mean?
Using 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.
According to this, it means "Operation would have caused the process to be suspended."
What it means is less important. What it implies:
The whole thing about EAGAIN
is that your process is not blocked inside the system call; it has the right to choose: either retry or do something useful.
EAGAIN is often raised when performing non-blocking I/O. It means "there is no data available right now, try again later".
It might (or might not) be the same as EWOULDBLOCK
, which means "your thread would have to block in order to do that".