Recent Posts
Notice
No Rules Rules
터미널로 명령을 실행하고 결과 문자열 읽기 본문
728x90
반응형
코드에서 터미널 명령을 실행하는 경우, 흔히 system 함수를 사용하게 됩니다.
하지만 system 함수의 return은 정수이며 실행 결과에 대한 문자열은 읽어올 수 없습니다.
따라서 명령을 수행하고 그에 따른 결과 문자열은 popen을 통해 획득할 수 있습니다.
반응형
std::string CIPSettingDlg::GetResultFromCommand(std::string cmd)
{
std::string result;
FILE* fp(nullptr);
const int maxBuffer = 256;
char buffer[maxBuffer]{ 0 };
cmd.append(" 2>&1"); // 표준 에러를 표준 출력으로 redirect
fp = _popen(cmd.c_str(), "r");
if (fp) {
while (fgets(buffer, maxBuffer, fp))
result.append(buffer);
_pclose(fp);
}
return result;
}
auto result = GetResultFromCommand("ping 127.0.0.1");
728x90
반응형
'언어 > C++' 카테고리의 다른 글
유무선 랜카드(어댑터) 정보 읽기 (0) | 2023.08.29 |
---|---|
다수 delimiter를 이용한 STL string tokenizer (feat. template) (0) | 2022.08.31 |
const란 (feat. c++, 오버로딩, call by value와 call by reference) (0) | 2022.07.20 |
for문 종류 (feat. c++, for each, range based for) (0) | 2022.07.20 |
for문 개념 (feat. c++, 초기식, 조건식, 증감식, 논리식) (0) | 2022.07.20 |
Comments