看板 C_and_CPP 關於我們 聯絡資訊
在我程式某一部分 file.h 內容裡 我有自行寫了 如下 void D1<T>::WriteBinary(const char* filename){ ofstream fout(filename,ios::binary); if(!fout.good()){ cout<<"ERROR::[D1<T>::WriteBinary] The output filename is error! -> "; cout<<filename<<endl; exit(EXIT_FAILURE); } fout.write(reinterpret_cast<char*>(_v),sizeof(T)*_n); fout.close(); 最後當掉 所以會有這訊息出現 ↓ ERROR::[D1<T>::WriteBinary] The output filename is error! -> output_111_40.raw int main() { for (m = 0; m < 360; m++){ for(n=20; n <= 50; n += 5){ do something................. ............................. ............................. output_m_n.raw; // file name fopen(output_m_n.raw); fwrite(output_m_n.raw); flcose(output_m_n.raw); } } } 大致上簡單描敘 此程式結合了 MPI & GPU CUDA MPI 部分 主要分配 m & n 兩值 GPU CUDA 就主要處理做些繁雜的事情 然後處理完後 回傳至Host 簡單來說數據寫入該檔是在非 gpu cuda內完成的 以這for loop來看 就可知 開關檔次數是如此的多 約2520檔 由於檔案那麼多 才想說 是不是有上限問題? 也基於好奇 想知道 程式跑到某部分時 我的開關檔 以多少次數了 不知道這樣的敘述 是否清楚 !? ※ 引述《dick1024 (生活撐下去)》之銘言: : 請問版上的高手們 ...小弟不才有事請教 : C or C++ 有指令(寫法) 計算開關檔的次數嘛!? : 由於我實驗的程式內有開關檔的動作 : 但每當程式跑到某部分時 就會error : for () : { : do something.... : ................. : ................. : fopen() : fwrite() : fclose() : do something.... : ................. : ................. : } : 都有確保有開關檔的動作 : 但for loop 跑到一定值後 卻會當掉了 : 開關檔 有上限制次數 ? : 由於for loop 非常大 所以我才想說 : 看看有沒有指令(寫法) 可看出我的開關檔次數多少了 : 請問這方面的指令(寫法)嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.185.202
ericinttu:關於開關檔次數, 你把其他動作都拿掉, for-loop裡只放 09/02 15:32
ericinttu:開、寫、關的動作. 09/02 15:33
ericinttu:另外, fout.good() 做了什麼判斷? 09/02 15:33
dick1024:fout.good() 判斷開啟檔案失敗 09/02 16:46
loveme00835:is_open 才是判斷開檔成功與否 09/02 16:55
dick1024:恩 謝指教 我再去問了一下原始作者fout.good()這部分好了 09/02 17:15
dick1024:不過我主要想問的是..............= = " 09/02 17:15
dick1024:有沒有指令(寫法) 可看出我的開關檔次數多少了!? 09/02 17:16
dick1024:這才是我的重點啦 Orz 09/02 17:16
nowar100:程式中自己開檔關檔的時候拿個變數++就好啦 09/02 17:17
VictorTom:印象中系統可能會限制同時開檔不關的最大數量(還是那是 09/03 00:35
VictorTom:很古早的限制了??) 檔案你要連續開關應該沒有限制吧@_@" 09/03 00:35
nowar100:開檔不關有限制阿,那張表不可能無限大 09/03 00:52
nowar100:但是有正確關了再開,那就應該沒限制,我的想法同V大 09/03 00:53