天天看點

madvise、fadvise、posix_madvise和posix_fadvise函數的使用

系統調用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);

繼續閱讀