|
NAMEminherit —
control the inheritance of pages
LIBRARYStandard C Library (libc, -lc)SYNOPSIS#include <sys/mman.h>
int
DESCRIPTIONTheminherit () system call changes the specified pages
to have the inheritance characteristic inherit. 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. FreeBSD is capable of adjusting inheritance
characteristics on a page basis. Inheritance only effects children created by
fork (). It has no effect on
exec (). exec'd processes replace their address space
entirely. This system call also has no effect on the parent's address space
(other than to potentially share the address space with its children).
Inheritance is a rather esoteric feature largely superseded by the
RETURN VALUESTheminherit () function returns the value 0 if
successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
ERRORSTheminherit () system call will fail if:
SEE ALSOfork(2), madvise(2), mincore(2), mprotect(2), msync(2), munmap(2), rfork(2)HISTORYTheminherit () system call first appeared in
OpenBSD and then in FreeBSD
2.2.
The BUGSOnce you set inheritance toMAP_PRIVATE or
MAP_SHARED , there is no way to recover the original
copy-on-write semantics short of unmapping and remapping the area.
Visit the GSP FreeBSD Man Page Interface. |