helpers: add "backtick" function for shell-like command

This commit is contained in:
Stefan Seyfried
2015-02-08 13:05:53 +01:00
parent 619e2a0234
commit ce382cc2cb
2 changed files with 19 additions and 0 deletions

View File

@@ -363,6 +363,23 @@ std::string find_executable(const char *name)
return "";
}
std::string backtick(std::string command)
{
char *buf = NULL;
size_t n = 0;
pid_t pid;
FILE *p = my_popen(pid, command.c_str(), "r");
if (! p)
return "";
std::string out = "";
while (getline(&buf, &n, p) >= 0)
out.append(std::string(buf));
free(buf);
fclose(p);
waitpid(pid, NULL, 0);
return out;
}
std::string _getPathName(std::string &path, std::string sep)
{
size_t pos = path.find_last_of(sep);

View File

@@ -55,6 +55,8 @@ bool get_mem_usage(unsigned long &total, unsigned long &free);
void mySleep(int sec);
std::string find_executable(const char *name);
/* basically what "foo=`command`" does in the shell */
std::string backtick(std::string command);
bool hdd_get_standby(const char * fname);
void hdd_flush(const char * fname);