gpt4 book ai didi

c - 查找 popen 输出更改

转载 作者:太空宇宙 更新时间:2023-11-04 11:06:34 31 4
gpt4 key购买 nike

我需要创建一个程序来执行此操作:

  • 用popen执行命令
  • 用 popen 的输出做一些事情(在很多事情中使用 FILE)
  • 继续检查 popen 输出更改,如果有,则重新执行所有操作。

源代码在这里:https://gitorious.org/clyv/clyv

所以我只想在 popen 的输出发生变化时再次执行程序的所有其余部分(必须与第一个输出进行比较)该程序应该第一次做所有事情,之后,只做所有事情并在 popen 输出发生变化时再次打印。 popen 应该每秒验证一次。

更新

我在这里没有得到任何解决我问题的答案,但是阅读 C 教程我看到了一些关于线程的东西,这听起来像是我的解决方案,我会看看我能做些什么。

最佳答案

您可以根据需要多次调用 popen()。但是,要正确释放调用 popen() 所使用的资源,您需要调用 pclose()

在你的情况下,你可能只想偶尔轮询输出,并在必要时发出一些东西。

first_time = 1;
need_to_print = 1;
for (;;) {
FILE *fp = popen(...);
/* read input ... */
pclose(fp);
/* parse input ... */
if (first_time) {
/* save contents for future comparison... */
first_time = 0;
} else {
need_to_print = /* result of comparing saved contents with new contents */;
}
if (need_to_print) {
/* print something ... */
}
sleep(INTERVAL);
}

关于c - 查找 popen 输出更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25046084/

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