有没有办法可以拦截标准的C ++库函数,比如operator<<()
函数?我正在考虑使用dlsym()
函数来实现这一点。我怀疑是否存在可移植解决方案,因为C ++编译器会使用符号进行大量名称修改,尤其是因为cout
位于命名空间{{ 1}}。但我不太确定。
我想这样做是因为我将stdout重定向到另一个文件描述符,因为人们通常不会检查std
operator<<
何时失败,我想在断言中查看是否写入客户端使用cout
调用operator<<
时失败。我只是为写函数执行此操作,但我不确定是否运算符&lt;&lt;调用写..在过去我曾经假设新的会调用malloc但我被证明是错误的。
对于“元”程序,这对我来说是非常有用的,因此我不想仅限cout
使用operator<<()
。如果有任何方法可以拦截C ++标准库函数,我很想知道!
谢谢!