gpt4 book ai didi

c++ - 如何检测函数是否执行IO操作?

转载 作者:行者123 更新时间:2023-11-28 01:30:54 24 4
gpt4 key购买 nike

是否有任何指标可以让我了解函数是否执行 I/O 操作?主要目标平台是 Linux(Ubuntu 或它的某些变体)。

最明显的方法是拥有此类函数/库的目录,并检查该函数是否存在于其中。但是,我首先想知道如何构建这样的目录。

例如,printf 最终会写入标准输出,因此它会算在内。从 USB 端口读取的函数也算在内。但是他们有什么共同点吗,即使我必须挖掘到最低层?


这对问题可能无关紧要,但理想情况下,我可以利用这些功能的某种模式,以便可以使用工具自动识别它们。我只是不确定要查找哪些低级指令。

最佳答案

标准 C++ 当然没有从 USB 读取的函数,但让我们暂时忽略这个细节。

哪些函数执行“真实”I/O 的问题在标准 C++ 中可以通过询问哪些库函数具有 observable side effects 来近似。 .直接指向 Input/Output headers 的集合,当然现在还有 <filesystem> .

(从 C++ 引用资料复制:)

<iosfwd>    forward declarations of all classes in the input/output library
<ios> std::ios_base class, std::basic_ios class template and several typedefs
<istream> std::basic_istream class template and several typedefs
<ostream> std::basic_ostream, std::basic_iostream class templates and several typedefs
<iostream> several standard stream objects
<fstream> std::basic_fstream, std::basic_ifstream, std::basic_ofstream class templates and several typedefs
<sstream> std::basic_stringstream, std::basic_istringstream, std::basic_ostringstream class templates and several typedefs
<syncstream> (since C++20) std::basic_osyncstream, std::basic_syncbuf, and typedefs
<strstream> (deprecated) std::strstream, std::istrstream, std::ostrstream
<iomanip> Helper functions to control the format of input and output
<streambuf> std::basic_streambuf class template
<cstdio> C-style input-output functions

关于c++ - 如何检测函数是否执行IO操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51559976/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com