diff options
Diffstat (limited to 'src/jo_exec.cpp')
-rw-r--r-- | src/jo_exec.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/jo_exec.cpp b/src/jo_exec.cpp new file mode 100644 index 0000000..a97012c --- /dev/null +++ b/src/jo_exec.cpp @@ -0,0 +1,15 @@ +#include <jo_lowbat.hpp> + +string +jo_exec(const char* cmd) { + array<char, 128> buffer; + string result; + unique_ptr<FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose); + if (!pipe) { + throw runtime_error("popen() failed!"); + } + while (fgets(buffer.data(), buffer.size(), pipe.get()) != nullptr) { + result += buffer.data(); + } + return result; +} |