当前位置:  技术问答>linux和unix

谁有关于函数mmap()方面的用法实例或者文章?

    来源: 互联网  发布时间:2015-07-07

    本文导语:  最好是中文的 谢谢 | mmap是一个重要的系统调用,它允许为不同目的而设置专用的独享内存区域。该内存可能是一个文件或其它特别对象的代理,在这种情形中,内核将保持内存区域和潜在对...

最好是中文的
谢谢

|
mmap是一个重要的系统调用,它允许为不同目的而设置专用的独享内存区域。该内存可能是一个文件或其它特别对象的代理,在这种情形中,内核将保持内存区域和潜在对象的一致,或者该内存可能是为一个应用程序所需要的简单的无格式内存。(应用程序通常不使用mmap来分配无格式内存区,因为此时malloc更符合其目的。)
mmap最普遍的使用方法之一是为内核本身通过内存映射(memory-map)形成一个可执行文件(参见8323行的一个例子)。这是关于二进制处理程序如何同分页机制协同工作以提供所需要分页的可执行体,这正如本章早些时候所暗示的。可执行体通过mmap被映射为进程内存空间中的适当区域,然后do_page_fault函数调入执行体所需的剩余页面。
被mmap分配的内存可能被标识为可执行,其中充满了指令代码,随后系统跳入其中开始执行;这正是Java Just-In-Time(JIT)编译器的工作方式。更简单的说,可执行文件能够被直接映射成一个正在运行的进程的内存空间;这项技术用于动态连接库的执行中。
执行mmap功能的内核函数是do_ mmap。

|
我在使用mmap是遇到这样的问题,我把一个文本文件映射到内存中,再将它写入到另一个文件中,不过这文件里含有二进制数据,后来发觉被写入文件只写了几个字节,不知是否和二进制数据有关,调试结果如下,望高手指点,不    
269                     if((tmp = mmap(0, len, PROT_READ, MAP_SHARED, fd, SyslogOff)) == (void *) -1) 
(gdb) n
275                     fp = fopen(TEMPPATH,"w+");
(gdb) n
276                     if(fp == NULL)
(gdb) n
282                     fprintf(fp, "%s", tmp);
(gdb) n
283                     fclose(fp);
(gdb) n
285                     close(fd);
(gdb) display tmp
1: tmp = 0x40156000 "201Q01"
(gdb) display len
2: len = 2430000
(gdb) display SyslogOff
3: SyslogOff = 0

    
 
 

您可能感兴趣的文章:

  • Linux c++虚函数(virtual function)简单用法示例代码
  • 浅谈SQLServer的ISNULL函数与Mysql的IFNULL函数用法详解
  • PHP的substr() 函数用法
  • 请教semop()函数的用法、含义
  • php中检测变量是否是一个对象的is_object函数介绍及用法举例
  • 求linux C++的时间相关函数及用法,急用,谢谢
  • c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
  • oracle中lpad函数的用法详解
  • linux c malloc函数定义及用法详解
  • getdate()函数的用法实例
  • c++断言assert()函数的头文件及其用法详解
  • 通过man显示umask函数的用法
  • c/c++ assert()函数用法及其头文件
  • Oracle中decode函数的用法
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • python中去空格函数的用法
  • C++ STL库中priority_queue介绍,成员函数说明及priority_queue具体用法举例
  • 关于外部函数extern func的用法疑问
  • malloc函数详解及用法举例
  • jQuery setTimeout()函数的用法介绍
  • c++ STL List查找遍历及各成员函数用法详细介绍
  • php setcookie函数的参数说明及其用法
  • php session_id()函数介绍及代码实例
  • 既然在定义实例变量的时候可以初始化实例变量的值,那还要构造函数干吗?谢谢!
  • Python过滤函数filter()使用自定义函数过滤序列实例
  • jquery中map函数与each函数的区别实例介绍
  • php构造函数与析构函数实例分析
  • T-SQL实例 函数结果设置为列别名
  • 有关Java构造函数的问题之二——实例性
  • C#中私有构造函数的特点和用途实例解析
  • 在JSP中如何实例化构造函数有参数的JavaBean?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ Maps 成员 key_comp():返回比较元素key的函数
  • 请问:定义了2个函数,其中第一个函数要访问另外一个函数的变量,怎么处理阿?谢谢
  • C++ Maps 成员 value_comp():返回比较元素value的函数
  • 如果知道一个函数的地址或函数名,如何得到函数所在的文件名?
  • C++ MultiMaps 成员 key_comp():返回比较key的函数
  • java的数学函数在那个类中,如幂函数、指数、对数、双曲线函数等?
  • C++ MultiMaps 成员 value_comp():返回比较元素value的函数
  • 一个父类的构造函数的参数是(Applet applet),请问它的子类构造函数当中应怎样调用父类构造函数?
  • C++ STL Bitsets构造函数及成员函数解释及代码示例
  • 虚函数被类的构造析构函数和成员函数调用虚函数的执行过程
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化
  • 在内核的某个函数中,如何能知道是哪个用户空间的函数调用了它,以及这个用户空间函数所在的文件?
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • 在dos下访问内存的MK_FP函数在linux下对应什么函数?int86()函数呢?
  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • 一个静态库包含多个函数,应用程序连接了库中的某个函数,应用程序目标代码中是否还包含了该静态库中的其他函数代码?
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
  • cityhash 32位,64位和128位介绍及函数列表
  • js的众多函数令小弟实在搞不清楚!哪有函数速查手册之类的软件或者书籍!谢了!比如,setInterval、clearInterval这两个函数是干什么的?
  • linux c下利用srand和rand函数生成随机字符串
  • 虚函数与纯虚函数(C++与Java虚函数的区别)的深入分析


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3