您的位置:首页 > 运维架构 > Linux

Linux 调用系统命令并截获标准输出(stdout)和错误输出(stderr)

2008-08-01 16:48 381 查看
charret[1024];
char*DoSysCmd(char*cmdline){
FILE*fp;
charline[32];
charcmdtmp[256];
memset(cmdtmp,0x00,256);
sprintf(cmdtmp,"%s2>&1",cmdline);//stderr是2,把2转向1
memset(ret,0x00,sizeof(ret));
fp=popen(cmdtmp,"r");
while(fgets(line,sizeof(line),fp))
{
sprintf(ret,"%s%s",ret,line);
}
pclose(fp);
returnret;
}
使用例子

show_Info("检查是否存在可移动存储设备......");
result=DoSysCmd("cat/proc/scsi/scsi");
if(0==strcmp(result,"Attacheddevices:none\n"))
{
show_Info("对不起,没有发现任何设备!");
return;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐