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 ': ***.com/questions/478898/… 很大程度上取决于您正在运行的初始化系统(SysV、systemd、runit 等) - 您可以在 Unix & Linux 网站上获得更明智的答案。 【参考方案1】:

一个简单的运行命令是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语言编程如何判断一个程序是不是运行成功 (结果是一个界面) ?的主要内容,如果未能解决你的问题,请参考以下文章

在Linux系统中,如何运行一个C语言程序?

Linux中,运行一个C语言程序如何运行

Linux下如何运行C程序?

C语言如何调用.bat文件,并判断其是不是成功运行?

在linux中如何编写C语言程序来区分字母大小写?

如何在linux中运行c程序