是否有任何(简单)的方法可以检测some_function()是否正在写入ofs

#include <fstream>

some_function(std::ofstream & ofs);

int main()
{
    std::ofstream ofs("/dev/null");
    ofs << "lorem ipsum";

    some_function(ofs); // Testing in here

    return 0;
}

最佳答案



不,没有。

您正在寻找一种获取信息的方法这一事实向我表明some_function具有分支代码,具体取决于您是否正在写入/dev/null

您可以通过向函数添加另一个参数来解决该问题,并让客户端代码为您提供该信息。

void some_function(std::ofstream& ofs, bool isDevNull);

并将其用作:
std::ofstream ofs ("/dev/null", std::ofstream::out);
ofs << "lorem ipsum";
some_function(ofs, true);

关于c++ - 如何检测ofstream是否正在写入/dev/null,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50379465/

10-11 22:48