0

问题:使用 C++ 或 bash/shell 脚本,我如何评估长时间运行的 linux 进程的输出?

例子:

root@example.com~# iw event
(This command will run until manually killed.) 
(It will output data that I will want to read and parse line by line.)

将新行添加到其缓冲区时,评估此命令的 std 输出的最有效方法是什么?

例如: iw 事件将输出一行内容:

new station: 0e:0e:20:2d:20

我想检测“新站”并使用 mac 地址运行另一个命令。IE:

./myProgram -mac 0e:0e:20:2d:20

谢谢!

4

1 回答 1

1

如果您按所示运行命令,所有输出都将转到标准输出并显示在终端上。要捕获输出,您有几个选项:

  • 将输出通过管道传输到您的监控程序,iw events | yourmonitorprogram然后在其中读取标准输入。 iw可能应该修改为使用无缓冲输出。
  • 将 的输出写入iw文件,然后使用与命令相同的技术tail -f定期轮询文件
  • iw写入命名管道或套接字,并让您的监视器程序从该管道或套接字读取。此选项需要修改为iw.

最简单的选择是第一个

于 2013-07-16T20:17:57.660 回答