• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            洗塵齋

            三懸明鏡垂鴻韻,九撩清泉洗塵心

            常用鏈接

            統計

            最新評論

            mmap進行文件映射可能遇到的問題

                mmap函數實現把一個文件映射到一個內存區域,從而我們可以像讀寫內存一樣讀寫文件,他比單純調用read/write也要快上許多。在某些時候我們可以把內存的內容拷貝到一個文件中實現內存備份,當然,也可以把文件的內容映射到內存來恢復某些服務。另外,mmap實現共享內存也是其主要應用之一,mmap系統調用使得進程之間通過映射同一個普通文件實現共享內存。
            關于mmap的內容請看《Unix環境高級編程》12章。在這里,說一下使用mmap函數時可能遇到的問題:
                    //下面的代碼把文件1.ls中的內容通過mmap函數寫入2.ls中,忽略出錯處理

                    int
             fd=open("1.ls",O_RDONLY);
                    
            int fd2=open("2.ls",O_CREAT|O_RDWR|O_TRUNC,S_IRUSR|S_IWUSR);//必須設置讀寫權限,若只有寫權限,會產生SIGSEGV信號
                                                                            
            //mmap進行文件映射時必須先讀取文件`

                    
            struct stat st;
                    fstat(fd,
            &st);
                    lseek(fd2,st.st_size
            -1,SEEK_SET);
                    write(fd2,
            "",1);        //必須的,如果不設置,當寫入數據的時候會遇到文件結束符,產生SIGBUS信號
                    void *_src=mmap(NULL,st.st_size,PROT_READ,MAP_SHARED, fd,0);
                    
            void *_des=mmap(NULL,st.st_size,PROT_WRITE,MAP_SHARED,fd2,0);

                    close(fd);      
            //關閉文件后 依然可修改文件內容
                    close(fd2);
                    memcpy(_des,_src,st.st_size);

            總結一下,可能產生的問題如下:
                1.進行文件映射的描述符必須擁有讀權限,否則會產生SIGSEGV信號
                2.把內存內容寫入映射文件時,必須確保被寫文件當前位置到文件結尾的長度不小于所寫內容長度,否則產生SIGBUS信號
                3.關閉文件描述符并不能保證文件內容不被修改
                4.munmap并不能使映射的內容寫回磁盤

            posted on 2007-09-13 10:56 芥之舟 閱讀(4048) 評論(0)  編輯 收藏 引用 所屬分類: unix

            亚洲欧美久久久久9999| 少妇高潮惨叫久久久久久| 久久久久久毛片免费看| 麻豆av久久av盛宴av| 久久综合噜噜激激的五月天| 99久久婷婷国产综合亚洲| 久久国产成人| 精品无码久久久久久午夜| 国内精品久久久久久久影视麻豆 | 亚洲午夜久久久久久噜噜噜| 俺来也俺去啦久久综合网| 亚洲一区精品伊人久久伊人| 996久久国产精品线观看| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产成人无码久久久精品一| 国产精品亚洲综合专区片高清久久久| 奇米影视7777久久精品人人爽| 99久久超碰中文字幕伊人| 99久久99久久精品国产片果冻| 久久男人中文字幕资源站| 久久久久久久99精品免费观看| 亚洲色欲久久久综合网东京热 | 久久久久人妻一区精品| 久久精品无码一区二区三区| 亚洲中文久久精品无码ww16| 亚洲精品NV久久久久久久久久| 91精品国产高清久久久久久91 | 亚洲国产日韩综合久久精品| 成人精品一区二区久久| 亚洲国产精品久久久久久| 国产精品一区二区久久国产 | AAA级久久久精品无码区| 久久综合久久久| 久久国产乱子精品免费女| 国产精品一久久香蕉国产线看| 性色欲网站人妻丰满中文久久不卡| 亚洲va久久久久| 中文字幕久久精品无码| 亚洲中文久久精品无码ww16| 精品久久久久久久久午夜福利| 国内精品久久久久影院免费|