请教:在程序里用system启动一个命令,如何获得这个进程的正常输出和错误输出到一个字符串里?
来源: 互联网 发布时间:2015-10-21
本文导语: 用system启动一个命令,命令执行成功,但如何获得执行该命令的输出?无论是正常信息和错误信息 | system("command >>err 2>>err"); | 或者用popen | 试试这样行不 :...
用system启动一个命令,命令执行成功,但如何获得执行该命令的输出?无论是正常信息和错误信息
|
system("command >>err 2>>err");
|
或者用popen
|
试试这样行不 : system("command > log 2>err")
|
同意楼上的。
system只返回shell执行成功与否。
system只返回shell执行成功与否。
|
int error_line;
error_line = system("command >/dev/null 2>&1 | wc -l");
if (error_line > 0)
printf("have error!!");
else
printf("command is OK!!");
error_line = system("command >/dev/null 2>&1 | wc -l");
if (error_line > 0)
printf("have error!!");
else
printf("command is OK!!");
|
楼上的给出的程序有点问题吧?
system在shell命令执行发生错误时返回的值是-1,其他时候返回shell命令执行的状态值。
请参见man手册RETURN VALUE的说明。
system在shell命令执行发生错误时返回的值是-1,其他时候返回shell命令执行的状态值。
请参见man手册RETURN VALUE的说明。
|
echo $?
|
提醒一下,调用system,可能使调用者陷入不可中断的状态