Added getOutputOf functions to easily retrieve output of executed applications.
This commit is contained in:
parent
ba03efc07d
commit
0daa757e92
2 changed files with 36 additions and 0 deletions
|
@ -132,6 +132,40 @@ void Util::Procs::childsig_handler(int signum){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// Runs the given command and returns the stdout output as a string.
|
||||||
|
std::string Util::Procs::getOutputOf(char * argv[]){
|
||||||
|
std::string ret;
|
||||||
|
int fin = 0, fout = -1, ferr = 0;
|
||||||
|
StartPiped("output_getter", argv, &fin, &fout, &ferr);
|
||||||
|
while (isActive("output_getter")){Util::sleep(100);}
|
||||||
|
FILE * outFile = fdopen(fout, "r");
|
||||||
|
char * fileBuf = 0;
|
||||||
|
size_t fileBufLen = 0;
|
||||||
|
while ( !(feof(outFile) || ferror(outFile)) && (getline(&fileBuf, &fileBufLen, outFile) != -1)){
|
||||||
|
ret += fileBuf;
|
||||||
|
}
|
||||||
|
fclose(outFile);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Runs the given command and returns the stdout output as a string.
|
||||||
|
std::string Util::Procs::getOutputOf(std::string cmd){
|
||||||
|
std::string ret;
|
||||||
|
int fin = 0, fout = -1, ferr = 0;
|
||||||
|
StartPiped("output_getter", cmd, &fin, &fout, &ferr);
|
||||||
|
while (isActive("output_getter")){Util::sleep(100);}
|
||||||
|
FILE * outFile = fdopen(fout, "r");
|
||||||
|
char * fileBuf = 0;
|
||||||
|
size_t fileBufLen = 0;
|
||||||
|
while ( !(feof(outFile) || ferror(outFile)) && (getline(&fileBuf, &fileBufLen, outFile) != -1)){
|
||||||
|
ret += fileBuf;
|
||||||
|
}
|
||||||
|
fclose(outFile);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// Attempts to run the command cmd.
|
/// Attempts to run the command cmd.
|
||||||
/// Replaces the current process - use after forking first!
|
/// Replaces the current process - use after forking first!
|
||||||
/// This function will never return - it will either run the given
|
/// This function will never return - it will either run the given
|
||||||
|
|
|
@ -23,6 +23,8 @@ namespace Util {
|
||||||
static void runCmd(std::string & cmd);
|
static void runCmd(std::string & cmd);
|
||||||
static void setHandler();
|
static void setHandler();
|
||||||
public:
|
public:
|
||||||
|
static std::string getOutputOf(char * argv[]);
|
||||||
|
static std::string getOutputOf(std::string cmd);
|
||||||
static pid_t Start(std::string name, std::string cmd);
|
static pid_t Start(std::string name, std::string cmd);
|
||||||
static pid_t Start(std::string name, std::string cmd, std::string cmd2);
|
static pid_t Start(std::string name, std::string cmd, std::string cmd2);
|
||||||
static pid_t Start(std::string name, std::string cmd, std::string cmd2, std::string cmd3);
|
static pid_t Start(std::string name, std::string cmd, std::string cmd2, std::string cmd3);
|
||||||
|
|
Loading…
Add table
Reference in a new issue