系统调用madvise的作用:建议内核如何使用指定段的内存。函数原型如下:

#include <sys/mman.h>

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

2.6.16内核引入。

MADV_DOFORK

2.6.16内核引入。

MADV_HWPOISON

2.6.32内核引入。

MADV_UNMERGEABLE

2.6.32内核引入。

MADV_MERGEABLE

2.6.32内核引入。

MADV_SOFT_OFFLINE

2.6.33内核引入。

MADV_HUGEPAGE

2.6.38内核引入。

MADV_NOHUGEPAGE

2.6.38内核引入。

MADV_DONTDUMP

3.4内核引入。

MADV_DODUMP

3.4内核引入。

m表示memory,f表示file,因此madvise是针对内存,而fadvise是针对文件。

Posix也有个类似的函数posix_madviseposix_fadvise

#include <sys/mman.h>

int posix_madvise(void *addr, size_t len, int advice);

#include <fcntl.h>

int posix_fadvise(int fd, off_t offset, size_t len, int advice);

更多详情请浏览:http://man7.org/linux/man-pages/man2/madvise.2.html,或执行man madvise命令。

madvise、fadvise、posix_madvise和posix_fadvise函数的使用的更多相关文章

  1. qemu安装

    1 下载qemu wget http://wiki.qemu-project.org/download/qemu-2.4.1.tar.bz2 2 解压qemu tar -jxvf qemu-2.4.1 ...

  2. Hadoop源码分析之读文件时NameNode和DataNode的处理过程

    转自: http://blog.csdn.net/workformywork/article/details/21783861 从NameNode节点获取数据块所在节点等信息 客户端在和数据节点建立流 ...

  3. 【MIT6.828】centos7下使用Qemu搭建xv6运行环境

    title:[MIT6.828]centos7下使用Qemu搭建xv6运行环境 date: "2020-05-05" [MIT6.828]centos7下搭建xv6运行环境 1. ...

  4. 内存映射 madvise mmap

    http://linux.die.net/man/2/madvise mmap && madvise的配合使用 mmap和madvise一起使用例子 mmap的作用是将硬盘文件的内容映 ...

  5. linux中fork()函数

    man fork: FORK() Linux Programmer's Manual FORK(2) NAME fork - create a child process SYNOPSIS #incl ...

  6. [转]mmap和madvise的使用

    1.    madvise的简介            madvise可以设置内存的分配方式或者说是分配的细节方式.具体参见linux man madvise. #include <sys/ty ...

  7. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  8. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  9. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

随机推荐

  1. (转)android - anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性

    2012-03-23 15:51 16144人阅读 评论(5) 收藏 举报 android <set xmlns:android="http://schemas.android.com ...

  2. @SessionAttributes和@ModelAttribute

    一.@ModelAttribute 在默认情况下,ModelMap 中的属性作用域是 request 级别是,也就是说,当本次请求结束后,ModelMap 中的属性将销毁.如果希望在多个请求中共享 M ...

  3. 【转】 Pro Android学习笔记(九七):BroadcastReceiver(1):基础小例子

    目录(?)[-] 基础小例子 发送Broadcast intent 运行情况 应用间的广播 文章转载只能用于非商业性质,且不能带有虚拟货币.积分.注册等附加条件.转载须注明出处:http://blog ...

  4. Spring启动后获取所有拥有特定注解的Bean,注解的属性值

    最近项目中遇到一个业务场景,就是在Spring容器启动后获取所有的Bean中实现了一个特定接口的对象,第一个想到的是ApplicationContextAware,在setApplicationCon ...

  5. 分布式锁之三:mysql实现-待整理

    下面我们来看下开源dubbo推荐的业界成熟的zookeeper做为注册中心, zookeeper是hadoop的一个子项目是分布式系统的可靠协调者,他提供了配置维护,名字服务,分布式同步等服务.对于z ...

  6. crush class实验

    标签(空格分隔): ceph,ceph实验,crushmap luminous版本的ceph新增了一个功能crush class,这个功能又可以称为磁盘智能分组.因为这个功能就是根据磁盘类型自动的进行 ...

  7. 1124 Raffle for Weibo Followers

    题意:水题,直接贴代码了.(为什么我第一遍做的时候代码写的那么烦?) 代码: #include <iostream> #include <string> #include &l ...

  8. 1139 First Contact

    题意:给出n个人,m对朋友关系,其中带负号的表示女孩.然后给出k对查询a,b,要求找出所有a的同性别好友c,以及b的同性别好友d,且c和d又是好友关系.输出所有满足条件的c和d,按c的升序输出,若c编 ...

  9. oracle 分析函数加order by的影响

    create table test (id number(2), name varchar2(10), salary number(6,2));insert into test values (1,' ...

  10. 1.2celery的安装

    我们可以使用python的包管理器pip来安装: pip install -U Celery 也可从官方直接下载安装包:https://pypi.python.org/pypi/celery/ tar ...