日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

鲜为人知的C++ IO fstream流

發布時間:2025/5/22 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鲜为人知的C++ IO fstream流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?注:圖片來自于博客 http://blog.163.com/hbu_lijian/blog/static/126129153201201710456994/

?

  fstream 中IO對象常用的是iftream(文件輸入流) ,ofstream(文件輸出流),用來讀寫文件。

  最近工程中用到socket 接收收據,接收到的數據是一個圖像,接收完之后用于打印,由于圖像接收完整之后才能打印。 一開始我就想建立一個文件保存數據,等保存完畢之后在打開一個文件,讀入數據流然后用于打印。結果發現在大規模的接收文件時候效率很低。

  我在想是否可以既有輸入又有輸出特性,我想到了管道。但有覺得不合適。我不可能為每一個文件都去建立一個管道。而且管道占用內核空間。自信查看IO發現輸入輸出雙向IO。寫測試代碼如下:      

fstream fs;fs.open("test.txt",ios::binary|ios::out|ios::in); //|ios::out);if (!fs.good()){return -1;}char buf[1024] = {"wxr test shuru shu chu liu de hao huai"};fs.write(buf,strlen(buf));fs.flush();char buf2[1024] = {0};fs.seekg(ios::beg,0);fs.read(buf2,strlen(buf));fs.close();return 0;

  驚奇發現寫入和讀出都行,只是在寫完之后讀取的時候將文件指向開始。 最后我的問題如愿解決。  

  深思:只考慮線程間使用管道通信。這個類有管道的特性。又有管道所不具備的優勢。只要做好同步 ?一個線程寫數據(文件末尾)?, 一個線程讀數據(文件開始),讀取時候可以檢查數據的完整性在做讀取操作,因為是文件所以數據不會丟失,不像管道讀取之后數據丟失。 所以在線程間通信尤其數據量大的時候我覺得可以采用該類。?

  

?

?

?

轉載于:https://www.cnblogs.com/wolfrickwang/p/3200979.html

總結

以上是生活随笔為你收集整理的鲜为人知的C++ IO fstream流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。