gpt4 book ai didi

c++ - 如何记录 system() 系统调用运行的所有命令

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:24:07 27 4
gpt4 key购买 nike

我正在尝试调试一个 C++ 应用程序,它通过 system() 系统调用调用许多命令行应用程序,例如 grep 等。我需要通过 system() 调用查看应用程序正在执行的所有命令。

我尝试通过启用历史记录和查看 .history 文件来查看这些命令。但是这些命令不是通过终端执行的。历史文件只有交互式执行的命令。

知道如何做到这一点吗?

最佳答案

定义一个具有相似名称的新宏:

#define system(_x) std::cout << _x << std::endl; (system)(_x);

system 宏替换了 system 函数并且:

  1. 它将命令打印到标准输出(或其他地方)。
  2. 它调用系统函数。

感谢Hasturkun的建议,下面的比较好:

#define system(_x) (std::cout << (_x) << std::endl, system(_x))

这也返回 system 函数调用的结果 ;-)

关于c++ - 如何记录 system() 系统调用运行的所有命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3511931/

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