표준 출력 문제 요약을 얻기 위해 "|" 다중 명령 실행을 사용하는 Qt QProcess 파이프라인 명령

문제 설명:

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() ) 省略,如果你有用的话,可以加上。

단일 명령 또는 파이프라인 명령을 실행할 수 있지만 명령 유형을 구분해야 합니다. 이 상황이 발생하여 실행할 수 없고 결과가 비어 있는 경우 어떻게 해야 합니까?

해결책:

위의 예는 충분히 생생하지 않을 수 있습니다.또 다른 예는 시스템 메모리 크기를 얻는 것입니다.

 

Guess you like

Origin blog.csdn.net/poolooloo/article/details/129619281