#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <cstdlib>
#include <iostream>
using namespace std;
std::string get_cmd_result(char* cmd) {
FILE *fp;
std::string str_result;
char result[256];
memset(result, 0, sizeof (result));
if ((fp = popen(cmd, "rt")) == NULL) {
printf("the command %s not exist\n", cmd);
pclose(fp);
return 0;
}
while (fgets(result, sizeof (result), fp) >0) {
//printf("Pipe: %s", result);
str_result=str_result+std::string(result);
}
pclose(fp);
return str_result;
}
int main(int argc, char** argv) {
string str_result;
str_result=get_cmd_result("ls -l");
cout<<"str_result:\t"<<str_result<<endl;
return 0;
}
VC
std::string get_cmd_result(char* cmd) {
FILE *fp;
std::string str_result;
char result[256];
memset(result, 0, sizeof (result));
if ((fp = _popen(cmd, "rt")) == NULL) {
TRACE("the command %s not exist\n", cmd);
_pclose(fp);
return 0;
}
while (fgets(result, sizeof (result), fp) >0) {
TRACE("Pipe: %s", result);
//fflush(stdout);
str_result=str_result+std::string(result);
}
_pclose(fp);
return str_result;
}