Changed: Added new function getCommandOutput
This commit is contained in:
parent
20824eae02
commit
e17413954c
2 changed files with 28 additions and 0 deletions
|
@ -349,6 +349,9 @@ std::string formatThousands(const std::string& s);
|
||||||
/// The program will be launched in the current directory
|
/// The program will be launched in the current directory
|
||||||
bool launchProgram (const std::string &programName, const std::string &arguments, bool log = true);
|
bool launchProgram (const std::string &programName, const std::string &arguments, bool log = true);
|
||||||
|
|
||||||
|
/// This function executes a program and returns output as a string
|
||||||
|
std::string getCommandOutput(const std::string &command);
|
||||||
|
|
||||||
/// This function kills a program using his pid (on unix, it uses the kill() POSIX function)
|
/// This function kills a program using his pid (on unix, it uses the kill() POSIX function)
|
||||||
bool killProgram(uint32 pid);
|
bool killProgram(uint32 pid);
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,10 @@
|
||||||
# include <ShellAPI.h>
|
# include <ShellAPI.h>
|
||||||
# include <io.h>
|
# include <io.h>
|
||||||
# include <tchar.h>
|
# include <tchar.h>
|
||||||
|
|
||||||
|
#define popen _popen
|
||||||
|
#define pclose _pclose
|
||||||
|
|
||||||
#elif defined NL_OS_MAC
|
#elif defined NL_OS_MAC
|
||||||
# include <ApplicationServices/ApplicationServices.h>
|
# include <ApplicationServices/ApplicationServices.h>
|
||||||
#elif defined NL_OS_UNIX
|
#elif defined NL_OS_UNIX
|
||||||
|
@ -32,6 +36,8 @@
|
||||||
# include <sched.h>
|
# include <sched.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MAX_LINE_WIDTH 256
|
||||||
|
|
||||||
#include "nel/misc/command.h"
|
#include "nel/misc/command.h"
|
||||||
#include "nel/misc/path.h"
|
#include "nel/misc/path.h"
|
||||||
#include "nel/misc/i18n.h"
|
#include "nel/misc/i18n.h"
|
||||||
|
@ -840,6 +846,25 @@ bool launchProgram(const std::string &programName, const std::string &arguments,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string getCommandOutput(const std::string &command)
|
||||||
|
{
|
||||||
|
FILE *pipe = popen(command.c_str(), "r");
|
||||||
|
|
||||||
|
if (!pipe) return "";
|
||||||
|
|
||||||
|
char buffer[MAX_LINE_WIDTH];
|
||||||
|
std::string result;
|
||||||
|
|
||||||
|
while (!feof(pipe))
|
||||||
|
{
|
||||||
|
if (fgets(buffer, MAX_LINE_WIDTH, pipe) != NULL) result += buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
pclose(pipe);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Display the bits (with 0 and 1) composing a byte (from right to left)
|
* Display the bits (with 0 and 1) composing a byte (from right to left)
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue