首頁 >後端開發 >C++ >如何從 POSIX 檔案描述符建立 C fstream?

如何從 POSIX 檔案描述符建立 C fstream?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-25 16:42:09972瀏覽

How Can I Create a C   fstream from a POSIX File Descriptor?

從POSIX 檔案描述符建構C fstream

此查詢提供了一個看似簡單但事實證明很複雜的任務:構造C fstream來自POSIX 檔案描述符。解決方案是否在於更簡單的方法,或者是否有合適的程式庫可用?

問題的複雜性

根據專家的說法,沒有標準的 C 機制這個任務。但是,標準函式庫的某些實作(例如 libstdc )提供非標準擴充。

非標準解決方案

以下非標準解決方案可用:

libstdc :

  • 利用__gnu_cxx::stdio_filebuf類別模板從檔案描述符建立檔案流緩衝區。
  • 範例:
__gnu_cxx::stdio_filebuf<char> filebuf(posix_handle, std::ios::in);
istream is(&amp;filebuf);

微軟Visual C :

  • 採用接受FILE* 功能的非標準。
  • 範例:
ifstream ifs(::_fdopen(posix_handle, "r"));

結論

雖然沒有標準的C對於此任務的方法,特定實現提供的非標準擴充提供了可行的解決方案。

以上是如何從 POSIX 檔案描述符建立 C fstream?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn