linux下C语言编程如何判断一个程序是不是运行成功 (结果是一个界面) ?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下C语言编程如何判断一个程序是不是运行成功 (结果是一个界面) ?相关的知识,希望对你有一定的参考价值。
我是想问如何用程序来描述"成功与否"这一现象,而不是人为地去判断。若是多个程序同时运行,运行成功返回True,运行不成功返回False,最后把运行之后的结果输入到一个文件中,而不是去看那些程序的运行结果到底是什么。本人刚接触Linux,请各位大神多多指教……
参考技术A 其实这个问题很简单,不管你用什么语言编写程序,尤其是做应用方面的程序,其表现是相同的;对于判定一个程序是否运行成功主要是输入和输出,因为任何程序都要和输入输出打交道,否则程序便没有意义,这里讲的输入和输出是广义的;伴随输入输出,有以下几个方面可以作为判定:1:明确的输入、输出,比如输入输出数据;
2:进程序列;
3:如有图形界面,当如有图形界面未必表示运行成功;
最后:你需要几个因素综合考虑,你写C语言程序,可以使用调试工具(gdb)跟踪
;写程序需要慢慢积累经验;当然灵感很重要! 参考技术B 你好!
你可以用ps
-e这个命令来查看你的进程中是否有你运行的程序名一致的·····这是查看你的程序是否运行了·····还有你的程序运行后都生成了个界面了,那肯定是运行了,至于成功,得根据你具体程序了···
希望对你有所帮助,望采纳。 参考技术C 可以写个简单的shell,将所有的文件都加入进去。
举其一示例,只要gcc
-o
*
*成功了,则echo
“success”,否则就echo
ER。
最后只需要运行这个脚本就可以看所有的结果了。注意权限修改,还有sh
用法。 参考技术D C语言运行一般是没有界面的。
这个要看程序输出的结果是什么。与预期的结果相同就成功。
编译完成以后会生成一个EXE文件。
如何通过使用 C、C++ 在 Linux 上指定其名称以编程方式检查特定守护程序是不是正在运行?
【中文标题】如何通过使用 C、C++ 在 Linux 上指定其名称以编程方式检查特定守护程序是不是正在运行?【英文标题】:How to programmatically check if particular daemon is runnning by specifying its name on Linux using C, C++?如何通过使用 C、C++ 在 Linux 上指定其名称以编程方式检查特定守护程序是否正在运行? 【发布时间】:2016-12-14 08:44:32 【问题描述】:如何通过在 Linux 上使用 C、C++ 指定其名称以编程方式检查特定守护程序是否正在运行?
【问题讨论】:
你应该搜索 systemd 的文档。但出于好奇,这是XY Problem 吗?根据我的经验,当有人问这种问题时,他们实际上想做其他事情。 另外,请注意,这样做可能会带来安全风险,因为该程序可能必须具有 root 权限才能查询所需的数据。 也许使用类似的东西,例如解析 'ps aux | 的输出grep一个简单的运行命令是systemctl status $service | grep "Active:" | cut -d' ' -f6
。捕获上述命令的标准输出,它应该等于(running)
。
注意,*ctl
仅供命令行使用,不供其他程序使用。公认的方式是使用dbus
API 与systemd
进行交互。
https://www.freedesktop.org/wiki/Software/systemd/dbus/
【讨论】:
【参考方案2】:因为我无法在上面添加评论。 您可以使用 systemctl 来检查服务状态。
systemctl status servicename
这是终端命令。
使用system("systemctl status servicename")
可以管理来自 C++ 的调用。
希望这是正在查看或类似的内容。
【讨论】:
谢谢!....看起来在我的 CentOS 中这个命令不可用。它向我显示以下错误:root@t1024rdb:~# systemctl -sh: systemctl: command not found【参考方案3】:systemctl is-active $service_name 可用于检查服务是否处于活动状态
【讨论】:
以上是关于linux下C语言编程如何判断一个程序是不是运行成功 (结果是一个界面) ?的主要内容,如果未能解决你的问题,请参考以下文章