popen() problem windows
-
Hallo,
char* popen_ (char* command) { char buf [BUFFER_SIZE]; char ret [BUFFER_SIZE*10]; memset(buf, '\0', sizeof(buf)); memset(ret, '\0', sizeof(ret)); FILE *p = popen(command, "r"); if(p==NULL) return "popen_error"; while(feof(p) == 0) { fgets(buf, 1000, p); strcat (ret, buf);cout << ret << endl; } // cout << ret << endl; return ret; }Ausgabe beim dir Befehl
2 Verzeichnis(se), 34.663.030.784 Bytes frei
Macht das Sinn?
Wo liegt der Fehler?
-
Habs jetzt so abgeändert:
char* popen_ (char* command) { char buf [BUFFER_SIZE]; char ret [BUFFER_SIZE*10]; memset(buf, '\0', sizeof(buf)); memset(ret, '\0', sizeof(ret)); FILE *p = popen(command, "rt"); if(p==NULL) return "popen_error"; while(feof(p) == 0) { fgets(buf, 1000, p); strcat (ret, buf); } cout << ret << endl; return ret; }Und jetzt zeigt er mir jede Ausgabe eines Befehls 2x an!