系统调用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);