筆者在做專案時,遇到乙個有意思的bug,用udp接收裝置傳送的網路資料報,在這個過程中,由於udp的不可靠性,會發生丟包和包亂序的現象,筆者思路將丟失的資料報包號記錄下來,全部用0去填充,然後讓裝置重新傳送資料報。當筆者收到丟失的資料報後,讓它插入到正確的位置,但是,總是感覺插入完成的有問題,總是花掉,後來才發現乙個bug,筆者是用fopen的」ab+」模式開啟的檔案,然後資料使用追加的方式去寫jpeg檔案,但是當筆者在一輪資料報接收完畢之後,統計資料報,讓丟失資料報重發,然後fseek到正確的地方fwrite。收不完整,fwrite還是將資料寫在了檔案末尾。所以當我們想用fwrite()在檔案中間修改資料內容時,不要使用追加模式開啟檔案。
附上vc++**:
#define
_crt_secure_no_warnings
#include
#include
//fseek函式呼叫
intmain
()
fwrite
("yun"
, 1, 3,
fp);
//檔案內寫入內容yun
fseek(fp
, 2,
seek_set
);//游標移到檔案開始起第二個位元組處。
fwrite
("111"
, 1, 3,
fp);
//檔案內寫入內容yun
fclose(fp
); return0;
} 結果卻是yun111,根本不是我想要的yu111.
逆元的乙個坑點 牛客
有乙個長度為n的序列a,已知a 1 a n 1,且對於2 x n,a x a x 1 是以下三個數字之一 1,2,0.5 問有多少種不同的序列滿足題意。兩個序列不同當且僅當它們有至少乙個位置上的數字不同,序列a可以為任何實數。乙個整數 表示n 1 n 1e3 乙個整數 表示答案模109 7示例1 複...
關於MVC View中的乙個坑
問題 datetime轉換,資料庫中receivedate是datetime型別的,在mvc4模型中定義如下 display name 收到日期 public datetime receivedate 檢視中 如下 html.displayfor modelitem item.receivedate...
sprintf sscanf中的乙個小坑
char buf 32 sprintf buf,s,d test 100 char out 32 int i 0 sscanf buf,s,d out,i 這段 開始以為會正常執行,結果卻是crash。sscanf在解析 s的時候遇到空格 指標符號 n才會停止解析,而這個 s後面的逗號基本上是乙個擺...