• <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>

            S.l.e!ep.¢%

            像打了激速一樣,以四倍的速度運轉(zhuǎn),開心的工作
            簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
            posts - 1098, comments - 335, trackbacks - 0, articles - 1
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            使用Share Memory時的shmget失敗與ftok的關(guān)系。

            對于長期運行的系統(tǒng),產(chǎn)生的日志是大量的,即使每2秒一條,一天也有4W多條。假如我們只需要在想觀察的時候動態(tài)地看到當前記錄或計數(shù),那么可以將日志的信息寫到一個共享內(nèi)存區(qū),然后寫一個LogReader,去訪問這個共享內(nèi)存區(qū)即可。

            ?

            要使用共享內(nèi)存,應該有如下步驟:
            1.開辟一塊共享內(nèi)存 shmget()
            2.允許本進程使用共某塊共享內(nèi)存 shmat()
            3.寫入/讀出

            需要刪除這塊內(nèi)存的時候,步驟為

            4.禁止本進程使用這塊共享內(nèi)存 shmdt()
            5.刪除這塊共享內(nèi)存 shmctl()或者命令行下ipcrm

            ?

            過程會用到以下的這些函數(shù):

            ?int shmget( key_t shmkey , int shmsiz , int flag );

            ?創(chuàng)建一個新的共享內(nèi)存區(qū)或打開一存在的共享內(nèi)存區(qū)

            ?

            void *shmat( int shmid , char *shmaddr , int shmflag );

            返回共享內(nèi)存區(qū)在調(diào)用進程內(nèi)的起始地址。 shmaddr最好設置為NULL,這樣系統(tǒng)會替我們選擇地址,可移植性更強;否則會根據(jù)shmflag時候指定了SHM_RND,將共享內(nèi)存區(qū)附接到shmaddr參數(shù)指定的地址。

            ?

            今天調(diào)試的時候發(fā)現(xiàn)了以下的這些問題:兩個需要通信的進程使用一個同樣的字符串調(diào)用ftok生成key,并對該key調(diào)用shmget,其中有一個不能訪問到共享內(nèi)存區(qū)。查閱了UNP2才明白了。


            ftok將一個已存在的路徑名和一個整數(shù)標識符轉(zhuǎn)換成一個key_t值。

            ???? key_t ftok(const char *pathname, int proj_id)

            ftok會組合三個值來產(chǎn)生key:

            1、pathname所在的文件系統(tǒng)的信息。

            2、該文件在本文件系統(tǒng)內(nèi)的索引節(jié)點號。

            3、id的低序8位。

            ?

            key_t的生成是以一個已存在的文件作為輸入,并不是簡單的字符串散列函數(shù),必須真正存在某個文件,才能將其位置傳入ftok。
            久久国产一片免费观看| 激情综合色综合久久综合| 国内精品伊人久久久久网站| 国产午夜精品理论片久久影视| 成人久久久观看免费毛片| 狠狠久久综合伊人不卡| 7国产欧美日韩综合天堂中文久久久久 | 久久香综合精品久久伊人| av无码久久久久久不卡网站 | 久久99中文字幕久久| 99久久国产主播综合精品| 四虎国产精品成人免费久久| 91精品国产综合久久精品| 国产毛片久久久久久国产毛片| 久久久久久人妻无码| 免费久久人人爽人人爽av| 99国产精品久久| 18禁黄久久久AAA片| 国产激情久久久久影院小草| 亚洲国产精品无码成人片久久| 国内精品久久久久久麻豆| 久久精品国产2020| 久久久这里有精品| 久久人人超碰精品CAOPOREN| 女人香蕉久久**毛片精品| 久久精品国产亚洲77777| 久久精品一区二区影院| 国产精品欧美久久久天天影视| 久久国产AVJUST麻豆| 久久亚洲AV无码西西人体| 久久青草国产手机看片福利盒子| 亚洲人成电影网站久久| 久久精品这里只有精99品| 国产精品亚洲美女久久久| AV无码久久久久不卡蜜桃| 精品久久久久久无码中文字幕一区| 2020久久精品亚洲热综合一本 | 看久久久久久a级毛片| 久久久久人妻一区二区三区| 亚洲欧洲精品成人久久奇米网| 久久午夜福利无码1000合集|