檔案操作中的乙個坑點

2021-10-08 14:00:35 字數 771 閱讀 4622

筆者在做專案時,遇到乙個有意思的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後面的逗號基本上是乙個擺...