int
minherit(void *addr, size_t len, int inherit)
)
system call
changes the specified range of virtual addresses to have the specified
fork-time inheritance characteristic
inherit,
which can be set to
MAP_INHERIT_NONE,
MAP_INHERIT_COPY,
or
MAP_INHERIT_SHARE.
Also possible is
MAP_INHERIT_DEFAULT,
which defaults to
MAP_INHERIT_COPY.
Not all implementations will guarantee that the inheritance characteristic
can be set on a page basis;
the granularity of changes may be as large as an entire region.
Normally, the entire address space is marked
MAP_INHERIT_COPY;
when the process calls
fork(),
the child receives a (virtual) copy of the entire address space.
Pages or regions marked
MAP_INHERIT_SHARE
are shared between the address spaces, while pages or regions marked
MAP_INHERIT_NONE
will be unmapped in the child.
)
will fail if:
EINVAL])
function first appeared in
OpenBSD.
).