黑马程序员Linux系统开发视频之mmap使用注意事项
使用mmap時(shí)務(wù)必注意以下事項(xiàng)。原封不動(dòng)搬運(yùn)過(guò)來(lái),版權(quán)歸原作者所有。?
NAME
?????? mmap, munmap - map or unmap files or devices into memory
SYNOPSIS
?????? #include <sys/mman.h>
?????? void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
?????? int munmap(void *addr, size_t length);
?使用mmap時(shí)務(wù)必注意以下事項(xiàng):
1.創(chuàng)建映射區(qū)的過(guò)程中,隱含著一次對(duì)映射文件的讀操作。
2.當(dāng)MAP_SHARED時(shí),要求:映射區(qū)的權(quán)限應(yīng)該<=文件打開(kāi)的權(quán)限(出于對(duì)映射區(qū)的保護(hù))。而MAP_PRIVATE則無(wú)所謂,因?yàn)閙map中的權(quán)限是對(duì)內(nèi)存的限制。
3.映射區(qū)的釋放與文件關(guān)閉無(wú)關(guān)。只要映射建立成功,文件可以立即關(guān)閉。
4.特別注意,當(dāng)映射文件大小為0時(shí),不能創(chuàng)建映射區(qū)。所以:用于映射的文件必須有實(shí)際大小!!mmap使用時(shí)常常會(huì)出現(xiàn)總線錯(cuò)誤,通常是由于共享存儲(chǔ)空間大小引起的。
5.munmap傳入的地址一定是mmap的返回地址。堅(jiān)決杜絕指針++操作。
6.如果文件偏移量必須為4k的整數(shù)倍。
7.mmap創(chuàng)建映射區(qū)出錯(cuò)概率非常高,一定要檢查返回值,確保映射區(qū)建立成功再進(jìn)行后續(xù)操作。
總結(jié)
以上是生活随笔為你收集整理的黑马程序员Linux系统开发视频之mmap使用注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 编译原理三大经典书籍(龙书 虎书 鲸书)
- 下一篇: 黑马程序员Linux系统开发视频之产生信