문제 설명:
Qt에서는 명령을 실행하기 위해 system과 QProcess를 사용하고 일반적으로 시스템에서 실행한 명령에 대해 stdout의 출력 결과를 얻을 필요가 없으므로 반환된 결과만 받으면 성공 여부를 알 수 있습니다.
QProcess의 사용은 대부분 출력 반환 정보를 얻기 위한 것입니다.
여기서 반환 정보는 표준 출력만 있으면 되고 물론 다른 채널도 될 수 있지만 본 적이 없습니다.
일반적으로 명령 실행은 다음과 같이 간단할 수 있습니다.
QProcess process1;
QString cmd = "free -h | grep 'Mem' ";
process1.start(cmd);
process1.waitForFinished();
QString result = process1.readAll();
qDebug()<<"result===="<<result;
// if ( process1.exitCode() ) 省略,如果你有用的话,可以加上。
단일 명령 또는 파이프라인 명령을 실행할 수 있지만 명령 유형을 구분해야 합니다. 이 상황이 발생하여 실행할 수 없고 결과가 비어 있는 경우 어떻게 해야 합니까?
해결책:
위의 예는 충분히 생생하지 않을 수 있습니다.또 다른 예는 시스템 메모리 크기를 얻는 것입니다.