当前位置: 技术问答>linux和unix
怎么屏蔽控制台程序的打印输出信息
来源: 互联网 发布时间:2016-12-02
本文导语: 在linux下通过system(CMD)调用某个可执行程序时,字符界面下会显示调用程序的打印信息,我想屏蔽掉这些信息,于是用了popen,下面是我的代码: char buf[512]={0}; FILE *ptr=NULL; //FILE *ptr2=NULL; if((ptr=popen("...
在linux下通过system(CMD)调用某个可执行程序时,字符界面下会显示调用程序的打印信息,我想屏蔽掉这些信息,于是用了popen,下面是我的代码:
结果仍然没法屏蔽打印信息。
我现在想要知道的是,1是我上面的程序有错误吗?为什么屏蔽不了信息呢
另外,在linux环境下还有别的方法可以屏蔽信息吗?
char buf[512]={0};
FILE *ptr=NULL;
//FILE *ptr2=NULL;
if((ptr=popen("/etc/init.d/demo start", "r"))!=NULL)
{
while(fgets(buf, sizeof(buf), ptr)!=NULL)
{
}
}
if(ptr)
{
pclose(ptr);
ptr==NULL;
}
结果仍然没法屏蔽打印信息。
我现在想要知道的是,1是我上面的程序有错误吗?为什么屏蔽不了信息呢
另外,在linux环境下还有别的方法可以屏蔽信息吗?
|
可以用使用shell符号>输出重定向。比如system("/etc/init.d/demo start > /dev/null");
|
也许输出到了错误输出
一起定向一下
/etc/init.d/demo start 1>/dev/null 2>&1
一起定向一下
/etc/init.d/demo start 1>/dev/null 2>&1