如何使用动态链接器API拦截C ++标准库函数(dlsym())

时间:2016-03-09 00:25:07

标签: c++ c++11 fork cout io-redirection

有没有办法可以拦截标准的C ++库函数,比如operator<<()函数?我正在考虑使用dlsym()函数来实现这一点。我怀疑是否存在可移植解决方案,因为C ++编译器会使用符号进行大量名称修改,尤其是因为cout位于命名空间{{ 1}}。但我不太确定。

我想这样做是因为我将stdout重定向到另一个文件描述符,因为人们通常不会检查std operator<<何时失败,我想在断言中查看是否写入客户端使用cout调用operator<<时失败。我只是为写函数执行此操作,但我不确定是否运算符&lt;&lt;调用写..在过去我曾经假设新的会调用malloc但我被证明是错误的。

对于“元”程序,这对我来说是非常有用的,因此我不想仅限cout使用operator<<()。如果有任何方法可以拦截C ++标准库函数,我很想知道!

谢谢!

0 个答案:

没有答案