【发布时间】:2020-11-27 15:28:15
【问题描述】:
在我的 C 代码中,我调用 system 以获取 bash 命令的结果。
即system("ps aux | grep my_prog | head -n 1")
当我在 foreground 模式下运行我的程序时一切都很好,但在生产中是一个 service,所以我需要在@987654324 中查看system 的输出@,而不是 stdout 或 stderr。
我正在努力在这里找到最好和最不痛苦的选择。 有合适的方法吗?
【问题讨论】:
-
“最不痛苦”很大程度上取决于您的观点。现在对你来说可能是最简单的改变很可能在未来非常痛苦。例如,
system( "sh -c 'ps aux | grep my_prog | sed 1q | logger'");现在可能看起来很无痛,但将来可能会导致哭泣和咬牙切齿。 -
感谢@WilliamPursell,这正是我写“痛苦”的原因,因为我看到了
logger选项,但我根本不想这样做。