NAME

POSIX::1003::Limit - POSIX access to ulimit and rlimit

INHERITANCE

POSIX::1003::Limit
  is a POSIX::1003

SYNOPSIS

# ULIMIT support

use POSIX::1003::Limit; # load all names

use POSIX::1003::Limit qw(ulimit);
# keys are strings!
$size = ulimit('UL_GETFSIZE');

use POSIX::1003::Limit qw(ulimit UL_GETFSIZE);
$size = UL_GETFSIZE;   # constants are subs

use POSIX::1003::Limit '%ulimit';
my $key = $ulimit{UL_GETFSIZE};
$ulimit{_SC_NEW_KEY} = $key_code;
$size = ulimit($key);

print "$_\n" for keys %ulimit;

# RLIMIT support

use POSIX::1003::Limit ':rlimit';

my ($cur, $max, $success) = getrlimit('RLIMIT_CORE');
my ($cur, $max) = getrlimit('RLIMIT_CORE');
my $cur = RLIMIT_CORE;

my $success = setrlimit('RLIMIT_CORE', 1e6, 1e8);
setrlimit('RLIMIT_CORE', 1e6) or die;
setrlimit('RLIMIT_CORE', RLIM_SAVED_MAX, RLIM_INFINITY);
RLIMIT_CORE(1e6, 1e8);

DESCRIPTION

This module provides access to the "ulimit" (user limit) and "rlimit" (resource limit) handling. On most systems, ulimit() is succeeded by rlimit() hence provides a very limited set of features.

Exporter

METHODS

POSIX::1003::Limit->exampleValue(NAME)

See "METHODS" in POSIX::1003

FUNCTIONS

Standard POSIX

getrlimit(RESOURCE)
my ($cur, $max, $success) = getrlimit('RLIMIT_CORE');
my ($cur, $max) = getrlimit('RLIMIT_CORE');
setrlimit(RESOURCE, CUR, [MAX])
my $success = setrlimit('RLIMIT_CORE', 1e6, 1e8);
ulimit(NAME)

Returns the ulimit value related to the NAMEd constant. The NAME must be a string. undef will be returned when the NAME is not known by the system.

my $filesize = ulimit('UL_GETFSIZE') || SSIZE_MAX;

Additional

rlimit_names()

Returns a list with all known resource names, unsorted.

ulimit_names()

Returns a list with all known names, unsorted.

CONSTANTS

%ulimit

This exported variable is a tied HASH which maps UL_* names on unique numbers, to be used with ulimit().

%rlimit

This exported variable is a tied HASH which maps RLIMIT_* names on unique numbers, to be used with getrlimit() and setrlimit().

The following constants where detected on your system when the module got installed. The second column shows the value which where returned at that time.

For ulimit, with a value when it is a getter:

UL_GETFSIZE    9223372036854775807
UL_GETMAXBRK   undef
UL_GETOPENMAX  1024
UL_SETFSIZE    (setter)

The constant names for rlimit, with the soft and hard limits that getrlimit() returned during installation of the module.

RLIMIT_AS          11484610560, 18446744073709551615
RLIMIT_CORE        0, 18446744073709551615
RLIMIT_CPU         18446744073709551615, 18446744073709551615
RLIMIT_DATA        18446744073709551615, 18446744073709551615
RLIMIT_FSIZE       18446744073709551615, 18446744073709551615
RLIMIT_LOCKS       18446744073709551615, 18446744073709551615
RLIMIT_MEMLOCK     65536, 262144
RLIMIT_MSGQUEUE    819200, 819200
RLIMIT_NICE        0, 0
RLIMIT_NLIMITS     18446744073709551615, 18446744073709551615
RLIMIT_NOFILE      1024, 8192
RLIMIT_NPROC       27003, 27003
RLIMIT_OFILE       1024, 8192
RLIMIT_RSS         3078516736, 18446744073709551615
RLIMIT_RTPRIO      0, 0
RLIMIT_SIGPENDING  27003, 27003
RLIMIT_STACK       8388608, 18446744073709551615

SEE ALSO

This module is part of POSIX-1003 distribution version 0.13, built on July 26, 2012. Website: http://perl.overmeer.net. The code is based on POSIX, which is released with Perl itself. See also POSIX::Util for additional functionality.

COPYRIGHTS

Copyrights of the perl code and the related documentation by 2011-2012 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html

1 POD Error

The following errors were encountered while parsing the POD:

Around line 172:

Deleting unknown formatting code M<>