混合流和标准是否存在技术危险
Are there technical dangers in mixing fstream and stdio?
很明显,将iostream
/fstream
与stdio
和C风格的I/O处理混合在一起不是一个好的做法。
用printf(...)
打印一行,用std:cout << ...
打印另一行,或者用FILE*
读取文件,然后用ofstream
书写是丑陋的,会造成混乱,只是在自找麻烦。
然而,这种做法不受欢迎的唯一原因基本上只是一种风格/可读性论点,还是有更深层次的技术原因?
我问这个是因为我需要在代码的一小部分中使用 mmap,执行一些低级寄存器处理。 mmap
适用于 C 样式的文件描述符。但是,在其余代码中,我想使用C++流路由来处理文件。
技术危险是性能下降,因为两种输出方法无法独立缓冲。ios_base::sync_with_stdio(bool)
指示不需要此类同步(例如,因为未使用<cstdio>
),但默认值缓慢且正确。
相关文章:
- C++模板来检查友元函数的存在
- 既然存在危险,为什么项目要使用-I include开关
- 我们可以访问一个不存在的联盟的成员吗
- C++:对不存在的命名空间使用命名空间指令
- C++quit()函数中可能存在作用域问题
- C++擦除(如果存在)
- g++ 说函数不存在,即使包含正确的标头
- 这个极客对极客的trie实现是否存在内存泄漏问题
- 有了gcc,是否可以链接库,但前提是它存在
- C++LinkedList问题.数据类型之间存在冲突?没有匹配的构造函数
- gcc和clang在表达式是否为常量求值的问题上存在分歧
- C++Builder中的OnClick事件签名存在问题
- 如何正确地将分支添加到已存在的树中
- 我知道函数调用中存在歧义.有没有办法调用foo()函数
- 如何检查QList中是否存在值
- 根据某个函数是否存在启用模板
- 如何将分支添加到已存在的TTree:ROOT
- 在C++中样板"冷/never_inline"错误处理技术的最佳方法是什么?
- 混合流和标准是否存在技术危险
- 是否存在阻止内置具有静态成员的技术限制