ulimit [ -HSa ] [ { -bcdfiklmnpqrsTtvwx | -N resource } [ limit ] ... ]
       Set  or  display  resource limits of the shell and the processes
       started by the shell.  The value of limit can be a number in the
       unit specified below or one of the values `unlimited', which re-
       moves the limit on the resource, or `hard', which uses the  cur-
       rent value of the hard limit on the resource.

       By  default, only soft limits are manipulated. If the -H flag is
       given use hard limits instead of soft limits.  If the -S flag is
       given together with the -H flag set both hard and soft limits.

       If no options are used, the file size limit (-f) is assumed.

       If limit is omitted the current value of the specified resources
       are printed.  When more than one resource value is printed,  the
       limit name and unit is printed before each value.

       When looping over multiple resources, the shell will abort imme-
       diately if it detects a badly formed argument.  However,  if  it
       fails to set a limit for some other reason it will continue try-
       ing to set the remaining limits.

       Not all the following resources are supported  on  all  systems.
       Running ulimit -a will show which are supported.

       -a     Lists all of the current resource limits.
       -b     Socket buffer size in bytes (N.B. not kilobytes)
       -c     512-byte blocks on the size of core dumps.
       -d     Kilobytes on the size of the data segment.
       -f     512-byte blocks on the size of files written.
       -i     The number of pending signals.
       -k     The number of kqueues allocated.
       -l     Kilobytes on the size of locked-in memory.
       -m     Kilobytes on the size of physical memory.
       -n     open file descriptors.
       -p     The number of pseudo-terminals.
       -q     Bytes in POSIX message queues.
       -r     Maximum  real  time priority.  On some systems where this
              is not available, such as NetBSD, this has the  same  ef-
              fect as -T for compatibility with sh.
       -s     Kilobytes on the size of the stack.
       -T     The number of simultaneous threads available to the user.
       -t     CPU seconds to be used.
       -u     The number of processes available to the user.
       -v     Kilobytes on the size of virtual memory.  On some systems
              this refers to the limit called `address space'.
       -w     Kilobytes on the size of swapped out memory.
       -x     The number of locks on files.

       A resource may also be specified by integer in the form `-N  re-
       source',  where  resource corresponds to the integer defined for
       the resource by the operating system.  This may be used  to  set
       the  limits for resources known to the shell which do not corre-
       spond to option letters.  Such limits will be shown by number in
       the output of `ulimit -a'.

       The  number may alternatively be out of the range of limits com-
       piled into the shell.  The shell will try to read or  write  the
       limit anyway, and will report an error if this fails.
