[發明專利]共享內存的數據讀取方法和系統、寫入方法和系統有效
| 申請號: | 201310681916.3 | 申請日: | 2013-12-12 |
| 公開(公告)號: | CN103645863B | 公開(公告)日: | 2017-12-08 |
| 發明(設計)人: | 蔡東赟;王東玉 | 申請(專利權)人: | 北京奇安信科技有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司11319 | 代理人: | 趙娟 |
| 地址: | 100015 北京市朝陽區酒仙*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 共享 內存 數據 讀取 方法 系統 寫入 | ||
1.一種共享內存的數據讀取方法,包括:
定位待讀取數據所在共享內存的位置;所述共享內存指基于環形緩沖區的共享內存;
獲得所述待讀取數據的長度;
獲取所述共享內存的讀偏移指針pRead和寫偏移指針pWrite;
依據所述讀偏移指針pRead和寫偏移指針pWrite,以及,所述待讀取數據的長度,判斷所述待讀取數據是否可讀;
若是,則從所述待讀取數據所在共享內存的位置,讀出所述待讀取數據;
其中,所述依據所述讀偏移指針pRead和寫偏移指針pWrite,以及,所述待讀取數據的長度,判斷所述待讀取數據是否可讀的步驟包括:
當所述讀偏移指針pRead處于所述寫偏移指針pWrite前面的位置時,設置可讀數據的長度小于或等于allsize-pRead+pWrite-head,其中,所述allsize為共享內存的長度,所述head為文件頭的長度;
判斷所述待讀取數據的長度是否小于或等于所述可讀數據的長度;
若是,則判定所述待讀取數據可讀;
若否,則判定所述待讀取數據不可讀。
2.根據權利要求1所述的方法,其特征在于,還包括:
若所述待讀取數據不可讀,則返回待讀取數據為空。
3.根據權利要求1或2所述的方法,其特征在于,所述依據所述讀偏移指針pRead和寫偏移指針pWrite,以及,所述待讀取數據的長度,判斷所述待讀取數據是否可讀的步驟包括:
當所述讀偏移指針pRead處于所述寫偏移指針pWrite后面的位置時,設置可讀數據的長度小于或等于pWrite-pRead;
判斷所述待讀取數據的長度是否小于或等于所述可讀數據的長度;
若是,則判定所述待讀取數據可讀;
若否,則判定所述待讀取數據不可讀。
4.根據權利要求1所述的方法,其特征在于,所述依據所述讀偏移指針pRead和寫偏移指針pWrite,以及,所述待讀取數據的長度,判斷所述待讀取數據是否可讀的步驟還包括:
當所述讀偏移指針pRead和寫偏移指針pWrite處于同一位置時,則判定所述待讀取數據不可讀。
5.根據權利要求1或2或4所述的方法,其特征在于,所述獲取所述共享內存的讀偏移指針pRead和寫偏移指針pWrite的步驟包括:
獲得所述共享內存的映射文件,所述映射文件包括文件頭;
從所述文件頭中讀取讀偏移指針pRead;
從所述文件頭中讀取寫偏移指針pWrite并快照到臨時變量中。
6.根據權利要求3所述的方法,其特征在于,所述從所述待讀取數據所在共享內存的位置,讀出所述待讀取數據的步驟包括:
當所述讀偏移指針pRead處于所述寫偏移指針pWrite后面的位置時,則從當前讀偏移指針pRead位置開始讀出所述待讀取數據;
在不超過所述寫偏移指針pWrite位置讀出全部的待讀取數據。
7.根據權利要求1所述的方法,其特征在于,所述從所述待讀取數據所在共享內存的位置,讀出所述待讀取數據的步驟包括:
當所述讀偏移指針pRead處于所述寫偏移指針pWrite前面的位置時,則從當前讀偏移指針pRead位置開始讀出所述待讀取數據;
當讀取至所述共享內存尾部的位置時,判斷所述待讀取數據是否已全部讀出;
若否,則從所述共享內存中文件頭結束的位置開始繼續讀出所述待讀取數據,直至在不超過所述寫偏移指針pWrite位置讀出全部的待讀取數據。
8.根據權利要求1所述的方法,其特征在于,采用內存拷貝memcpy的方式讀出所述待讀取數據。
9.一種共享內存的數據寫入方法,包括:
獲得待寫入數據及其長度;
檢查所述待寫入數據的長度是否超出共享內存的長度界限;所述共享內存指基于環形緩沖區的共享內存;
若否,則獲取所述共享內存的讀偏移指針pRead和寫偏移指針pWrite;
依據所述讀偏移指針pRead和寫偏移指針pWrite,以及,所述待寫入數據的長度,確定所述待寫入數據在共享內存中的寫入位置,并判斷所述待寫入數據是否可寫;
若是,則在所述寫入位置寫入所述待寫入數據。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇安信科技有限公司,未經北京奇安信科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310681916.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:移動終端及其操控方法
- 下一篇:紙基診斷測試
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





