当前位置:  技术问答>linux和unix

求助,linux c system("reboot")的问题

    来源: 互联网  发布时间:2016-11-20

    本文导语:  我的问题是,如果system("reboot")失败,如何把失败的信息取出? 我想写到日志中去。 具体描述如下: 写了一个小程序 #include  #include "cwatchdog.h" int main(int argc,char *argv[]) {     CWatchDog terminal(argc,argv);     terminal.Pro...

我的问题是,如果system("reboot")失败,如何把失败的信息取出? 我想写到日志中去。

具体描述如下:

写了一个小程序

#include 
#include "cwatchdog.h"
int main(int argc,char *argv[])
{
    CWatchDog terminal(argc,argv);
    terminal.Process();

    system("reboot");
    sleep(3);
    system("reboot");
    sleep(3);
    return 0;
}


其中CWatchDog是我写的一个检测状况的类,CWatchDog.Process()中有个循环一直在运行,如果发现情况出错了才退出,然后重启。

前一次情况,由于程序书写的错误,造成不断打开文件号直到达到极限,造成运行system("reboot")不成功,不能正常重启。

我的问题是,如果system("reboot")失败,如何把失败的信息取出来? 我想写到日志中去。



|
system执行命令,将命令执行结果放到一个文件中,检查文件即可
system("reboot 2>&1 | tee -a xxx.log");

|
可以使用popen()代替system()

FILE *fp = popen("reboot", "r");
像读取文件一样,读取fp
pclose(fp);

|
用if来判断system()的返回值是成功还是失败,然后打印错误信息

|

就这样

|


你这样是不行的,system的返回值不是robot的返回值

|
1楼正解。

其实自己也可以写一个。
http://wkt55555.blog.163.com/blog/static/4451525920105210042223/

|

.

|
请问一下system的参数不是应该是一个shell指令吗?怎么变成一个字符串了?

|
它出错的时候错误不是保存到errno 中了么,那么我们就可以将此错误信息通过write 或者 fwrite 函数写入日志文件 wtmpx 中。我是这么想的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3