系統調用madvise的作用:建議核心如何使用指定段的記憶體。函數原型如下:
#include
int madvise(void *addr, size_t length, int advice);
參數advice的取值有如下幾種:
MADV_NORMAL
MADV_RANDOM
MADV_SEQUENTIAL
MADV_WILLNEED
MADV_DONTNEED
MADV_REMOVE
2.6.16核心引入。
MADV_DONTFORK
MADV_DOFORK
MADV_HWPOISON
2.6.32核心引入。
MADV_UNMERGEABLE
MADV_MERGEABLE
MADV_SOFT_OFFLINE
2.6.33核心引入。
MADV_HUGEPAGE
2.6.38核心引入。
MADV_NOHUGEPAGE
MADV_DONTDUMP
3.4核心引入。
MADV_DODUMP
m表示memory,f表示file,是以madvise是針對記憶體,而fadvise是針對檔案。
int posix_madvise(void *addr, size_t len, int advice);
int posix_fadvise(int fd, off_t offset, size_t len, int advice);