• <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.¢%

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

            使用Share Memory時的shmget失敗與ftok的關系。

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

            ?

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

            需要刪除這塊內存的時候,步驟為

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

            ?

            過程會用到以下的這些函數:

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

            ?創建一個新的共享內存區或打開一存在的共享內存區

            ?

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

            返回共享內存區在調用進程內的起始地址。 shmaddr最好設置為NULL,這樣系統會替我們選擇地址,可移植性更強;否則會根據shmflag時候指定了SHM_RND,將共享內存區附接到shmaddr參數指定的地址。

            ?

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


            ftok將一個已存在的路徑名和一個整數標識符轉換成一個key_t值。

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

            ftok會組合三個值來產生key:

            1、pathname所在的文件系統的信息。

            2、該文件在本文件系統內的索引節點號。

            3、id的低序8位。

            ?

            key_t的生成是以一個已存在的文件作為輸入,并不是簡單的字符串散列函數,必須真正存在某個文件,才能將其位置傳入ftok。
            久久精品亚洲AV久久久无码| 国内精品久久久久久99| 欧美一级久久久久久久大片| 蜜臀久久99精品久久久久久| 亚洲中文字幕无码一久久区| 久久夜色精品国产欧美乱| 久久精品无码一区二区三区免费 | 青青久久精品国产免费看| 久久夜色精品国产噜噜亚洲a | 午夜视频久久久久一区| 久久久久国产精品熟女影院| 久久久久99精品成人片| 99久久国产综合精品女同图片 | 无码人妻少妇久久中文字幕蜜桃| 香港aa三级久久三级| 中文字幕精品无码久久久久久3D日动漫| 久久国产热精品波多野结衣AV| 久久久久亚洲精品无码网址| 99久久婷婷国产综合亚洲| 精品久久久久一区二区三区 | 一本久道久久综合狠狠爱| 久久免费99精品国产自在现线| 久久99热国产这有精品| 91精品国产综合久久精品| 中文字幕久久精品无码| 超级碰碰碰碰97久久久久| 久久久久久国产精品免费免费| 99国产欧美精品久久久蜜芽 | 亚洲中文字幕无码久久精品1| 久久亚洲国产成人影院网站 | 91精品国产91久久久久福利| 少妇高潮惨叫久久久久久| 亚洲av成人无码久久精品 | 久久综合给久久狠狠97色| 亚洲午夜久久久久妓女影院| 精品久久久无码21p发布| 伊人久久大香线蕉无码麻豆| 午夜精品久久久久久| 久久婷婷色香五月综合激情| 久久精品国产亚洲av麻豆图片| 久久天天躁夜夜躁狠狠躁2022|