system执行shell
如果是正常的ps ls 等 只需要使用FILE * fp = popen(filepath,“r”);或者stringstream stream ; stream << system(); stream >> str;就可以接收到打印的log信息
但是如果出错了 比如解压缩 tar-xvf 使用system 运行,只要system 执行了这个命令就会返回表示正确的返回值,但是执行确实执行了,不一定解压成功了,这时候就需要获得解压失败的信息
前两种方法都无法获取,使用 system(“tar xvf ****.tgz >& err.txt”)在终端可以执行,但是在system里就会出错,这时候使用"tar xvf map.tgz >>out.txt 2>>err.txt&"; 分别将log和错误信息输出到两个日志文件中就没有问题了