成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Linux操作系統(tǒng)中的mmap簡(jiǎn)介

運(yùn)維 系統(tǒng)運(yùn)維
Linux操作系統(tǒng)能否在將來(lái)?yè)屨嘉④浀姆蓊~?很多的開(kāi)發(fā)者都在想這個(gè)問(wèn)題。其實(shí)現(xiàn)在不能讓一家獨(dú)大,因?yàn)槿魏我粋€(gè)事務(wù)只要被壟斷了就是不好的,有競(jìng)爭(zhēng)才有發(fā)展。

Linux操作系統(tǒng)能否在將來(lái)?yè)屨嘉④浀姆蓊~?很多的開(kāi)發(fā)者都在想這個(gè)問(wèn)題。其實(shí)現(xiàn)在不能讓一家獨(dú)大,因?yàn)槿魏我粋€(gè)事務(wù)只要被壟斷了就是不好的,有競(jìng)爭(zhēng)才有發(fā)展,但是起碼在近期Linux操作系統(tǒng)還不具備此條件,個(gè)人認(rèn)為關(guān)鍵是在于Linux操作系統(tǒng)版本太多,不夠統(tǒng)一的局面造成的。

Linux操作系統(tǒng)提供了內(nèi)存映射函數(shù)mmap,它把文件內(nèi)容映射到一段內(nèi)存上(準(zhǔn)確說(shuō)是虛擬內(nèi)存上), 通過(guò)對(duì)這段內(nèi)存的讀取和修改, 實(shí)現(xiàn)對(duì)文件的讀取和修改, 先來(lái)看一下mmap的函數(shù)聲明:

頭文件:
<unistd.h>
<sys/mman.h>

原型: void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offsize);
返回值: 成功則返回映射區(qū)起始地址, 失敗則返回MAP_FAILED(-1).

參數(shù):
addr: 指定映射的起始地址, 通常設(shè)為NULL, 由系統(tǒng)指定.
length: 將文件的多大長(zhǎng)度映射到內(nèi)存.
prot: 映射區(qū)的保護(hù)方式, 可以是:
PROT_EXEC: 映射區(qū)可被執(zhí)行.
PROT_READ: 映射區(qū)可被讀取.
PROT_WRITE: 映射區(qū)可被寫(xiě)入.
PROT_NONE: 映射區(qū)不能存取.
flags: 映射區(qū)的特性, 可以是:
MAP_SHARED: 對(duì)映射區(qū)域的寫(xiě)入數(shù)據(jù)會(huì)復(fù)制回文件, 且允許其他映射該文件的進(jìn)程共享.
MAP_PRIVATE: 對(duì)映射區(qū)域的寫(xiě)入操作會(huì)產(chǎn)生一個(gè)映射的復(fù)制(copy-on-write), 對(duì)此區(qū)域所做的修改不會(huì)寫(xiě)回原文件.
此外還有其他幾個(gè)flags不很常用, 具體查看Linux操作系統(tǒng) C函數(shù)說(shuō)明.
fd: 由open返回的文件描述符, 代表要映射的文件.
offset: 以文件開(kāi)始處的偏移量, 必須是分頁(yè)大小的整數(shù)倍, 通常為0, 表示從文件頭開(kāi)始映射.

下面說(shuō)一下內(nèi)存映射的步驟:
用open系統(tǒng)調(diào)用打開(kāi)文件, 并返回描述符fd.
用mmap建立內(nèi)存映射, 并返回映射首地址指針start.
對(duì)映射(文件)進(jìn)行各種操作, 顯示(printf), 修改(sprintf).
用munmap(void *start, size_t lenght)關(guān)閉內(nèi)存映射.
用close系統(tǒng)調(diào)用關(guān)閉文件fd.

注意事項(xiàng):
在修改映射的文件時(shí), 只能在原長(zhǎng)度上修改, 不能增加文件長(zhǎng)度, 因?yàn)閮?nèi)存是已經(jīng)分配好的.

這里介紹的Linux操作系統(tǒng)中的mmap知識(shí),望對(duì)你學(xué)習(xí)Linux知識(shí)有所幫助。

【編輯推薦】

  1. 利用日志使管理Linux更輕松
  2. 操作筆記:Linux Framebuffer編程
  3. 詳解介紹Linux文件種類
  4. 命令大全:Linux高級(jí)命令行技巧
  5. 簡(jiǎn)介L(zhǎng)inux截屏工具:import
責(zé)任編輯:小霞 來(lái)源: 552201凌
相關(guān)推薦

2010-01-06 14:36:07

Linux操作系統(tǒng)

2010-02-25 15:32:25

Linux操作系統(tǒng)

2010-04-23 14:12:37

Aix操作系統(tǒng)

2009-12-09 17:25:19

Linux操作系統(tǒng)

2010-04-27 11:38:14

OpenSUSE 11

2013-11-15 17:23:50

Linux技巧文件管理

2019-06-14 08:24:16

塊設(shè)備Linux操作系統(tǒng)

2009-12-22 13:44:33

Linux操作系統(tǒng)

2009-12-25 14:32:30

Linux操作系統(tǒng)

2010-03-16 14:25:48

Linux操作系統(tǒng)

2011-01-10 16:34:13

linux安裝

2009-02-20 19:56:26

WindowsLinux雙系統(tǒng)

2020-12-29 16:39:01

Linux代碼命令

2023-03-13 14:08:00

系統(tǒng)抽象操作系統(tǒng)大型系統(tǒng)

2010-04-26 17:24:56

Unix操作系統(tǒng)

2010-04-20 16:58:30

Unix操作系統(tǒng)

2009-12-23 10:36:48

Linux操作系統(tǒng)

2021-07-22 23:16:15

2009-08-21 15:33:56

應(yīng)用技巧嵌入式LinuxLinux操作系統(tǒng)

2010-05-26 10:22:04

Slax操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: yiren22综合网成人 | 天天干视频 | 一区二区三区久久 | 一级毛片网 | 美女一级毛片 | 国产精品久久一区二区三区 | 午夜精品一区二区三区在线观看 | 欧美性猛交一区二区三区精品 | 免费艹逼视频 | 午夜影院黄 | 久久久久亚洲精品 | 国产日韩电影 | 一区二区三区国产精品 | 欧美中文字幕一区二区三区亚洲 | 精品一区二区三区在线观看 | 午夜三级网站 | 精品在线免费看 | 欧美久久精品一级黑人c片 91免费在线视频 | 一区二区三区欧美在线 | 成人精品国产 | 亚洲成人久久久 | 色综合99| 欧美日韩精品一区二区三区四区 | 99re在线观看| 精品视频一区二区三区在线观看 | 久久精品毛片 | 农村黄性色生活片 | www.夜夜草| 97久久精品午夜一区二区 | 日韩视频在线一区二区 | 91在线观看免费视频 | 夜夜操操操 | 国产十日韩十欧美 | 九九看片| 日韩精品一区二区三区第95 | 99国产精品视频免费观看一公开 | 国产中文字幕av | 精品国产99 | 国产91视频一区二区 | 日韩电影中文字幕在线观看 | 久久av在线播放 |