본문으로 바로가기

subprocess for C++

category Devlogs 2024. 6. 20. 01:09

Python의 subprocess 는 외부 파일을 실행할 때 참 편리한 기능을 제공하는 클래스인데..

C++ 용으로 subprocess 와 비슷한 기능을 구현한 클래스가 있어서 테스트해보니.. 참 괜찮음..

 

https://github.com/benman64/subprocess

subprocess-master.zip
0.94MB

#include <subprocess.hpp>
....

int RunProgram2(std::string programPath, std::vector<std::string> args, std::string &output)
{
	std::vector<std::string> tokens;

	tokens.push_back(programPath);
	for(std::string &s: args) {
		tokens.push_back(s);
	}

	// 콘솔 화면을 감춤
#ifdef __MINGW32__
	AllocConsole();
	ShowWindow(GetConsoleWindow(), SW_HIDE);	
#endif

	 auto completed = subprocess::RunBuilder(tokens)
		.cout(subprocess::PipeOption::pipe)
		.cerr(subprocess::PipeOption::pipe)
		.env(subprocess::current_env_copy())
		.run();
#if 0
	std::string joined = boost::algorithm::join(completed.args, " ");
	qDebug() << "args:" << joined.c_str();
#endif

	int exit_code = completed.returncode;

	if(!completed.cout.empty()) {
		output = completed.cout;
	} else if(!completed.cerr.empty()) {
		output = completed.cerr;
	}

	return exit_code;
}

 

 

 


Korea Tcl/Tk Community
블로그 이미지 ihmin 님의 블로그
VISITOR 오늘 / 전체