datalock(3C)datalock(3C)NAMEdatalock() - lock process into memory after allocating data and stack
allocates at least datsiz bytes of data space and stsiz bytes of stack
space, then locks the program in memory. The data space is allocated
by (see malloc(3C)). After the program is locked, this space is
released by (see malloc(3C)), making it available for use. This allows
the calling program to use that much space dynamically without receiv‐
ing the signal.
The effective user ID of the calling process must be super-user or be a
member of or have an effective group ID of a group having PRIV_MLOCK
access to use this call (see setprivgrp(2) in getprivgrp(2)).
The following call to allocates 4096 bytes of data space and 2048 bytes
of stack space, then locks the process in memory:
returns -1 if cannot allocate enough memory or if returned an error
Multiple datalocks cannot be the same as one big one.
Methods for calculating the required size are not yet well developed.
was developed by HP.
SEE ALSOgetprivgrp(2), plock(2), thread_safety(5).