请教,在程序运行中,获得屏幕输出信息

LeonTown 2009-12-07 09:48:44
如题,
我的一个程序在linux上运行时,会向终端(屏幕,或文件)写入信息。
每条信息1行,表示该任务是否成功完成。

我希望能够“实时”获得程序的输出信息,以便于重新执行失败的任务。

请教,我该如何获得终端的输出信息呢?
谢谢!!
...全文
251 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
LeonTown 2009-12-08
  • 打赏
  • 举报
回复
对。

就是根据这个程序的输出,判断刚才执行的任务是否成功。
如果不成功,就重新执行刚才的任务。

输出定向到屏幕(stdout),或文件(FILE*),应该没有什么太大的区别吧。。。

目前打算,就将输出定向到一个文件中。
然后,我的主进程定时读取这个文件,看是否有新的信息。
如果新的信息中显示执行失败,就重新执行该任务。

那么,该如何更好的判断文件中是否有新加信息呢?
每条信息占一行,
难道维持一个行数计数器,每次查看文件的行数是否增加?

[Quote=引用 10 楼 yonrui 的回复:]
楼主应该是想获得另一个程序的输出信息,然后根据获得的输出信息来判断下一步的操作。

[/Quote]
帅得不敢出门 2009-12-08
  • 打赏
  • 举报
回复
现行的linux不是硬实时的系统
不知道你说的实是哪种范筹
启动了别人的程序,那是另一个进程了,除非你有别人程序的源码,或者该程序有输出一些信息,你的程序分析它进行判断。
YonRui 2009-12-08
  • 打赏
  • 举报
回复
楼主应该是想获得另一个程序的输出信息,然后根据获得的输出信息来判断下一步的操作。
LeonTown 2009-12-07
  • 打赏
  • 举报
回复
其实,这个执行任务的程序是我通过fork,启动的别人的程序,
我只能知道该程序的输出情况。

所以,我希望能够通过终端获得该程序的输出,
以便在主进程中,控制该程序是否重新执行失败的任务。
Apple_Demo 2009-12-07
  • 打赏
  • 举报
回复
判断程序执行的状态,不错。
lylm 2009-12-07
  • 打赏
  • 举报
回复
写在程序里判断吧,在每个要检查的地方,判断执行的状态,如果不成功,重做。。。
playmud 2009-12-07
  • 打赏
  • 举报
回复
不理解,信息是你输入到屏幕的,为何还要去获得屏幕信息呢?
LeonTown 2009-12-07
  • 打赏
  • 举报
回复
这里的程序输出默认是屏幕(stdout),也可以重定向到文件(FILE*),

我希望程序每输出一条信息,我都能实时获得,
以便确定接下来的运行(是继续执行后续任务,还是重复执行刚才失败的任务)。
  • 打赏
  • 举报
回复
[Quote=引用楼主 leontown 的回复:]
如题,
我的一个程序在linux上运行时,会向终端(屏幕,或文件)写入信息。
每条信息1行,表示该任务是否成功完成。

我希望能够“实时”获得程序的输出信息,以便于重新执行失败的任务。

请教,我该如何获得终端的输出信息呢?
谢谢!!
[/Quote]

直接说需求吧,看意思不太明白。
你每次都刷新缓冲区,打印就是实时的,重新执行失败的任务,你是怎么个重新执行法?
dongjiawei316 2009-12-07
  • 打赏
  • 举报
回复
重定向
skysoshy 2009-12-07
  • 打赏
  • 举报
回复
在程序里打印信息就是了啊~

不懂楼主到底是关心什么问题。

如果是用文件的话, 就把打印函数定向到文件就是了
Wenxy1 2009-12-07
  • 打赏
  • 举报
回复
编程,就是实时的读取保存信息的文件。
用Linux 命令,就是taile /path/file_name,写一个shell脚本,循环此操作。

23,114

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧