001
24.08.2004, 14:15 Uhr
virtual
Sexiest Bit alive (Operator)
|
Windows, gelle?
Dann kannst Du _popen, resp. _pclose verwenden. Folgende Code sollte sowohl unter Windows alsauch unter Betriebssytemen funktionieren. Ist nur schnell getippt, keine Garantie:
C++: |
#include <cstdio> #include <string> #include <sstream> #include <iostream> #include <stdexcept>
#ifndef __unix__ # define popen _popen # define pclose _pclose #endif
std::string getCommandOutput(const std::string& command) { FILE* output = popen(command.c_str(), "r"); if (output!=NULL) { std::stringstream sstr; char buffer[1024]; size_t len;
while ((len=fread(buffer, 1, sizeof(buffer), output))>0) { sstr.write(buffer, len); }
pclose(output); return sstr.str(); }else { throw std::runtime_error("Failed to execute \""+command+"\""); } }
int main(int argc, char* argv[]) { try { std::string command = "dir \\"; std::string output = getCommandOutput(command); std::cout<<output<<std::endl; } catch(std::exception& e) { std::cerr<<"ERROR: "<<e.what()<<std::endl; } return 0; }
|
-- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |