今天在寫乙個**,要把一幀的buffer讀入到檔案,因為有neon和opencl兩種不同的實現所以需要讀取檔案兩次,**如下:
1 file *file;2int i = 0
;3 inter_block_size_gpu_rs *block_size;
4 file = fopen(name, "rb"
);5if (file ==null) 9//
logi("file open ok:%s",name);
10#if use_ocl
11 logi("
read pool buffer");
12int readcount=0;13
for(i=0;i<50;++i)
1920
#if use_neon
21for(i=0;i<50;++i)
29 logi("");
30#endif
發現前面讀取檔案成功,後面連續50次讀取檔案失敗。久久不知道為什麼?
後來發現c語言的檔案讀取的指標file * file,通過編譯這個指標讀取檔案的內容,當讀完乙個文字的時候,file 指很已經到啦檔案的尾部,而c語言輸出輸入指標確實是共用的。
所以當你第二次使用的fread的時候一直返回0,只需要在第二次執行fread之前加上**:
即可。問題解決。
另外解釋一下size_tfread (void*buffer,size_tsize,size_tcount,file*stream) ;
中 返回指是實際讀取的count 數,這個數是指 多少個size 。比如:
乙個檔案有四個 char 的字元:1,2,3,4
count = fread(rs_obj.buffer_pool_map_ptr, 1,sizeof(int), file); 會返回4,
count =fread(rs_obj.buffer_pool_map_ptr,sizeof(int),1, file); 會返回1
所以說實際讀取的是size 的倍數。
連續兩次倒在hr槍下
以前從沒想過這個問題,以前只對自己的技能有過懷疑,認為自己有很多東西不懂,不會。沒想到,連續兩次求職經歷都沒有在技術上摔跟頭,卻每次都掛在了hr上。技術不會,你可以去學 做人不合格,你這一輩子就玩了。第一次面試西門子,自己的不自信讓我失去了寶貴的機會,不過也沒什麼,本來筆試的時候就是因為心態好,所以...
Putty設定自動連續兩次登入
有時候你想登入到伺服器a,但是伺服器a有白名單,你只能從堡壘機b登入上去,所以每次你想登入到伺服器a,得先登入到堡壘機b,然後在登入到伺服器a。我們可以用putty的local proxy來設定每次登入到伺服器a的時候,自動先登入到堡壘機b,然後以堡壘機b作為 在登入到伺服器a,所以從使用者的角度看...
Qt 把連續兩次單擊當成雙擊
方法1 主要通過計時器,在一段時間內的連續兩次單擊,觸發雙擊事件 voidinit void mousereleaseevent qmouseevent m nclickcount 1 300ms 內,兩次單擊則觸發雙擊效果 然後停止計數 if m nclickcount 2 void onkeyo...