【问题标题】:Are there technical dangers in mixing fstream and stdio?混合 fstream 和 stdio 是否存在技术危险?
【发布时间】:2016-04-20 07:44:26
【问题描述】:

很明显,将iostream/fstreamstdio 和C 风格的I/O 处理混合使用不是一个好习惯。

printf(...) 打印一行,用std:cout << ... 打印另一行,或者用FILE* 读取文件,然后用ofstream 写入是丑陋的,会造成混乱,只是自找麻烦。

然而,这种做法之所以不受欢迎,仅仅是因为风格/可读性的争论,还是有更深层次的技术原因?

我问这个是因为我需要在我的一小部分代码中使用mmap,做一些低级的寄存器处理。 mmap 适用于 c 风格的文件描述符。但是,在其余代码中,我想使用 C++ 流路由来处理文件。

【问题讨论】:

    标签: c++ io


    【解决方案1】:

    技术上的危险是性能下降,因为两种输出方法不能独立缓冲。 ios_base::sync_with_stdio(bool) 表示不需要这种同步(例如,因为未使用 <cstdio>),但默认值是缓慢且正确的。

    【讨论】:

      猜你喜欢
      • 2012-08-15
      • 1970-01-01
      • 2021-08-28
      • 2023-04-07
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      相关资源
      最近更新 更多