请教:在程序里用system启动一个命令,如何获得这个进程的正常输出和错误输出到一个字符串里?

dalinsky 2005-09-22 03:25:19
用system启动一个命令,命令执行成功,但如何获得执行该命令的输出?无论是正常信息和错误信息
...全文
160 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicelcp 2005-09-26
  • 打赏
  • 举报
回复
提醒一下,调用system,可能使调用者陷入不可中断的状态
hundlom 2005-09-25
  • 打赏
  • 举报
回复
echo $?
beiyu95 2005-09-22
  • 打赏
  • 举报
回复
楼上的给出的程序有点问题吧?
system在shell命令执行发生错误时返回的值是-1,其他时候返回shell命令执行的状态值。
请参见man手册RETURN VALUE的说明。
tengulre 2005-09-22
  • 打赏
  • 举报
回复
或者用popen
tengulre 2005-09-22
  • 打赏
  • 举报
回复
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!!");
yyy790601 2005-09-22
  • 打赏
  • 举报
回复
system("command >>err 2>>err");
dalinsky 2005-09-22
  • 打赏
  • 举报
回复
我也是按一楼说的做的,但问题是信息和错误会输入到不同的文件中,如果我都想输出到一个文件呢?会相互覆盖吗?
比如:system("command > err 2>err")
yyy790601 2005-09-22
  • 打赏
  • 举报
回复
同意楼上的。

system只返回shell执行成功与否。
wjlsmail 2005-09-22
  • 打赏
  • 举报
回复
试试这样行不 : system("command > log 2>err")

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧