QProcess 클래스를 이용하여 ping 명령어를 사용해 보았다.
QProcess의 멤버 함수인 start() 함수를 사용하여 명령어 사용이 끝나면 시그널 / 슬롯으로
들어 오는 데이터를 보고 성공, 실패를 확인 하였다.
하지만 시그널 / 슬롯이 아닌 바로 그 결과를 알고 싶을 때 즉,
하나의 함수에서 실행을 시키고 실행 결과를 바로 알고 출력 주고 싶을 때는 바로 전에 구현 한 부분은
조금 문제가 되어 그 부분에 대해서 한번 찾아 보았다.
그 결과 QProcess::execute() 함수를 사용하면 리턴 값으로 바로 결과를 알 수 있다는 것을 알게 되었다.
먼저 소스를 보게 되면,
이렇게 구현을 하였다.
그럼 그 결과,
이렇게 출력이 되는 걸 확인 하였다.
간단하게 소스 분석을 하게 되면,
새롭게 보이는 부분은
res = QProcess::execute("ping", list);
이 부분으로 QProcess::execute() 함수가 명령어를 실행을 하고 그 결과를 바로 res로 넘겨 준다.
그리고 res에서 저장된 값이 0이면 성공, 0 이외의 값은 실패로 된다.
참조 : http://korone.net 의 서종범님의 댓글
QProcess의 멤버 함수인 start() 함수를 사용하여 명령어 사용이 끝나면 시그널 / 슬롯으로
들어 오는 데이터를 보고 성공, 실패를 확인 하였다.
하지만 시그널 / 슬롯이 아닌 바로 그 결과를 알고 싶을 때 즉,
하나의 함수에서 실행을 시키고 실행 결과를 바로 알고 출력 주고 싶을 때는 바로 전에 구현 한 부분은
조금 문제가 되어 그 부분에 대해서 한번 찾아 보았다.
그 결과 QProcess::execute() 함수를 사용하면 리턴 값으로 바로 결과를 알 수 있다는 것을 알게 되었다.
먼저 소스를 보게 되면,
#include#include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QMessageBox *box = new QMessageBox; int res = -1; QStringList list; list << "66.249.89.99"; res = QProcess::execute("ping", list); if(res == 0) { box->setText("ping success"); } else { box->setText("ping failure"); } box->show(); return app.exec(); }
이렇게 구현을 하였다.
그럼 그 결과,
이렇게 출력이 되는 걸 확인 하였다.
간단하게 소스 분석을 하게 되면,
새롭게 보이는 부분은
res = QProcess::execute("ping", list);
이 부분으로 QProcess::execute() 함수가 명령어를 실행을 하고 그 결과를 바로 res로 넘겨 준다.
그리고 res에서 저장된 값이 0이면 성공, 0 이외의 값은 실패로 된다.
참조 : http://korone.net 의 서종범님의 댓글
'QT > QT 4.6.2' 카테고리의 다른 글
QProcess 클래스를 이용하여 Ping 명령 사용하기 (0) | 2010.06.03 |
---|---|
MAC, IP 주소 알아내기 (0) | 2010.06.01 |
파일의 특정 부분 입 / 출력하기 (QTextStream::readLine, QString::split) (1) | 2010.05.27 |
컴퓨터 해상도 구하기(QDesktopWidget::screenGeometry) (0) | 2010.05.25 |
QTextStream와 QDataStream의 차이 비교 (1) | 2010.05.21 |