從FIFO讀的資訊有誤 位元組對齊 問題與解決

2022-04-12 06:36:30 字數 754 閱讀 4979

typedef enmuottype;

typedef struct messageclient;

typedef struct resultinfo;

sizeof(resultinfo) = 64 =8 +49+4+3(padding)

mc 放於前面1-8個位元組,resourceid排在9-57個位元組 , result 排在58-61, 62-64 是padding。

read(fd, &mc1, sizeof(messageclient));//

fine

read(fd, &resourceid1, sizeof(id_size));//

fine

read(fd, &result1, sizeof(int));//

not fine

最後一次讀的有誤。讀出的不是傳的1 or 0 。而是較大的數值。

估計是讀取最後一次時,讀的是58-61。但多次重複後,下一次重複讀,從62位的padding資料開始讀,導致後面的資料有誤。

最終,封裝多一層,解決了這個問題。

typedef struct result  ;

typedef struct resultinfo;

//封裝result  

read(fd, &mc1, sizeof(messageclient));//

fine

read(fd, &result2, sizeof(result));//

fine

ref :

讀耗子叔的《從Equifax資訊洩露看資料安全》

利用程式框架或庫的已知漏洞 暴力破解密碼 注入 社會工程學 以及資料管理上的問題 安全防護層次單一 弱密碼或者明文儲存密碼 向不可信網路區域暴露核心系統 未監控系統或軟體安全事件,導致漏洞百出 關鍵資訊寫入磁碟檔案,但檔案有未做好許可權管控。相應的也給出一下安全性方面的建議 或最佳實踐 了解你所用到...

python讀計算機的硬體資訊

import win32com.client strcomputer objwmiservice win32com.client.dispatch wbemscripting.swbemlocator objswbemservices objwmiservice.connectserver strc...

從右往左讀的文字正寫豎排效果

香子子 短令 林雨堂 伯牙抱琴 偶過寒門 行到處 全不經心 憑幾閒坐 談古論今 任倦則眠 樂則飲 醉則吟 矮矮垣牆 小小軒窗 翠蔭處 青草池塘 柳煙初碧 曲岸新妝 枕一樹風 一彎月 一簟涼 玉階金堂 畫棟雕梁 怎麼那 綠茵芬芳 茅簷低小 竹里深藏 對春日麗 秋雨急 北風狂 如夢浮生 閒愁怎平 依畫檻...