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

Origin commit data
------------------
Branch: ni/coolstream
Commit: ce382cc2cb
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2015-02-08 (Sun, 08 Feb 2015)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
Stefan Seyfried
2015-02-08 13:05:53 +01:00
parent 3c8d63ebe2
commit 8c5267e9d5
2 changed files with 19 additions and 0 deletions

View File

@@ -363,6 +363,23 @@ std::string find_executable(const char *name)
return ""; 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) std::string _getPathName(std::string &path, std::string sep)
{ {
size_t pos = path.find_last_of(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); void mySleep(int sec);
std::string find_executable(const char *name); 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); bool hdd_get_standby(const char * fname);
void hdd_flush(const char * fname); void hdd_flush(const char * fname);