PROJECT(3PERL) Perl Library Functions PROJECT(3PERL)


NAME


Project - Perl interface to Projects

SYNOPSIS


use Sun::Solaris::Project qw(:ALL);
my $projid = getprojid();


DESCRIPTION


This module provides wrappers for the Project-related system calls and
the libproject(3LIB) library. Also provided are constants from the
various Project-related headers.

Constants


MAXPROJID, PROJNAME_MAX, PROJF_PATH, PROJECT_BUFSZ, SETPROJ_ERR_TASK, and
SETPROJ_ERR_POOL.

Functions


getprojid()

This function returns the numeric project ID of the calling process
or undef if the underlying getprojid(2) system call is unsuccessful.


setproject($project, $user, $flags)

If $user is a member of the project specified by $project,
setproject() creates a new task and associates the appropriate
resource controls with the process, task, and project. This function
returns 0 on success. If the underlying task creation fails,
SETPROJ_ERR_TASK is returned. If pool assignment fails,
SETPROJ_ERR_POOL is returned. If any resource attribute assignments
fail, an integer value corresponding to the offset of the failed
attribute assignment in the project database is returned. See
setproject(3PROJECT).


activeprojects()

This function returns a list of the currently active projects on the
system. Each value in the list is the numeric ID of a currently
active project.


getprojent()

This function returns the next entry from the project database. When
called in a scalar context, getprojent() returns only the name of the
project. When called in a list context, getprojent() returns a
6-element list consisting of:

($name, $projid, $comment, \@users, \@groups, $attr)

\@users and \@groups are returned as arrays containing the
appropriate user or project lists. On end-of-file undef is returned.


setprojent()

This function rewinds the project database to the beginning of the
file.


endprojent()

This function closes the project database.


getprojbyname($name)

This function searches the project database for an entry with the
specified nam. It returns a 6-element list as returned by
getprojent() if the entry is found and undef if it cannot be found.


getprojbyid($id)

This function searches the project database for an entry with the
specified ID. It returns a 6-element list as returned by
getprojent() if the entry is found or undef if it cannot be found.


getdefaultproj($user)

This function returns the default project entry for the specified
user in the same format as getprojent(). It returns undef if the user
cannot be found. See getdefaultproj(3PROJECT) for information about
the lookup process.


fgetprojent($filehandle)

This function returns the next project entry from $filehandle, a Perl
file handle that must refer to a previously opened file in project(4)
format. Return values are the same as for getprojent().


inproj($user, $project)

This function checks whether the specified user is able to use the
project. This function returns true if the user can use the project
and false otherwise. See inproj(3PROJECT).


getprojidbyname($project)

This function searches the project database for the specified
project. It returns the project ID if the project is found and undef
if it is not found.


Class methods


None.

Object methods


None.

Exports


By default nothing is exported from this module. The following tags can
be used to selectively import constants and functions defined in this
module:

:SYSCALLS
getprojid()


:LIBCALLS
setproject(), activeprojects(), getprojent(), setprojent(),
endprojent(), getprojbyname(), getprojbyid(),
getdefaultproj(), fgetprojent(), inproj(), and
getprojidbyname()


:CONSTANTS
MAXPROJID, PROJNAME_MAX, PROJF_PATH, PROJECT_BUFSZ,
SETPROJ_ERR_TASK, and SETPROJ_ERR_POOL


:ALL
:SYSCALLS, :LIBCALLS, and :CONSTANTS


ATTRIBUTES


See attributes(5) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+

SEE ALSO


getprojid(2), getdefaultproj(3PROJECT), inproj(3PROJECT),
libproject(3LIB), setproject(3PROJECT), project(4), attributes(5)


December 1, 2002 PROJECT(3PERL)