This errno value, meaning "Cannot allocate memory", may be confusing to many people who are not very familiar with recent Unix virtual memory systems' workings. What it usually means is that you are attempting to overstep your bounds (resource limits) set on your process. Because modern Unix systems quite often do swap overcommit, you would not actually get an ENOMEM if your system were truly out of memory. But, if you have a limited heap size, for instance, once you reached this limit, malloc would start returning ENOMEM errors.

See ENOBUFS for network-related memory shortages

Log in or register to write something here or to contact authors.