The maximum memory that can be used by the program before a fault occurs is not well defined, and may be much less that the limits, depending on what other programs are running, the actual size of the swap space, and other factors. The limits are either system defaults, or values set with the limits(1) shell command (Unix/Linux). The ``hard'' and ``soft'' values are those returned by the system call, and have different interpretations under different Unix versions.