De man fork
no OS X (e sistemas baseados em BSD em geral):
ERRORS
Fork() will fail and no child process will be created if:
[EAGAIN] The system-imposed limit on the total number of processes under
execution would be exceeded.
This limit is configuration-dependent.
[EAGAIN] The system-imposed limit MAXUPRC (<sys/param.h>) on the total number
of processes under execution by a single user would be exceeded.
[ENOMEM] There is insufficient swap space for the new process.